/whysynth-20100922/src/wave_tables.c

# · C · 3434 lines · 3321 code · 42 blank · 71 comment · 5 complexity · db1542e85aae2173ced736992dc7eb2f MD5 · raw file

Large files are truncated click here to view the full file

  1. /* WhySynth DSSI software synthesizer plugin
  2. *
  3. * Copyright (C) 2005-2008, 2010 Sean Bolton.
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU General Public License as
  7. * published by the Free Software Foundation; either version 2 of
  8. * the License, or (at your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be
  11. * useful, but WITHOUT ANY WARRANTY; without even the implied
  12. * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  13. * PURPOSE. See the GNU General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public
  16. * License along with this program; if not, write to the Free
  17. * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  18. * Boston, MA 02110-1301 USA.
  19. */
  20. #ifdef Y_BOGUS_MLOCKALL
  21. #include <string.h>
  22. #endif
  23. #include "wave_tables.h"
  24. void
  25. wave_tables_set_count(void)
  26. {
  27. #ifdef Y_BOGUS_MLOCKALL
  28. int i, j;
  29. signed short scratch[4];
  30. for (i = 0; wavetable[i].name; i++) {
  31. /* Mac OS X (as of Tiger, anyway) doesn't have a functioning mlockall(),
  32. * so we read (some of) the data for each wave to make sure it is paged
  33. * into memory, in the hopes of minimizing page faults later. */
  34. j = 0;
  35. while (1) {
  36. struct wave *w = &wavetable[i].wave[j];
  37. memcpy(scratch, w->data, sizeof(scratch));
  38. memcpy(scratch, w->data + 512, sizeof(scratch));
  39. memcpy(scratch, w->data + 1032 - sizeof(scratch), sizeof(scratch));
  40. if (wavetable[i].wave[j].max_key == 256)
  41. break;
  42. j++;
  43. }
  44. }
  45. #else
  46. int i = 0;
  47. while (wavetable[i].name) i++;
  48. #endif
  49. wavetables_count = i;
  50. }
  51. #ifdef Y_PLUGIN
  52. extern signed short yw_sin_1_data[1032];
  53. extern signed short yw_sin_2_data[1032];
  54. extern signed short yw_sin_3_data[1032];
  55. extern signed short yw_sin_4_data[1032];
  56. extern signed short yw_sin_5_data[1032];
  57. extern signed short yw_sin_6_data[1032];
  58. extern signed short yw_sin_7_data[1032];
  59. extern signed short yw_sin_8_data[1032];
  60. extern signed short yw_sin_9_data[1032];
  61. extern signed short yw_lfo_rect13_data[1032];
  62. extern signed short yw_lfo_rect14_data[1032];
  63. extern signed short yw_lfo_rect16_data[1032];
  64. extern signed short yw_lfo_rect24_data[1032];
  65. extern signed short yw_lfo_s_h_1_data[1032];
  66. extern signed short yw_lfo_s_h_2_data[1032];
  67. extern signed short yw_lfo_s_h_3_data[1032];
  68. extern signed short yw_lfo_s_h_4_data[1032];
  69. extern signed short yw_lfo_saw_data[1032];
  70. extern signed short yw_lfo_square_data[1032];
  71. extern signed short yw_lfo_tri_data[1032];
  72. extern signed short yw_ws_cheby_t5_data[1032];
  73. extern signed short k4_10_4_data[1032];
  74. extern signed short k4_10_5_data[1032];
  75. extern signed short k4_10_6_data[1032];
  76. extern signed short k4_11_3_data[1032];
  77. extern signed short k4_11_4_data[1032];
  78. extern signed short k4_11_5_data[1032];
  79. extern signed short k4_11_6_data[1032];
  80. extern signed short k4_12_1_data[1032];
  81. extern signed short k4_12_2_data[1032];
  82. extern signed short k4_12_3_data[1032];
  83. extern signed short k4_12_4_data[1032];
  84. extern signed short k4_12_5_data[1032];
  85. extern signed short k4_12_6_data[1032];
  86. extern signed short k4_13_1_data[1032];
  87. extern signed short k4_13_2_data[1032];
  88. extern signed short k4_13_3_data[1032];
  89. extern signed short k4_13_4_data[1032];
  90. extern signed short k4_13_5_data[1032];
  91. extern signed short k4_13_6_data[1032];
  92. extern signed short k4_14_1_data[1032];
  93. extern signed short k4_14_2_data[1032];
  94. extern signed short k4_14_3_data[1032];
  95. extern signed short k4_14_4_data[1032];
  96. extern signed short k4_14_5_data[1032];
  97. extern signed short k4_14_6_data[1032];
  98. extern signed short k4_15_1_data[1032];
  99. extern signed short k4_15_2_data[1032];
  100. extern signed short k4_15_3_data[1032];
  101. extern signed short k4_15_4_data[1032];
  102. extern signed short k4_15_5_data[1032];
  103. extern signed short k4_15_6_data[1032];
  104. extern signed short k4_16_1_data[1032];
  105. extern signed short k4_16_2_data[1032];
  106. extern signed short k4_16_3_data[1032];
  107. extern signed short k4_16_4_data[1032];
  108. extern signed short k4_16_5_data[1032];
  109. extern signed short k4_16_6_data[1032];
  110. extern signed short k4_17_1_data[1032];
  111. extern signed short k4_17_2_data[1032];
  112. extern signed short k4_17_3_data[1032];
  113. extern signed short k4_17_4_data[1032];
  114. extern signed short k4_17_5_data[1032];
  115. extern signed short k4_17_6_data[1032];
  116. extern signed short k4_18_1_data[1032];
  117. extern signed short k4_18_2_data[1032];
  118. extern signed short k4_18_3_data[1032];
  119. extern signed short k4_18_4_data[1032];
  120. extern signed short k4_18_5_data[1032];
  121. extern signed short k4_18_6_data[1032];
  122. extern signed short k4_19_3_data[1032];
  123. extern signed short k4_19_4_data[1032];
  124. extern signed short k4_19_5_data[1032];
  125. extern signed short k4_19_6_data[1032];
  126. extern signed short k4_20_1_data[1032];
  127. extern signed short k4_20_2_data[1032];
  128. extern signed short k4_20_3_data[1032];
  129. extern signed short k4_20_4_data[1032];
  130. extern signed short k4_20_5_data[1032];
  131. extern signed short k4_20_6_data[1032];
  132. extern signed short k4_21_1_data[1032];
  133. extern signed short k4_21_2_data[1032];
  134. extern signed short k4_21_3_data[1032];
  135. extern signed short k4_21_4_data[1032];
  136. extern signed short k4_21_5_data[1032];
  137. extern signed short k4_21_6_data[1032];
  138. extern signed short k4_22_1_data[1032];
  139. extern signed short k4_22_2_data[1032];
  140. extern signed short k4_22_3_data[1032];
  141. extern signed short k4_22_4_data[1032];
  142. extern signed short k4_22_5_data[1032];
  143. extern signed short k4_22_6_data[1032];
  144. extern signed short k4_23_1_data[1032];
  145. extern signed short k4_23_2_data[1032];
  146. extern signed short k4_23_3_data[1032];
  147. extern signed short k4_23_4_data[1032];
  148. extern signed short k4_23_5_data[1032];
  149. extern signed short k4_23_6_data[1032];
  150. extern signed short k4_24_1_data[1032];
  151. extern signed short k4_24_2_data[1032];
  152. extern signed short k4_24_3_data[1032];
  153. extern signed short k4_24_4_data[1032];
  154. extern signed short k4_24_5_data[1032];
  155. extern signed short k4_24_6_data[1032];
  156. extern signed short k4_25_1_data[1032];
  157. extern signed short k4_25_2_data[1032];
  158. extern signed short k4_25_3_data[1032];
  159. extern signed short k4_25_4_data[1032];
  160. extern signed short k4_25_5_data[1032];
  161. extern signed short k4_25_6_data[1032];
  162. extern signed short k4_26_1_data[1032];
  163. extern signed short k4_26_2_data[1032];
  164. extern signed short k4_26_3_data[1032];
  165. extern signed short k4_26_4_data[1032];
  166. extern signed short k4_26_5_data[1032];
  167. extern signed short k4_26_6_data[1032];
  168. extern signed short k4_27_3_data[1032];
  169. extern signed short k4_28_3_data[1032];
  170. extern signed short k4_28_4_data[1032];
  171. extern signed short k4_28_5_data[1032];
  172. extern signed short k4_28_6_data[1032];
  173. extern signed short k4_29_1_data[1032];
  174. extern signed short k4_29_2_data[1032];
  175. extern signed short k4_29_3_data[1032];
  176. extern signed short k4_29_4_data[1032];
  177. extern signed short k4_29_5_data[1032];
  178. extern signed short k4_29_6_data[1032];
  179. extern signed short k4_30_1_data[1032];
  180. extern signed short k4_30_2_data[1032];
  181. extern signed short k4_30_3_data[1032];
  182. extern signed short k4_30_4_data[1032];
  183. extern signed short k4_30_5_data[1032];
  184. extern signed short k4_30_6_data[1032];
  185. extern signed short k4_31_1_data[1032];
  186. extern signed short k4_31_2_data[1032];
  187. extern signed short k4_31_3_data[1032];
  188. extern signed short k4_31_4_data[1032];
  189. extern signed short k4_31_5_data[1032];
  190. extern signed short k4_31_6_data[1032];
  191. extern signed short k4_32_1_data[1032];
  192. extern signed short k4_32_2_data[1032];
  193. extern signed short k4_32_3_data[1032];
  194. extern signed short k4_32_4_data[1032];
  195. extern signed short k4_32_5_data[1032];
  196. extern signed short k4_32_6_data[1032];
  197. extern signed short k4_33_1_data[1032];
  198. extern signed short k4_33_2_data[1032];
  199. extern signed short k4_33_3_data[1032];
  200. extern signed short k4_33_4_data[1032];
  201. extern signed short k4_33_5_data[1032];
  202. extern signed short k4_33_6_data[1032];
  203. extern signed short k4_34_1_data[1032];
  204. extern signed short k4_34_2_data[1032];
  205. extern signed short k4_34_3_data[1032];
  206. extern signed short k4_34_4_data[1032];
  207. extern signed short k4_34_5_data[1032];
  208. extern signed short k4_34_6_data[1032];
  209. extern signed short k4_35_2_data[1032];
  210. extern signed short k4_35_3_data[1032];
  211. extern signed short k4_35_4_data[1032];
  212. extern signed short k4_35_5_data[1032];
  213. extern signed short k4_35_6_data[1032];
  214. extern signed short k4_36_2_data[1032];
  215. extern signed short k4_36_3_data[1032];
  216. extern signed short k4_36_4_data[1032];
  217. extern signed short k4_36_5_data[1032];
  218. extern signed short k4_36_6_data[1032];
  219. extern signed short k4_37_1_data[1032];
  220. extern signed short k4_37_2_data[1032];
  221. extern signed short k4_37_3_data[1032];
  222. extern signed short k4_37_4_data[1032];
  223. extern signed short k4_37_5_data[1032];
  224. extern signed short k4_37_6_data[1032];
  225. extern signed short k4_38_2_data[1032];
  226. extern signed short k4_38_3_data[1032];
  227. extern signed short k4_38_4_data[1032];
  228. extern signed short k4_38_5_data[1032];
  229. extern signed short k4_38_6_data[1032];
  230. extern signed short k4_39_1_data[1032];
  231. extern signed short k4_39_2_data[1032];
  232. extern signed short k4_39_3_data[1032];
  233. extern signed short k4_39_4_data[1032];
  234. extern signed short k4_39_5_data[1032];
  235. extern signed short k4_39_6_data[1032];
  236. extern signed short k4_40_1_data[1032];
  237. extern signed short k4_40_2_data[1032];
  238. extern signed short k4_40_3_data[1032];
  239. extern signed short k4_40_4_data[1032];
  240. extern signed short k4_40_5_data[1032];
  241. extern signed short k4_40_6_data[1032];
  242. extern signed short k4_41_2_data[1032];
  243. extern signed short k4_41_3_data[1032];
  244. extern signed short k4_41_4_data[1032];
  245. extern signed short k4_41_5_data[1032];
  246. extern signed short k4_41_6_data[1032];
  247. extern signed short k4_42_1_data[1032];
  248. extern signed short k4_42_2_data[1032];
  249. extern signed short k4_42_3_data[1032];
  250. extern signed short k4_42_4_data[1032];
  251. extern signed short k4_42_5_data[1032];
  252. extern signed short k4_42_6_data[1032];
  253. extern signed short k4_43_2_data[1032];
  254. extern signed short k4_43_3_data[1032];
  255. extern signed short k4_43_4_data[1032];
  256. extern signed short k4_43_5_data[1032];
  257. extern signed short k4_43_6_data[1032];
  258. extern signed short k4_44_1_data[1032];
  259. extern signed short k4_44_2_data[1032];
  260. extern signed short k4_44_3_data[1032];
  261. extern signed short k4_44_4_data[1032];
  262. extern signed short k4_44_5_data[1032];
  263. extern signed short k4_44_6_data[1032];
  264. extern signed short k4_45_1_data[1032];
  265. extern signed short k4_45_2_data[1032];
  266. extern signed short k4_45_3_data[1032];
  267. extern signed short k4_45_4_data[1032];
  268. extern signed short k4_45_5_data[1032];
  269. extern signed short k4_45_6_data[1032];
  270. extern signed short k4_46_1_data[1032];
  271. extern signed short k4_46_2_data[1032];
  272. extern signed short k4_46_3_data[1032];
  273. extern signed short k4_46_4_data[1032];
  274. extern signed short k4_46_5_data[1032];
  275. extern signed short k4_46_6_data[1032];
  276. extern signed short k4_47_1_data[1032];
  277. extern signed short k4_47_2_data[1032];
  278. extern signed short k4_47_3_data[1032];
  279. extern signed short k4_47_4_data[1032];
  280. extern signed short k4_47_5_data[1032];
  281. extern signed short k4_47_6_data[1032];
  282. extern signed short k4_48_2_data[1032];
  283. extern signed short k4_48_3_data[1032];
  284. extern signed short k4_48_4_data[1032];
  285. extern signed short k4_48_5_data[1032];
  286. extern signed short k4_48_6_data[1032];
  287. extern signed short k4_49_1_data[1032];
  288. extern signed short k4_49_2_data[1032];
  289. extern signed short k4_49_3_data[1032];
  290. extern signed short k4_49_4_data[1032];
  291. extern signed short k4_49_5_data[1032];
  292. extern signed short k4_49_6_data[1032];
  293. extern signed short k4_50_3_data[1032];
  294. extern signed short k4_50_4_data[1032];
  295. extern signed short k4_50_5_data[1032];
  296. extern signed short k4_50_6_data[1032];
  297. extern signed short k4_51_1_data[1032];
  298. extern signed short k4_51_2_data[1032];
  299. extern signed short k4_51_3_data[1032];
  300. extern signed short k4_51_4_data[1032];
  301. extern signed short k4_51_5_data[1032];
  302. extern signed short k4_51_6_data[1032];
  303. extern signed short k4_52_1_data[1032];
  304. extern signed short k4_52_2_data[1032];
  305. extern signed short k4_52_3_data[1032];
  306. extern signed short k4_52_4_data[1032];
  307. extern signed short k4_52_5_data[1032];
  308. extern signed short k4_52_6_data[1032];
  309. extern signed short k4_53_1_data[1032];
  310. extern signed short k4_53_2_data[1032];
  311. extern signed short k4_53_3_data[1032];
  312. extern signed short k4_53_4_data[1032];
  313. extern signed short k4_53_5_data[1032];
  314. extern signed short k4_53_6_data[1032];
  315. extern signed short k4_54_1_data[1032];
  316. extern signed short k4_54_2_data[1032];
  317. extern signed short k4_54_3_data[1032];
  318. extern signed short k4_54_4_data[1032];
  319. extern signed short k4_54_5_data[1032];
  320. extern signed short k4_54_6_data[1032];
  321. extern signed short k4_55_1_data[1032];
  322. extern signed short k4_55_2_data[1032];
  323. extern signed short k4_55_3_data[1032];
  324. extern signed short k4_55_4_data[1032];
  325. extern signed short k4_55_5_data[1032];
  326. extern signed short k4_55_6_data[1032];
  327. extern signed short k4_56_3_data[1032];
  328. extern signed short k4_56_4_data[1032];
  329. extern signed short k4_56_5_data[1032];
  330. extern signed short k4_56_6_data[1032];
  331. extern signed short k4_57_1_data[1032];
  332. extern signed short k4_57_2_data[1032];
  333. extern signed short k4_57_3_data[1032];
  334. extern signed short k4_57_4_data[1032];
  335. extern signed short k4_57_5_data[1032];
  336. extern signed short k4_57_6_data[1032];
  337. extern signed short k4_58_1_data[1032];
  338. extern signed short k4_58_2_data[1032];
  339. extern signed short k4_58_3_data[1032];
  340. extern signed short k4_58_4_data[1032];
  341. extern signed short k4_58_5_data[1032];
  342. extern signed short k4_58_6_data[1032];
  343. extern signed short k4_59_1_data[1032];
  344. extern signed short k4_59_2_data[1032];
  345. extern signed short k4_59_3_data[1032];
  346. extern signed short k4_59_4_data[1032];
  347. extern signed short k4_59_5_data[1032];
  348. extern signed short k4_59_6_data[1032];
  349. extern signed short k4_60_3_data[1032];
  350. extern signed short k4_60_4_data[1032];
  351. extern signed short k4_60_5_data[1032];
  352. extern signed short k4_60_6_data[1032];
  353. extern signed short k4_61_1_data[1032];
  354. extern signed short k4_61_2_data[1032];
  355. extern signed short k4_61_3_data[1032];
  356. extern signed short k4_61_4_data[1032];
  357. extern signed short k4_61_5_data[1032];
  358. extern signed short k4_61_6_data[1032];
  359. extern signed short k4_62_2_data[1032];
  360. extern signed short k4_62_3_data[1032];
  361. extern signed short k4_62_4_data[1032];
  362. extern signed short k4_62_5_data[1032];
  363. extern signed short k4_62_6_data[1032];
  364. extern signed short k4_63_1_data[1032];
  365. extern signed short k4_63_2_data[1032];
  366. extern signed short k4_63_3_data[1032];
  367. extern signed short k4_63_4_data[1032];
  368. extern signed short k4_63_5_data[1032];
  369. extern signed short k4_63_6_data[1032];
  370. extern signed short k4_64_2_data[1032];
  371. extern signed short k4_64_3_data[1032];
  372. extern signed short k4_64_4_data[1032];
  373. extern signed short k4_64_5_data[1032];
  374. extern signed short k4_64_6_data[1032];
  375. extern signed short k4_65_1_data[1032];
  376. extern signed short k4_65_2_data[1032];
  377. extern signed short k4_65_3_data[1032];
  378. extern signed short k4_65_4_data[1032];
  379. extern signed short k4_65_5_data[1032];
  380. extern signed short k4_65_6_data[1032];
  381. extern signed short k4_66_3_data[1032];
  382. extern signed short k4_66_4_data[1032];
  383. extern signed short k4_66_5_data[1032];
  384. extern signed short k4_66_6_data[1032];
  385. extern signed short k4_67_2_data[1032];
  386. extern signed short k4_67_3_data[1032];
  387. extern signed short k4_67_4_data[1032];
  388. extern signed short k4_67_5_data[1032];
  389. extern signed short k4_67_6_data[1032];
  390. extern signed short k4_68_1_data[1032];
  391. extern signed short k4_68_2_data[1032];
  392. extern signed short k4_68_3_data[1032];
  393. extern signed short k4_68_4_data[1032];
  394. extern signed short k4_68_5_data[1032];
  395. extern signed short k4_68_6_data[1032];
  396. extern signed short k4_69_1_data[1032];
  397. extern signed short k4_69_2_data[1032];
  398. extern signed short k4_69_3_data[1032];
  399. extern signed short k4_69_4_data[1032];
  400. extern signed short k4_69_5_data[1032];
  401. extern signed short k4_69_6_data[1032];
  402. extern signed short k4_70_1_data[1032];
  403. extern signed short k4_70_2_data[1032];
  404. extern signed short k4_70_3_data[1032];
  405. extern signed short k4_70_4_data[1032];
  406. extern signed short k4_70_5_data[1032];
  407. extern signed short k4_70_6_data[1032];
  408. extern signed short k4_71_2_data[1032];
  409. extern signed short k4_71_3_data[1032];
  410. extern signed short k4_71_4_data[1032];
  411. extern signed short k4_71_5_data[1032];
  412. extern signed short k4_71_6_data[1032];
  413. extern signed short k4_72_1_data[1032];
  414. extern signed short k4_72_2_data[1032];
  415. extern signed short k4_72_3_data[1032];
  416. extern signed short k4_72_4_data[1032];
  417. extern signed short k4_72_5_data[1032];
  418. extern signed short k4_72_6_data[1032];
  419. extern signed short k4_73_1_data[1032];
  420. extern signed short k4_73_2_data[1032];
  421. extern signed short k4_73_3_data[1032];
  422. extern signed short k4_73_4_data[1032];
  423. extern signed short k4_73_5_data[1032];
  424. extern signed short k4_73_6_data[1032];
  425. extern signed short k4_74_1_data[1032];
  426. extern signed short k4_74_2_data[1032];
  427. extern signed short k4_74_3_data[1032];
  428. extern signed short k4_74_4_data[1032];
  429. extern signed short k4_74_5_data[1032];
  430. extern signed short k4_74_6_data[1032];
  431. extern signed short k4_75_1_data[1032];
  432. extern signed short k4_75_2_data[1032];
  433. extern signed short k4_75_3_data[1032];
  434. extern signed short k4_75_4_data[1032];
  435. extern signed short k4_75_5_data[1032];
  436. extern signed short k4_75_6_data[1032];
  437. extern signed short k4_76_1_data[1032];
  438. extern signed short k4_76_2_data[1032];
  439. extern signed short k4_76_3_data[1032];
  440. extern signed short k4_76_4_data[1032];
  441. extern signed short k4_76_5_data[1032];
  442. extern signed short k4_76_6_data[1032];
  443. extern signed short k4_77_1_data[1032];
  444. extern signed short k4_77_2_data[1032];
  445. extern signed short k4_77_3_data[1032];
  446. extern signed short k4_77_4_data[1032];
  447. extern signed short k4_77_5_data[1032];
  448. extern signed short k4_77_6_data[1032];
  449. extern signed short k4_78_1_data[1032];
  450. extern signed short k4_78_2_data[1032];
  451. extern signed short k4_78_3_data[1032];
  452. extern signed short k4_78_4_data[1032];
  453. extern signed short k4_78_5_data[1032];
  454. extern signed short k4_78_6_data[1032];
  455. extern signed short k4_79_1_data[1032];
  456. extern signed short k4_79_2_data[1032];
  457. extern signed short k4_79_3_data[1032];
  458. extern signed short k4_79_4_data[1032];
  459. extern signed short k4_79_5_data[1032];
  460. extern signed short k4_79_6_data[1032];
  461. extern signed short k4_80_1_data[1032];
  462. extern signed short k4_80_2_data[1032];
  463. extern signed short k4_80_3_data[1032];
  464. extern signed short k4_80_4_data[1032];
  465. extern signed short k4_80_5_data[1032];
  466. extern signed short k4_80_6_data[1032];
  467. extern signed short k4_81_1_data[1032];
  468. extern signed short k4_81_2_data[1032];
  469. extern signed short k4_81_3_data[1032];
  470. extern signed short k4_81_4_data[1032];
  471. extern signed short k4_81_5_data[1032];
  472. extern signed short k4_81_6_data[1032];
  473. extern signed short k4_82_1_data[1032];
  474. extern signed short k4_82_2_data[1032];
  475. extern signed short k4_82_3_data[1032];
  476. extern signed short k4_82_4_data[1032];
  477. extern signed short k4_82_5_data[1032];
  478. extern signed short k4_82_6_data[1032];
  479. extern signed short k4_83_1_data[1032];
  480. extern signed short k4_83_2_data[1032];
  481. extern signed short k4_83_3_data[1032];
  482. extern signed short k4_83_4_data[1032];
  483. extern signed short k4_83_5_data[1032];
  484. extern signed short k4_83_6_data[1032];
  485. extern signed short k4_84_1_data[1032];
  486. extern signed short k4_84_2_data[1032];
  487. extern signed short k4_84_3_data[1032];
  488. extern signed short k4_84_4_data[1032];
  489. extern signed short k4_84_5_data[1032];
  490. extern signed short k4_84_6_data[1032];
  491. extern signed short k4_85_1_data[1032];
  492. extern signed short k4_85_2_data[1032];
  493. extern signed short k4_85_3_data[1032];
  494. extern signed short k4_85_4_data[1032];
  495. extern signed short k4_85_5_data[1032];
  496. extern signed short k4_85_6_data[1032];
  497. extern signed short k4_86_1_data[1032];
  498. extern signed short k4_86_2_data[1032];
  499. extern signed short k4_86_3_data[1032];
  500. extern signed short k4_86_4_data[1032];
  501. extern signed short k4_86_5_data[1032];
  502. extern signed short k4_86_6_data[1032];
  503. extern signed short k4_87_1_data[1032];
  504. extern signed short k4_87_2_data[1032];
  505. extern signed short k4_87_3_data[1032];
  506. extern signed short k4_87_4_data[1032];
  507. extern signed short k4_87_5_data[1032];
  508. extern signed short k4_87_6_data[1032];
  509. extern signed short k4_88_1_data[1032];
  510. extern signed short k4_88_2_data[1032];
  511. extern signed short k4_88_3_data[1032];
  512. extern signed short k4_88_4_data[1032];
  513. extern signed short k4_88_5_data[1032];
  514. extern signed short k4_88_6_data[1032];
  515. extern signed short k4_89_1_data[1032];
  516. extern signed short k4_89_2_data[1032];
  517. extern signed short k4_89_3_data[1032];
  518. extern signed short k4_89_4_data[1032];
  519. extern signed short k4_89_5_data[1032];
  520. extern signed short k4_89_6_data[1032];
  521. extern signed short k4_90_1_data[1032];
  522. extern signed short k4_90_2_data[1032];
  523. extern signed short k4_90_3_data[1032];
  524. extern signed short k4_90_4_data[1032];
  525. extern signed short k4_90_5_data[1032];
  526. extern signed short k4_90_6_data[1032];
  527. extern signed short k4_91_1_data[1032];
  528. extern signed short k4_91_2_data[1032];
  529. extern signed short k4_91_3_data[1032];
  530. extern signed short k4_91_4_data[1032];
  531. extern signed short k4_91_5_data[1032];
  532. extern signed short k4_91_6_data[1032];
  533. extern signed short k4_92_2_data[1032];
  534. extern signed short k4_92_3_data[1032];
  535. extern signed short k4_92_4_data[1032];
  536. extern signed short k4_92_5_data[1032];
  537. extern signed short k4_92_6_data[1032];
  538. extern signed short k4_93_1_data[1032];
  539. extern signed short k4_93_2_data[1032];
  540. extern signed short k4_93_3_data[1032];
  541. extern signed short k4_93_4_data[1032];
  542. extern signed short k4_93_5_data[1032];
  543. extern signed short k4_94_2_data[1032];
  544. extern signed short k4_94_3_data[1032];
  545. extern signed short k4_94_4_data[1032];
  546. extern signed short k4_94_5_data[1032];
  547. extern signed short k4_94_6_data[1032];
  548. extern signed short k4_95_1_data[1032];
  549. extern signed short k4_95_2_data[1032];
  550. extern signed short k4_95_3_data[1032];
  551. extern signed short k4_95_4_data[1032];
  552. extern signed short k4_95_5_data[1032];
  553. extern signed short k4_95_6_data[1032];
  554. extern signed short k4_96_1_data[1032];
  555. extern signed short k4_96_2_data[1032];
  556. extern signed short k4_96_3_data[1032];
  557. extern signed short k4_96_4_data[1032];
  558. extern signed short k4_96_5_data[1032];
  559. extern signed short k4_96_6_data[1032];
  560. extern signed short sq80_formant_1_2_data[1032];
  561. extern signed short sq80_formant_2_3_data[1032];
  562. extern signed short sq80_formant_3_4_data[1032];
  563. extern signed short sq80_formant_4_5_data[1032];
  564. extern signed short sq80_formant_5_6_data[1032];
  565. extern signed short sq80_formant_6_7_data[1032];
  566. extern signed short sq80_formant_8_9_data[1032];
  567. extern signed short sq80_noise1_16_data[1032];
  568. extern signed short sq80_noise2_16_data[1032];
  569. extern signed short sq80_noise3_16_data[1032];
  570. extern signed short sq80_pulsesynth2_6_data[1032];
  571. extern signed short sq80_pulsesynth3_7_data[1032];
  572. extern signed short sq80_pulsesynth4_8_data[1032];
  573. extern signed short sq80_pulsesynth5_9_data[1032];
  574. extern signed short sq80_02_5_data[1032];
  575. extern signed short sq80_03_7_data[1032];
  576. extern signed short sq80_04_8_data[1032];
  577. extern signed short sq80_05_9_data[1032];
  578. extern signed short sq80_06_a_data[1032];
  579. extern signed short sq80_07_b_data[1032];
  580. extern signed short sq80_08_c_data[1032];
  581. extern signed short sq80_09_7_data[1032];
  582. extern signed short sq80_0a_8_data[1032];
  583. extern signed short sq80_0b_9_data[1032];
  584. extern signed short sq80_0c_a_data[1032];
  585. extern signed short sq80_0d_a_data[1032];
  586. extern signed short sq80_0e_b_data[1032];
  587. extern signed short sq80_0e_c_data[1032];
  588. extern signed short sq80_0f_9_data[1032];
  589. extern signed short sq80_10_a_data[1032];
  590. extern signed short sq80_11_b_data[1032];
  591. extern signed short sq80_11_c_data[1032];
  592. extern signed short sq80_12_9_data[1032];
  593. extern signed short sq80_13_a_data[1032];
  594. extern signed short sq80_14_c_data[1032];
  595. extern signed short sq80_16_e_data[1032];
  596. extern signed short sq80_17_e_data[1032];
  597. extern signed short sq80_18_d_data[1032];
  598. extern signed short sq80_19_d_data[1032];
  599. extern signed short sq80_1a_d_data[1032];
  600. extern signed short sq80_1b_9_data[1032];
  601. extern signed short sq80_1c_b_data[1032];
  602. extern signed short sq80_1d_5_data[1032];
  603. extern signed short sq80_1d_6_data[1032];
  604. extern signed short sq80_1e_7_data[1032];
  605. extern signed short sq80_1f_3_data[1032];
  606. extern signed short sq80_1f_4_data[1032];
  607. extern signed short sq80_1f_5_data[1032];
  608. extern signed short sq80_1f_6_data[1032];
  609. extern signed short sq80_1f_7_data[1032];
  610. extern signed short sq80_1f_8_data[1032];
  611. extern signed short sq80_1f_9_data[1032];
  612. extern signed short sq80_1f_a_data[1032];
  613. extern signed short sq80_1f_b_data[1032];
  614. extern signed short sq80_1f_c_data[1032];
  615. extern signed short sq80_1f_d_data[1032];
  616. extern signed short sq80_21_4_data[1032];
  617. extern signed short sq80_22_5_data[1032];
  618. extern signed short sq80_23_6_data[1032];
  619. extern signed short sq80_24_b_data[1032];
  620. extern signed short sq80_24_c_data[1032];
  621. extern signed short sq80_25_5_data[1032];
  622. extern signed short sq80_26_7_data[1032];
  623. extern signed short sq80_27_7_data[1032];
  624. extern signed short sq80_28_8_data[1032];
  625. extern signed short sq80_29_9_data[1032];
  626. extern signed short sq80_2a_b_data[1032];
  627. extern signed short sq80_2a_c_data[1032];
  628. extern signed short sq80_2b_5_data[1032];
  629. extern signed short sq80_2c_6_data[1032];
  630. extern signed short sq80_2d_7_data[1032];
  631. extern signed short sq80_2e_8_data[1032];
  632. extern signed short sq80_2f_9_data[1032];
  633. extern signed short sq80_30_a_data[1032];
  634. extern signed short sq80_31_a_data[1032];
  635. extern signed short sq80_31_b_data[1032];
  636. extern signed short sq80_32_a_data[1032];
  637. extern signed short sq80_32_b_data[1032];
  638. extern signed short sq80_32_c_data[1032];
  639. extern signed short sq80_33_b_data[1032];
  640. extern signed short sq80_33_c_data[1032];
  641. extern signed short sq80_34_4_data[1032];
  642. extern signed short sq80_35_5_data[1032];
  643. extern signed short sq80_36_6_data[1032];
  644. extern signed short sq80_36_7_data[1032];
  645. extern signed short sq80_37_9_data[1032];
  646. extern signed short sq80_38_b_data[1032];
  647. extern signed short sq80_39_c_data[1032];
  648. extern signed short sq80_3a_6_data[1032];
  649. extern signed short sq80_3b_7_data[1032];
  650. extern signed short sq80_3b_8_data[1032];
  651. extern signed short sq80_3c_8_data[1032];
  652. extern signed short sq80_3c_9_data[1032];
  653. extern signed short sq80_3d_9_data[1032];
  654. extern signed short sq80_3d_a_data[1032];
  655. extern signed short sq80_3e_a_data[1032];
  656. extern signed short sq80_3e_b_data[1032];
  657. extern signed short sq80_3f_8_data[1032];
  658. extern signed short sq80_40_9_data[1032];
  659. extern signed short sq80_40_a_data[1032];
  660. extern signed short sq80_41_b_data[1032];
  661. extern signed short sq80_41_c_data[1032];
  662. extern signed short sq80_42_7_data[1032];
  663. extern signed short sq80_43_8_data[1032];
  664. extern signed short sq80_44_9_data[1032];
  665. extern signed short sq80_45_a_data[1032];
  666. extern signed short sq80_45_b_data[1032];
  667. extern signed short sq80_46_4_data[1032];
  668. extern signed short sq80_47_5_data[1032];
  669. extern signed short sq80_48_6_data[1032];
  670. extern signed short sq80_49_9_data[1032];
  671. extern signed short sq80_4a_b_data[1032];
  672. extern signed short sq80_4b_c_data[1032];
  673. extern signed short sq80_4c_8_data[1032];
  674. extern signed short sq80_4d_9_data[1032];
  675. extern signed short sq80_4e_a_data[1032];
  676. extern signed short sq80_4f_b_data[1032];
  677. extern signed short sq80_50_c_data[1032];
  678. extern signed short sq80_51_d_data[1032];
  679. extern signed short sq80_68_6_data[1032];
  680. extern signed short sq80_68_7_data[1032];
  681. extern signed short sq80_68_8_data[1032];
  682. extern signed short sq80_69_9_data[1032];
  683. extern signed short sq80_69_b_data[1032];
  684. extern signed short sq80_6d_4_data[1032];
  685. extern signed short sq80_6d_5_data[1032];
  686. extern signed short sq80_6e_5_data[1032];
  687. extern signed short sq80_6e_6_data[1032];
  688. extern signed short sq80_6f_6_data[1032];
  689. extern signed short sq80_6f_7_data[1032];
  690. extern signed short sq80_70_7_data[1032];
  691. extern signed short sq80_71_9_data[1032];
  692. extern signed short sq80_72_9_data[1032];
  693. extern signed short sq80_72_a_data[1032];
  694. extern signed short sq80_73_b_data[1032];
  695. extern signed short sq80_74_c_data[1032];
  696. extern signed short sq80_76_7_data[1032];
  697. extern signed short sq80_76x_7_data[1032];
  698. extern signed short sq80_76x_8_data[1032];
  699. extern signed short sq80_76x_9_data[1032];
  700. extern signed short sq80_76x_a_data[1032];
  701. extern signed short sq80_77_b_data[1032];
  702. extern signed short sq80_77_c_data[1032];
  703. extern signed short sq80_78_7_data[1032];
  704. extern signed short sq80_78_9_data[1032];
  705. extern signed short sq80_7b_9_data[1032];
  706. extern signed short sq80_7b_a_data[1032];
  707. extern signed short sq80_7c_b_data[1032];
  708. extern signed short sq80_7c_c_data[1032];
  709. extern signed short sq80_7d_9_data[1032];
  710. extern signed short sq80_7e_a_data[1032];
  711. extern signed short sq80_7f_b_data[1032];
  712. extern signed short sq80_7f_c_data[1032];
  713. extern signed short sq80_80_6_data[1032];
  714. extern signed short sq80_80_7_data[1032];
  715. extern signed short sq80_80_8_data[1032];
  716. extern signed short sq80_81_5_data[1032];
  717. extern signed short sq80_81_6_data[1032];
  718. extern signed short sq80_82_7_data[1032];
  719. extern signed short sq80_82_8_data[1032];
  720. extern signed short sq80_83_9_data[1032];
  721. extern signed short sq80_84_a_data[1032];
  722. extern signed short sq80_84_b_data[1032];
  723. extern signed short sq80_84_c_data[1032];
  724. extern signed short sq80_85_7_data[1032];
  725. extern signed short sq80_85_8_data[1032];
  726. extern signed short sq80_86_9_data[1032];
  727. extern signed short sq80_87_8_data[1032];
  728. extern signed short sq80_88_a_data[1032];
  729. extern signed short sq80_88_b_data[1032];
  730. extern signed short sq80_88_c_data[1032];
  731. extern signed short sq80_89_5_data[1032];
  732. extern signed short sq80_89_6_data[1032];
  733. extern signed short sq80_8a_7_data[1032];
  734. extern signed short sq80_8b_8_data[1032];
  735. extern signed short sq80_8c_a_data[1032];
  736. extern signed short sq80_8c_b_data[1032];
  737. extern signed short tx81z_2_8_data[1032];
  738. extern signed short tx81z_2_9_data[1032];
  739. extern signed short tx81z_2_10_data[1032];
  740. extern signed short tx81z_2_11_data[1032];
  741. extern signed short tx81z_2_12_data[1032];
  742. extern signed short tx81z_3_8_data[1032];
  743. extern signed short tx81z_3_9_data[1032];
  744. extern signed short tx81z_3_10_data[1032];
  745. extern signed short tx81z_3_11_data[1032];
  746. extern signed short tx81z_3_12_data[1032];
  747. extern signed short tx81z_4_8_data[1032];
  748. extern signed short tx81z_4_9_data[1032];
  749. extern signed short tx81z_4_10_data[1032];
  750. extern signed short tx81z_4_11_data[1032];
  751. extern signed short tx81z_4_12_data[1032];
  752. extern signed short tx81z_5_8_data[1032];
  753. extern signed short tx81z_5_9_data[1032];
  754. extern signed short tx81z_5_10_data[1032];
  755. extern signed short tx81z_5_11_data[1032];
  756. extern signed short tx81z_5_12_data[1032];
  757. extern signed short tx81z_6_7_data[1032];
  758. extern signed short tx81z_6_8_data[1032];
  759. extern signed short tx81z_6_9_data[1032];
  760. extern signed short tx81z_6_10_data[1032];
  761. extern signed short tx81z_6_11_data[1032];
  762. extern signed short tx81z_6_12_data[1032];
  763. extern signed short tx81z_7_8_data[1032];
  764. extern signed short tx81z_7_9_data[1032];
  765. extern signed short tx81z_7_10_data[1032];
  766. extern signed short tx81z_7_11_data[1032];
  767. extern signed short tx81z_7_12_data[1032];
  768. extern signed short tx81z_8_7_data[1032];
  769. extern signed short tx81z_8_8_data[1032];
  770. extern signed short tx81z_8_9_data[1032];
  771. extern signed short tx81z_8_10_data[1032];
  772. extern signed short tx81z_8_11_data[1032];
  773. extern signed short tx81z_8_12_data[1032];
  774. extern signed short bristol_jagged_8_data[1032];
  775. extern signed short bristol_jagged_9_data[1032];
  776. extern signed short bristol_jagged_10_data[1032];
  777. extern signed short bristol_jagged_11_data[1032];
  778. extern signed short bristol_jagged_12_data[1032];
  779. #endif /* Y_PLUGIN */
  780. int wavetables_count;
  781. struct wavetable wavetable[] =
  782. {
  783. /* ==== Simple sinus-based waveforms ==== */
  784. { "Sines|Sine 1", /* K4 wave 0 */
  785. #ifdef Y_GUI
  786. 0
  787. #endif
  788. #ifdef Y_PLUGIN
  789. {
  790. { 256, 1, yw_sin_1_data + 4 },
  791. }
  792. #endif
  793. },
  794. { "Sines|Sine 2", /* K4 wave 1 */
  795. #ifdef Y_GUI
  796. 0
  797. #endif
  798. #ifdef Y_PLUGIN
  799. {
  800. { 120, 1, yw_sin_2_data + 4 },
  801. { 256, 1, yw_sin_1_data + 4 },
  802. }
  803. #endif
  804. },
  805. { "Sines|Sine 3", /* K4 wave 2 */
  806. #ifdef Y_GUI
  807. 0
  808. #endif
  809. #ifdef Y_PLUGIN
  810. {
  811. { 117, 1, yw_sin_3_data + 4 },
  812. { 256, 1, yw_sin_1_data + 4 },
  813. }
  814. #endif
  815. },
  816. { "Sines|Sine 4", /* K4 wave 3 */
  817. #ifdef Y_GUI
  818. 0
  819. #endif
  820. #ifdef Y_PLUGIN
  821. {
  822. { 112, 1, yw_sin_4_data + 4 },
  823. { 120, 1, yw_sin_2_data + 4 },
  824. { 256, 1, yw_sin_1_data + 4 },
  825. }
  826. #endif
  827. },
  828. { "Sines|Sine 5", /* K4 wave 4 */
  829. #ifdef Y_GUI
  830. 0
  831. #endif
  832. #ifdef Y_PLUGIN
  833. {
  834. { 108, 1, yw_sin_5_data + 4 },
  835. { 117, 1, yw_sin_3_data + 4 },
  836. { 256, 1, yw_sin_1_data + 4 },
  837. }
  838. #endif
  839. },
  840. { "Sines|Sine 6", /* K4 wave 5 */
  841. #ifdef Y_GUI
  842. 0
  843. #endif
  844. #ifdef Y_PLUGIN
  845. {
  846. { 105, 1, yw_sin_6_data + 4 },
  847. { 120, 1, yw_sin_2_data + 4 },
  848. { 256, 1, yw_sin_1_data + 4 },
  849. }
  850. #endif
  851. },
  852. { "Sines|Sine 7", /* K4 wave 6 */
  853. #ifdef Y_GUI
  854. 0
  855. #endif
  856. #ifdef Y_PLUGIN
  857. {
  858. { 103, 1, yw_sin_7_data + 4 },
  859. { 117, 1, yw_sin_3_data + 4 },
  860. { 256, 1, yw_sin_1_data + 4 },
  861. }
  862. #endif
  863. },
  864. { "Sines|Sine 8", /* K4 wave 7 */
  865. #ifdef Y_GUI
  866. 0
  867. #endif
  868. #ifdef Y_PLUGIN
  869. {
  870. { 100, 1, yw_sin_8_data + 4 },
  871. { 112, 1, yw_sin_4_data + 4 },
  872. { 120, 1, yw_sin_2_data + 4 },
  873. { 256, 1, yw_sin_1_data + 4 },
  874. }
  875. #endif
  876. },
  877. { "Sines|Sine 9", /* K4 wave 8 */
  878. #ifdef Y_GUI
  879. 0
  880. #endif
  881. #ifdef Y_PLUGIN
  882. {
  883. { 98, 1, yw_sin_9_data + 4 },
  884. { 108, 1, yw_sin_5_data + 4 },
  885. { 117, 1, yw_sin_3_data + 4 },
  886. { 256, 1, yw_sin_1_data + 4 },
  887. }
  888. #endif
  889. },
  890. { "Sines|Sine 1+2", /* SQ-80 waveform 30 'octave' */
  891. #ifdef Y_GUI
  892. 1
  893. #endif
  894. #ifdef Y_PLUGIN
  895. {
  896. { 119, 1, sq80_17_e_data + 4 }, /* 'octave' 0-14 */
  897. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  898. }
  899. #endif
  900. },
  901. { "Sines|Sine 1+2+3", /* SQ-80 waveform 31 'oct+5' */
  902. #ifdef Y_GUI
  903. 1
  904. #endif
  905. #ifdef Y_PLUGIN
  906. {
  907. { 111, 1, sq80_1a_d_data + 4 }, /* 'oct+5' 0-13 */
  908. { 119, 1, sq80_17_e_data + 4 }, /* 'oct+5' 14 */
  909. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  910. }
  911. #endif
  912. },
  913. { "Sines|Sine 1+3", /* SQ-80 waveform 33 'triang' */
  914. #ifdef Y_GUI
  915. 1
  916. #endif
  917. #ifdef Y_PLUGIN
  918. {
  919. { 111, 1, sq80_19_d_data + 4 }, /* 'triang' 0-13 */
  920. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  921. }
  922. #endif
  923. },
  924. /* ==== 'Analog' waveforms ==== */
  925. { "Analog|Triangle", /* K4 wave 18 */
  926. #ifdef Y_GUI
  927. 0
  928. #endif
  929. #ifdef Y_PLUGIN
  930. {
  931. { 66, 1, k4_19_3_data + 4 }, /* Triangle */
  932. { 78, 1, k4_19_4_data + 4 }, /* Triangle */
  933. { 90, 1, k4_19_5_data + 4 }, /* Triangle */
  934. { 127, 1, k4_19_6_data + 4 }, /* Triangle */
  935. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  936. }
  937. #endif
  938. },
  939. { "Analog|Saw 0", /* SQ-80 waveform 32 'saw__2' */
  940. #ifdef Y_GUI
  941. 0
  942. #endif
  943. #ifdef Y_PLUGIN
  944. {
  945. { 111, 1, sq80_18_d_data + 4 }, /* 'saw__2' 0-13 */
  946. { 119, 1, sq80_16_e_data + 4 }, /* 'saw__2' 14 */
  947. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  948. }
  949. #endif
  950. },
  951. { "Analog|Saw 1", /* K4 wave 9 */
  952. #ifdef Y_GUI
  953. 0
  954. #endif
  955. #ifdef Y_PLUGIN
  956. {
  957. { 78, 1, k4_10_4_data + 4 }, /* Saw 1 */
  958. { 90, 1, k4_10_5_data + 4 }, /* Saw 1 */
  959. { 127, 1, k4_10_6_data + 4 }, /* Saw 1 */
  960. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  961. }
  962. #endif
  963. },
  964. { "Analog|Saw 2", /* K4 wave 10 */
  965. #ifdef Y_GUI
  966. 0
  967. #endif
  968. #ifdef Y_PLUGIN
  969. {
  970. { 66, 1, k4_11_3_data + 4 }, /* Saw 2 */
  971. { 78, 1, k4_11_4_data + 4 }, /* Saw 2 */
  972. { 90, 1, k4_11_5_data + 4 }, /* Saw 2 */
  973. { 127, 1, k4_11_6_data + 4 }, /* Saw 2 */
  974. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  975. }
  976. #endif
  977. },
  978. { "Analog|Saw 3", /* K4 wave 11 */
  979. #ifdef Y_GUI
  980. 0
  981. #endif
  982. #ifdef Y_PLUGIN
  983. {
  984. { 42, 1, k4_12_1_data + 4 }, /* Saw 3 */
  985. { 54, 1, k4_12_2_data + 4 }, /* Saw 3 */
  986. { 66, 1, k4_12_3_data + 4 }, /* Saw 3 */
  987. { 78, 1, k4_12_4_data + 4 }, /* Saw 3 */
  988. { 90, 1, k4_12_5_data + 4 }, /* Saw 3 */
  989. { 127, 1, k4_12_6_data + 4 }, /* Saw 3 */
  990. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  991. }
  992. #endif
  993. },
  994. { "Analog|Saw 4", /* K4 wave 12 */
  995. #ifdef Y_GUI
  996. 0
  997. #endif
  998. #ifdef Y_PLUGIN
  999. {
  1000. { 42, 1, k4_13_1_data + 4 }, /* Saw 4 */
  1001. { 54, 1, k4_13_2_data + 4 }, /* Saw 4 */
  1002. { 66, 1, k4_13_3_data + 4 }, /* Saw 4 */
  1003. { 78, 1, k4_13_4_data + 4 }, /* Saw 4 */
  1004. { 90, 1, k4_13_5_data + 4 }, /* Saw 4 */
  1005. { 127, 1, k4_13_6_data + 4 }, /* Saw 4 */
  1006. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1007. }
  1008. #endif
  1009. },
  1010. { "Analog|Saw 5", /* K4 wave 13 */
  1011. #ifdef Y_GUI
  1012. 0
  1013. #endif
  1014. #ifdef Y_PLUGIN
  1015. {
  1016. { 42, 1, k4_14_1_data + 4 }, /* Saw 5 */
  1017. { 54, 1, k4_14_2_data + 4 }, /* Saw 5 */
  1018. { 66, 1, k4_14_3_data + 4 }, /* Saw 5 */
  1019. { 78, 1, k4_14_4_data + 4 }, /* Saw 5 */
  1020. { 90, 1, k4_14_5_data + 4 }, /* Saw 5 */
  1021. { 127, 1, k4_14_6_data + 4 }, /* Saw 5 */
  1022. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1023. }
  1024. #endif
  1025. },
  1026. { "Analog|Saw 6", /* K4 wave 14 */
  1027. #ifdef Y_GUI
  1028. 0
  1029. #endif
  1030. #ifdef Y_PLUGIN
  1031. {
  1032. { 42, 1, k4_15_1_data + 4 }, /* Saw 6 */
  1033. { 54, 1, k4_15_2_data + 4 }, /* Saw 6 */
  1034. { 66, 1, k4_15_3_data + 4 }, /* Saw 6 */
  1035. { 78, 1, k4_15_4_data + 4 }, /* Saw 6 */
  1036. { 90, 1, k4_15_5_data + 4 }, /* Saw 6 */
  1037. { 127, 1, k4_15_6_data + 4 }, /* Saw 6 */
  1038. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1039. }
  1040. #endif
  1041. },
  1042. { "Analog|Saw 6.5", /* SQ-80 waveform 0 'saw' */
  1043. /* -FIX- Now that this has the proper key ranges, it's really very close
  1044. * to 'Saw 6'. Replace 'Saw 6' with this when next reorganizing the
  1045. * wavetables. */
  1046. #ifdef Y_GUI
  1047. 0
  1048. #endif
  1049. #ifdef Y_PLUGIN
  1050. {
  1051. { 39, 1, sq80_34_4_data + 4 }, /* 'saw' 0-4 */
  1052. { 47, 1, sq80_35_5_data + 4 }, /* 'saw' 5 */
  1053. { 55, 1, sq80_36_6_data + 4 }, /* 'saw' 6 */
  1054. { 63, 1, sq80_36_7_data + 4 }, /* 'saw' 7 */
  1055. { 79, 1, sq80_37_9_data + 4 }, /* 'saw' 8-9 */
  1056. { 95, 1, sq80_38_b_data + 4 }, /* 'saw' 10-11 */
  1057. { 103, 1, sq80_39_c_data + 4 }, /* 'saw' 12 */
  1058. { 111, 1, sq80_18_d_data + 4 }, /* 'saw' 13 */
  1059. { 119, 1, sq80_16_e_data + 4 }, /* 'saw' 14 */
  1060. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1061. }
  1062. #endif
  1063. },
  1064. { "Analog|Saw 7", /* K4 wave 15 */
  1065. #ifdef Y_GUI
  1066. 0
  1067. #endif
  1068. #ifdef Y_PLUGIN
  1069. {
  1070. { 42, 1, k4_16_1_data + 4 }, /* Saw 7 */
  1071. { 54, 1, k4_16_2_data + 4 }, /* Saw 7 */
  1072. { 66, 1, k4_16_3_data + 4 }, /* Saw 7 */
  1073. { 78, 1, k4_16_4_data + 4 }, /* Saw 7 */
  1074. { 90, 1, k4_16_5_data + 4 }, /* Saw 7 */
  1075. { 127, 1, k4_16_6_data + 4 }, /* Saw 7 */
  1076. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1077. }
  1078. #endif
  1079. },
  1080. { "Analog|Saw 8", /* K4 wave 16 */
  1081. #ifdef Y_GUI
  1082. 0
  1083. #endif
  1084. #ifdef Y_PLUGIN
  1085. {
  1086. { 42, 1, k4_17_1_data + 4 }, /* Saw 8 */
  1087. { 54, 1, k4_17_2_data + 4 }, /* Saw 8 */
  1088. { 66, 1, k4_17_3_data + 4 }, /* Saw 8 */
  1089. { 78, 1, k4_17_4_data + 4 }, /* Saw 8 */
  1090. { 90, 1, k4_17_5_data + 4 }, /* Saw 8 */
  1091. { 127, 1, k4_17_6_data + 4 }, /* Saw 8 */
  1092. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1093. }
  1094. #endif
  1095. },
  1096. { "Analog|Pulse", /* K4 wave 17 */
  1097. #ifdef Y_GUI
  1098. 1
  1099. #endif
  1100. #ifdef Y_PLUGIN
  1101. {
  1102. { 42, 1, k4_18_1_data + 4 }, /* Pulse */
  1103. { 54, 1, k4_18_2_data + 4 }, /* Pulse */
  1104. { 66, 1, k4_18_3_data + 4 }, /* Pulse */
  1105. { 78, 1, k4_18_4_data + 4 }, /* Pulse */
  1106. { 90, 1, k4_18_5_data + 4 }, /* Pulse */
  1107. { 127, 1, k4_18_6_data + 4 }, /* Pulse */
  1108. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1109. }
  1110. #endif
  1111. },
  1112. { "Analog|Square", /* K4 wave 19 */
  1113. #ifdef Y_GUI
  1114. 2
  1115. #endif
  1116. #ifdef Y_PLUGIN
  1117. {
  1118. { 42, 1, k4_20_1_data + 4 }, /* Square */
  1119. { 54, 1, k4_20_2_data + 4 }, /* Square */
  1120. { 66, 1, k4_20_3_data + 4 }, /* Square */
  1121. { 78, 1, k4_20_4_data + 4 }, /* Square */
  1122. { 90, 1, k4_20_5_data + 4 }, /* Square */
  1123. { 127, 1, k4_20_6_data + 4 }, /* Square */
  1124. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1125. }
  1126. #endif
  1127. },
  1128. { "Analog|Square 2", /* SQ-80 waveform 3 'square' */
  1129. #ifdef Y_GUI
  1130. 2
  1131. #endif
  1132. #ifdef Y_PLUGIN
  1133. {
  1134. { 39, 1, sq80_46_4_data + 4 }, /* 'square' 0-4 */
  1135. { 47, 1, sq80_47_5_data + 4 }, /* 'square' 5 */
  1136. { 55, 1, sq80_48_6_data + 4 }, /* 'square' 6-7 */
  1137. { 79, 1, sq80_49_9_data + 4 }, /* 'square' 8-9 */
  1138. { 95, 1, sq80_4a_b_data + 4 }, /* 'square' 10-11 */
  1139. { 103, 1, sq80_4b_c_data + 4 }, /* 'square' 12 */
  1140. { 111, 1, sq80_19_d_data + 4 }, /* 'square' 13 */
  1141. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1142. }
  1143. #endif
  1144. },
  1145. { "Analog|Rectangular 1", /* K4 wave 20 */
  1146. #ifdef Y_GUI
  1147. 3
  1148. #endif
  1149. #ifdef Y_PLUGIN
  1150. {
  1151. { 42, 1, k4_21_1_data + 4 }, /* Rectangular 1 */
  1152. { 54, 1, k4_21_2_data + 4 }, /* Rectangular 1 */
  1153. { 66, 1, k4_21_3_data + 4 }, /* Rectangular 1 */
  1154. { 78, 1, k4_21_4_data + 4 }, /* Rectangular 1 */
  1155. { 90, 1, k4_21_5_data + 4 }, /* Rectangular 1 */
  1156. { 127, 1, k4_21_6_data + 4 }, /* Rectangular 1 */
  1157. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1158. }
  1159. #endif
  1160. },
  1161. { "Analog|Rectangular 2", /* K4 wave 21 */
  1162. #ifdef Y_GUI
  1163. 3
  1164. #endif
  1165. #ifdef Y_PLUGIN
  1166. {
  1167. { 42, 1, k4_22_1_data + 4 }, /* Rectangular 2 */
  1168. { 54, 1, k4_22_2_data + 4 }, /* Rectangular 2 */
  1169. { 66, 1, k4_22_3_data + 4 }, /* Rectangular 2 */
  1170. { 78, 1, k4_22_4_data + 4 }, /* Rectangular 2 */
  1171. { 90, 1, k4_22_5_data + 4 }, /* Rectangular 2 */
  1172. { 127, 1, k4_22_6_data + 4 }, /* Rectangular 2 */
  1173. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1174. }
  1175. #endif
  1176. },
  1177. { "Analog|Rectangular 3", /* K4 wave 22 */
  1178. #ifdef Y_GUI
  1179. 3
  1180. #endif
  1181. #ifdef Y_PLUGIN
  1182. {
  1183. { 42, 1, k4_23_1_data + 4 }, /* Rectangular 3 */
  1184. { 54, 1, k4_23_2_data + 4 }, /* Rectangular 3 */
  1185. { 66, 1, k4_23_3_data + 4 }, /* Rectangular 3 */
  1186. { 78, 1, k4_23_4_data + 4 }, /* Rectangular 3 */
  1187. { 90, 1, k4_23_5_data + 4 }, /* Rectangular 3 */
  1188. { 127, 1, k4_23_6_data + 4 }, /* Rectangular 3 */
  1189. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1190. }
  1191. #endif
  1192. },
  1193. { "Analog|Rectangular 4", /* K4 wave 23 */
  1194. #ifdef Y_GUI
  1195. 3
  1196. #endif
  1197. #ifdef Y_PLUGIN
  1198. {
  1199. { 42, 1, k4_24_1_data + 4 }, /* Rectangular 4 */
  1200. { 54, 1, k4_24_2_data + 4 }, /* Rectangular 4 */
  1201. { 66, 1, k4_24_3_data + 4 }, /* Rectangular 4 */
  1202. { 78, 1, k4_24_4_data + 4 }, /* Rectangular 4 */
  1203. { 90, 1, k4_24_5_data + 4 }, /* Rectangular 4 */
  1204. { 127, 1, k4_24_6_data + 4 }, /* Rectangular 4 */
  1205. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1206. }
  1207. #endif
  1208. },
  1209. { "Analog|Rectangular 5", /* K4 wave 24 */
  1210. #ifdef Y_GUI
  1211. 3
  1212. #endif
  1213. #ifdef Y_PLUGIN
  1214. {
  1215. { 42, 1, k4_25_1_data + 4 }, /* Rectangular 5 */
  1216. { 54, 1, k4_25_2_data + 4 }, /* Rectangular 5 */
  1217. { 66, 1, k4_25_3_data + 4 }, /* Rectangular 5 */
  1218. { 78, 1, k4_25_4_data + 4 }, /* Rectangular 5 */
  1219. { 90, 1, k4_25_5_data + 4 }, /* Rectangular 5 */
  1220. { 127, 1, k4_25_6_data + 4 }, /* Rectangular 5 */
  1221. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1222. }
  1223. #endif
  1224. },
  1225. { "Analog|Rectangular 6", /* K4 wave 25 */
  1226. #ifdef Y_GUI
  1227. 3
  1228. #endif
  1229. #ifdef Y_PLUGIN
  1230. {
  1231. { 42, 1, k4_26_1_data + 4 }, /* Rectangular 6 */
  1232. { 54, 1, k4_26_2_data + 4 }, /* Rectangular 6 */
  1233. { 66, 1, k4_26_3_data + 4 }, /* Rectangular 6 */
  1234. { 78, 1, k4_26_4_data + 4 }, /* Rectangular 6 */
  1235. { 90, 1, k4_26_5_data + 4 }, /* Rectangular 6 */
  1236. { 127, 1, k4_26_6_data + 4 }, /* Rectangular 6 */
  1237. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1238. }
  1239. #endif
  1240. },
  1241. /* ==== Digital/new synth waveforms ==== */
  1242. { "Digital|Synth", /* K4 wave 95 */
  1243. #ifdef Y_GUI
  1244. 0
  1245. #endif
  1246. #ifdef Y_PLUGIN
  1247. {
  1248. { 42, 1, k4_96_1_data + 4 }, /* Synth */
  1249. { 54, 1, k4_96_2_data + 4 }, /* Synth */
  1250. { 66, 1, k4_96_3_data + 4 }, /* Synth */
  1251. { 78, 1, k4_96_4_data + 4 }, /* Synth */
  1252. { 90, 1, k4_96_5_data + 4 }, /* Synth */
  1253. { 127, 1, k4_96_6_data + 4 }, /* Synth */
  1254. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1255. }
  1256. #endif
  1257. },
  1258. { "Digital|Synth 1", /* SQ-80 waveform 16 'synth1' */
  1259. #ifdef Y_GUI
  1260. 0
  1261. #endif
  1262. #ifdef Y_PLUGIN
  1263. {
  1264. { 79, 1, sq80_0f_9_data + 4 }, /* 'synth1' 0-9 */
  1265. { 87, 1, sq80_10_a_data + 4 }, /* 'synth1' 10 */
  1266. { 95, 1, sq80_11_b_data + 4 }, /* 'synth1' 11 */
  1267. { 103, 1, sq80_11_c_data + 4 }, /* 'synth1' 12 */
  1268. { 119, 1, sq80_17_e_data + 4 }, /* 'synth1' 13-14 */
  1269. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1270. }
  1271. #endif
  1272. },
  1273. { "Digital|Synth 2", /* SQ-80 waveform 17 'synth2' */
  1274. #ifdef Y_GUI
  1275. 0
  1276. #endif
  1277. #ifdef Y_PLUGIN
  1278. {
  1279. { 79, 1, sq80_12_9_data + 4 }, /* 'synth2' 0-9 */
  1280. { 87, 1, sq80_13_a_data + 4 }, /* 'synth2' 10 */
  1281. { 103, 1, sq80_14_c_data + 4 }, /* 'synth2' 11-12 */
  1282. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1283. }
  1284. #endif
  1285. },
  1286. { "Digital|Synth 3", /* SQ-80 waveform 18 'synth3' */
  1287. #ifdef Y_GUI
  1288. 0
  1289. #endif
  1290. #ifdef Y_PLUGIN
  1291. {
  1292. { 79, 1, sq80_1b_9_data + 4 }, /* 'synth3' 0-9 */
  1293. { 95, 1, sq80_1c_b_data + 4 }, /* 'synth3' 10-11 */
  1294. { 111, 1, sq80_1a_d_data + 4 }, /* 'synth3' 12-13 */
  1295. { 119, 1, sq80_17_e_data + 4 }, /* 'synth3' 14 */
  1296. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1297. }
  1298. #endif
  1299. },
  1300. { "Digital|Primes", /* SQ-80 waveform 27 'prime' */
  1301. #ifdef Y_GUI
  1302. 0
  1303. #endif
  1304. #ifdef Y_PLUGIN
  1305. {
  1306. { 95, 1, sq80_1c_b_data + 4 }, /* 'prime' 0-11 */
  1307. { 111, 1, sq80_1a_d_data + 4 }, /* 'prime' 12-13 */
  1308. { 119, 1, sq80_17_e_data + 4 }, /* 'prime' 14 */
  1309. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1310. }
  1311. #endif
  1312. },
  1313. { "Digital|Alien", /* SQ-80 waveform 48 'alien' */
  1314. #ifdef Y_GUI
  1315. 0
  1316. #endif
  1317. #ifdef Y_PLUGIN
  1318. {
  1319. { 47, 1, sq80_81_5_data + 4 }, /* 'alien' 0-5 */
  1320. { 55, 1, sq80_81_6_data + 4 }, /* 'alien' 6 */
  1321. { 63, 1, sq80_82_7_data + 4 }, /* 'alien' 7 */
  1322. { 71, 1, sq80_82_8_data + 4 }, /* 'alien' 8 */
  1323. { 79, 1, sq80_83_9_data + 4 }, /* 'alien' 9 */
  1324. { 87, 1, sq80_84_a_data + 4 }, /* 'alien' 10 */
  1325. { 95, 1, sq80_84_b_data + 4 }, /* 'alien' 11 */
  1326. { 103, 1, sq80_84_c_data + 4 }, /* 'alien' 12 */
  1327. { 111, 1, sq80_1a_d_data + 4 }, /* 'alien' 13 */
  1328. { 119, 1, sq80_17_e_data + 4 }, /* 'alien' 14 */
  1329. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1330. }
  1331. #endif
  1332. },
  1333. { "Digital|Digital 1", /* SQ-80 waveform 45 'digit1' */
  1334. #ifdef Y_GUI
  1335. 1
  1336. #endif
  1337. #ifdef Y_PLUGIN
  1338. {
  1339. { 63, 1, sq80_85_7_data + 4 }, /* 'digit1' 0-7 */
  1340. { 71, 1, sq80_85_8_data + 4 }, /* 'digit1' 8 */
  1341. { 86, 1, sq80_86_9_data + 4 }, /* 'digit1' 9+ */
  1342. { 95, 1, sq80_07_b_data + 4 }, /* 'digit1' 11 */
  1343. { 103, 1, sq80_08_c_data + 4 }, /* 'digit1' 12 */
  1344. { 111, 1, sq80_1a_d_data + 4 }, /* 'digit1' 13 */
  1345. { 119, 1, sq80_17_e_data + 4 }, /* 'digit1' 14 */
  1346. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1347. }
  1348. #endif
  1349. },
  1350. { "Digital|PulseSynth",
  1351. /* The first four samples here duplicate //christian's use of the wrong
  1352. * start and length for his 'pulse' extractions. */
  1353. #ifdef Y_GUI
  1354. 2
  1355. #endif
  1356. #ifdef Y_PLUGIN
  1357. {
  1358. { 55, 1, sq80_pulsesynth2_6_data + 4 }, /* 'PulseSynth' 0-6 */
  1359. { 63, 1, sq80_pulsesynth3_7_data + 4 }, /* 'PulseSynth' 7 */
  1360. { 71, 1, sq80_pulsesynth4_8_data + 4 }, /* 'PulseSynth' 8 */
  1361. { 79, 1, sq80_pulsesynth5_9_data + 4 }, /* 'PulseSynth' 9 */
  1362. { 95, 1, sq80_07_b_data + 4 }, /* 'pulse' 11 */
  1363. { 103, 1, sq80_08_c_data + 4 }, /* 'pulse' 12 */
  1364. { 111, 1, sq80_1a_d_data + 4 }, /* 'pulse' 13 */
  1365. { 119, 1, sq80_17_e_data + 4 }, /* 'pulse' 14 */
  1366. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1367. }
  1368. #endif
  1369. },
  1370. /* ==== Brass ==== */
  1371. { "Brass|Pure Horn L", /* K4 wave 26 */
  1372. #ifdef Y_GUI
  1373. 0
  1374. #endif
  1375. #ifdef Y_PLUGIN
  1376. {
  1377. { 127, 1, k4_27_3_data + 4 }, /* Pure Horn L */
  1378. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1379. }
  1380. #endif
  1381. },
  1382. { "Brass|Pure Horn H", /* K4 wave 71 */
  1383. #ifdef Y_GUI
  1384. 0
  1385. #endif
  1386. #ifdef Y_PLUGIN
  1387. {
  1388. { 42, 1, k4_72_1_data + 4 }, /* Pure Horn H */
  1389. { 54, 1, k4_72_2_data + 4 }, /* Pure Horn H */
  1390. { 66, 1, k4_72_3_data + 4 }, /* Pure Horn H */
  1391. { 78, 1, k4_72_4_data + 4 }, /* Pure Horn H */
  1392. { 90, 1, k4_72_5_data + 4 }, /* Pure Horn H */
  1393. { 127, 1, k4_72_6_data + 4 }, /* Pure Horn H */
  1394. { 256, 1, yw_sin_1_data + 4 }, /* end-of-waves marker */
  1395. }
  1396. #endif
  1397. },
  1398. { "Brass|Punch Brass", /* K4 wave 27 */
  1399. #ifdef Y_GUI
  1400. 0
  1401. #endif
  1402. #ifdef Y_PLUGIN
  1403. {
  1404. { 66, 1, k4_28_3_data + 4 }, /* Punch Brass 1 */
  1405. { 78, 1, k4_28_4_data + 4 }, /* Punch Brass 1 */
  1406. { 90, 1, k4_28_5_data + 4 }, /* Punch Brass 1 */