standalone.h 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138
  1. /*
  2. * Copyright (c) 1983-2013 Trevor Wishart and Composers Desktop Project Ltd
  3. * http://www.trevorwishart.co.uk
  4. * http://www.composersdesktop.com
  5. *
  6. This file is part of the CDP System.
  7. The CDP System is free software; you can redistribute it
  8. and/or modify it under the terms of the GNU Lesser General Public
  9. License as published by the Free Software Foundation; either
  10. version 2.1 of the License, or (at your option) any later version.
  11. The CDP System is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. GNU Lesser General Public License for more details.
  15. You should have received a copy of the GNU Lesser General Public
  16. License along with the CDP System; if not, write to the Free Software
  17. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  18. 02111-1307 USA
  19. *
  20. */
  21. /* These are new programs which don't require libs to be recompiled
  22. but don't act differently to standard CDP programs */
  23. #define SPECTOVF2 89
  24. #define MTON 90
  25. #define FLUTTER 91
  26. #define SETHARES 92
  27. #define MCHSHRED 93
  28. #define MCHZIG 94
  29. #define MCHSTEREO 95
  30. #define MIXMULTI 256
  31. #define ANALJOIN 257
  32. #define PTOBRK 258
  33. #define PSOW_STRETCH 259
  34. #define PSOW_DUPL 260
  35. #define PSOW_DEL 261
  36. #define PSOW_STRFILL 262
  37. #define ONEFORM_GET 263
  38. #define ONEFORM_PUT 264
  39. #define ONEFORM_COMBINE 265
  40. #define PSOW_FREEZE 266
  41. #define PSOW_CHOP 267
  42. #define PSOW_INTERP 268
  43. #define NEWGATE 269
  44. #define PSOW_FEATURES 270
  45. #define PSOW_SYNTH 271
  46. #define PSOW_IMPOSE 272
  47. #define PSOW_SPLIT 273
  48. #define PSOW_SPACE 274
  49. #define PSOW_INTERLEAVE 275
  50. #define PSOW_REPLACE 276
  51. #define PSOW_EXTEND 277
  52. #define PSOW_LOCATE 278
  53. #define PSOW_CUT 279
  54. #define SPEC_REMOVE 280
  55. #define PSOW_EXTEND2 281
  56. #define PREFIXSIL 282
  57. #define STRANS 283
  58. #define PSOW_REINF 284
  59. #define PARTIALS_HARM 285
  60. #define SPECROSS 286
  61. #define MCHITER 287
  62. /* These are new programs which behave differently to standard CDP progs */
  63. /* These numbers follow on consecutively from values processno.h */
  64. #define TAPDELAY 353
  65. #define RMRESP 354
  66. #define RMVERB 355
  67. /* simil: these are multichannel toolkit programs */
  68. #define ABFPAN 900
  69. #define ABFPAN2 901
  70. #define CHANNELX 902
  71. #define CHORDER 903
  72. #define CHXFORMAT 904
  73. #define COPYSFX 905
  74. #define FMDCODE 906
  75. #define INTERLX 907
  76. #define NJOIN 908
  77. #define NMIX 909
  78. #define RMSINFO 910
  79. #define SFEXPROPS 911
  80. #define CHXFORMATM 912
  81. #define CHXFORMATG 913
  82. #define NJOINCH 914
  83. #define ABFPAN2P 915
  84. /* These are new programs which behave exactly as standard CDP progs */
  85. /* These numbers follow on consecutively from values processno.h */
  86. #define LUCIER_GETF 356
  87. #define LUCIER_GET 357
  88. #define LUCIER_PUT 358
  89. #define LUCIER_DEL 359
  90. #define SPECLEAN 360
  91. #define SPECTRACT 361
  92. #define PHASE 362
  93. #define FEATURES 363
  94. #define BRKTOPI 364
  95. #define SPECSLICE 365
  96. #define FOFEX_EX 366
  97. #define FOFEX_CO 367
  98. #define GREV_EXTEND 368
  99. #define PEAKFIND 369
  100. #define CONSTRICT 370
  101. #define EXPDECAY 371
  102. #define PEAKCHOP 372
  103. #define MCHANPAN 373
  104. #define TEX_MCHAN 374
  105. #define MANYSIL 375
  106. #define RETIME 376
  107. #define SPECTOVF 377
  108. #define HOVER 378
  109. #define MULTIMIX 379
  110. #define FRAME 380
  111. #define SEARCH 381
  112. #define MCHANREV 382
  113. #define WRAPPAGE 383
  114. // Intervening numbers are in science.h
  115. #define SPEKTRUM 384
  116. #define SPEKVARY 385
  117. #define SPEKFRMT 386
  118. #define TS_OSCIL 387
  119. #define TS_TRACE 388
  120. #define SPECAV 389
  121. #define SPECANAL 390
  122. #define SPECSPHINX 391
  123. #define SUPERACCU 392
  124. #define PARTITION 393
  125. #define SPECGRIDS 394
  126. #define GLISTEN 395
  127. #define TUNEVARY 396
  128. #define ISOLATE 397
  129. #define REJOIN 398
  130. #define PANORAMA 399
  131. #define TREMOLO 400
  132. #define ECHO 401
  133. #define PACKET 402
  134. #define SYNTHESIZER 403
  135. #define TAN_ONE 404
  136. #define TAN_TWO 405
  137. #define TAN_SEQ 406
  138. #define TAN_LIST 407
  139. #define SPECTWIN 408
  140. #define TRANSIT 409
  141. #define TRANSITF 410
  142. #define TRANSITD 411
  143. #define TRANSITFD 412
  144. #define TRANSITS 413
  145. #define TRANSITL 414
  146. #define CANTOR 415
  147. #define SHRINK 416
  148. #define NEWTEX 417
  149. #define CERACU 418
  150. #define MADRID 419
  151. #define SHIFTER 420
  152. #define FRACTURE 421
  153. #define SUBTRACT 422
  154. #define SPEKLINE 423
  155. #define SPECMORPH 424
  156. #define SPECMORPH2 425
  157. #define NEWDELAY 426
  158. #define FILTRAGE 427
  159. #define ITERLINE 428
  160. #define ITERLINEF 429
  161. #define SPECVU 430
  162. #define SPECRAND 431
  163. #define SPECSQZ 432
  164. #define HOVER2 433
  165. #define SELFSIM 434
  166. #define ITERFOF 435
  167. #define PULSER 436
  168. #define PULSER2 437
  169. #define PULSER3 438
  170. #define CHIRIKOV 439
  171. #define MULTIOSC 440
  172. #define SYNFILT 441
  173. #define STRANDS 442
  174. #define REFOCUS 443
  175. #define UNKNOT 444
  176. #define RHYMORPH 445
  177. #define RHYMORPH2 446
  178. #define CHANPHASE 447
  179. #define SILEND 448
  180. #define SPECULATE 449
  181. #define SPECTUNE 450
  182. #define REPAIR 451
  183. #define DISTSHIFT 452
  184. #define QUIRK 453
  185. #define ROTOR 454
  186. #define DISTCUT 455
  187. #define ENVCUT 456
  188. #define DISTWARP 457
  189. #define SPECFOLD 458
  190. #define BROWNIAN 459
  191. #define SPIN 460
  192. #define SPINQ 461
  193. #define CRUMBLE 462
  194. #define TESSELATE 463
  195. #define MULTISYN 464
  196. #define PHASOR 465
  197. #define CRYSTAL 466
  198. #define WAVEFORM 467
  199. #define DVDWIND 468
  200. #define CASCADE 469
  201. #define SYNSPLINE 470
  202. #define FRACTAL 471
  203. #define FRACSPEC 472
  204. #define SPLINTER 473
  205. #define REPEATER 474
  206. #define VERGES 475
  207. #define MOTOR 476
  208. #define STUTTER 477
  209. #define SCRUNCH 478
  210. #define IMPULSE 479
  211. #define TWEET 480
  212. #define BOUNCE 481
  213. #define SORTER 482
  214. #define SPECFNU 483
  215. #define FLATTEN 484
  216. #define WAVMEDIAN 485
  217. #define DISTORTT 486
  218. #define SPECTSTR 487
  219. #define DISTMARK 488
  220. #define FTURANAL 489
  221. #define FTURSYNTH 490
  222. #define DISTBRIGHT 491
  223. #define DISTDOUBLE 492
  224. #define SEGSBKWD 493
  225. #define SEGSZIG 494
  226. #define SPIKE 495
  227. #define DISTREP 496
  228. #define TOSTEREO 497
  229. #define SUPPRESS 498
  230. #define CALTRAIN 499
  231. #define SPECENV 500
  232. #define PAIREX 501
  233. #define NUCLICK 502
  234. #define CLIP 503
  235. #define SPECEX 504
  236. #define ONSET 505
  237. #define MATRIX 506
  238. #define TRANSPART 507
  239. #define SPECINVNU 508
  240. #define SPECCONV 509
  241. #define SPECSND 510
  242. #define SPECFRAC 511
  243. #define ENVSPEAK 512
  244. #define EXTSPEAK 513
  245. #define ENVSCULPT 514
  246. #define TREMENV 515
  247. #define DCFIX 516
  248. //#define TOPTAIL 497 // nOT USEFUL: Tops and tails only where ALL channels fall below gate
  249. // MAX_PROCESS_NO should be defiend as the maximum number above
  250. #ifdef MAX_PROCESS_NO
  251. #undef MAX_PROCESS_NO
  252. #define MAX_PROCESS_NO DCFIX
  253. #else
  254. #define MAX_PROCESS_NO DCFIX
  255. #endif
  256. #define MIX_MULTI (ROTOR) // 1110000000000000 filetype
  257. // These numbers follow on consecutively from values in special.h
  258. #define TAPDELAY_DATA 68
  259. #define TAPDELAY_OPTION 69
  260. #define P_BRK_DATA 70
  261. #define SYNTHBANK 71
  262. #define TIMEVARYING_SYNTHBANK 72
  263. #define PSOW_REINFORCEMENT 73
  264. #define PSOW_INHARMONICS 74
  265. #define FOFEX_EXCLUDES 75
  266. #define FOFBANK_INFO 76
  267. #define MCHANDATA 77
  268. #define MANYSIL_DATA 78
  269. #define RETIME_DATA 79
  270. #define FRAMEDATA 80
  271. #define IDEAL_DATA 81
  272. #define MCHANDATA2 82
  273. #define RETIME_FNAM 83
  274. #define WRAP_FOCUS 84
  275. #define ANTIPHON 85
  276. #define CROSSPAN 86
  277. #define RETEMPO_DATA 87
  278. #define RETIME_MASK 88
  279. #define OCHANDATA 89
  280. #define FLUTTERDATA 90
  281. #define CHANXDATA 91
  282. #define CHORDATA 92
  283. #define MZIGDATA 93
  284. /* #define TS_HARM 94 in science.h */
  285. #define TUNING 95
  286. #define TUNELOW_DATA 96
  287. #define ISOLATES 97
  288. #define ISOGROUPS 98
  289. #define ISOSLICES 99
  290. #define ISOSYLLS 100
  291. #define PANOLSPKRS 101
  292. #define PAK_TIMES 102
  293. #define SYN_PARTIALS 103
  294. #define SHRFOC 104
  295. #define NTEX_TRANPOS 105
  296. #define CYCLECNTS 106
  297. #define MAD_SEQUENCE 107
  298. #define SHFCYCLES 108
  299. #define ENVSERIES 109
  300. #define SPEKLDATA 110
  301. #define MPEAKS 111
  302. #define ITERTRANS 112
  303. #define ITERTRANSF 113
  304. #define SYN_SPEK 114
  305. #define SYN_FILTERBANK 115
  306. #define COUTHREADS 116
  307. #define RHYMORLINK 117
  308. #define TUNINGLIST 118
  309. #define ROTORDAT 119
  310. #define TESSELATION 120
  311. #define SCOREDATA 121
  312. #define CRYSTALDAT 122
  313. #define CASCLIPS 123
  314. #define FRACSHAPE 124
  315. #define REPEATDATA 125
  316. #define VERGEDATA 126
  317. #define MOTORDATA 127
  318. #define SPSYNCDAT -1
  319. #define FFILT -2
  320. #define HFIELD -3
  321. #define HFIELD_OR_ZERO -4
  322. #define SEGMENTLIST -5
  323. #define MARKLIST -6
  324. #define FTURDATA -7
  325. #define SPIKEDATA -8
  326. #define SPACEDATA -9
  327. #define MATRIX_DATA -10
  328. #define XSPK_PATTERN -11
  329. #define XSPK_CUTS -12
  330. #define XSPK_CUTPAT -13
  331. #define XSPK_CUTARG -14
  332. #define XSPK_CUPATA -15
  333. #define RHYTHM -16
  334. // these numbers follow on consecutively DOWNwards from vals in tkglobals.h
  335. #define FILE_OR_ZERO -7
  336. #define FNAM_STRING -8
  337. // these numbers follow on consecutively from vals in cdparams.h
  338. #define OPTIONAL_FILE 25
  339. #define SPEED_OF_SOUND (346.5)
  340. /* parameters for PSOW_FREEZE */
  341. #define PS_TIME (1)
  342. #define PS_DUR (2)
  343. #define PS_SEGS (3)
  344. #define PS_DENS (4)
  345. #define PS_TRNS (5)
  346. #define PS_RAND (6)
  347. #define PS_GAIN (7)
  348. /* parameters for PSOW_INTERP */
  349. #define PS_SDUR (0)
  350. #define PS_IDUR (1)
  351. #define PS_EDUR (2)
  352. #define PS_VIBFRQ (3)
  353. #define PS_VIBDEPTH (4)
  354. #define PS_TREMFRQ (5)
  355. #define PS_TREMDEPTH (6)
  356. /* parameters for PSOW_FEATURES */
  357. #define PSF_SEGS (1)
  358. #define PSF_TRNS (2)
  359. #define PSF_SPEC (5)
  360. #define PSF_RAND (6)
  361. #define PSF_GAIN (7)
  362. #define PSF_SUB (8)
  363. #define PSF_SUBGAIN (9)
  364. #define PSF_FOFSTR (10)
  365. /* parameters for PSOW_IMPOSE */
  366. #define PS_DEPTH (1)
  367. #define PS_WSIZE (2)
  368. #define PS_GATE (3)
  369. #define PS_SCNT (4)
  370. #define PS_ENTRYCNT (5)
  371. #define PS_WORDCNT (6)
  372. #define PS_TIMESLOTS (7)
  373. #define PS_FRQ_INDEX (8)
  374. #define PS_TIMES_CNT (9)
  375. /* parameters for PSOW_SPLIT */
  376. #define PS_SUBNO (1)
  377. #define PS_UTRNS (2)
  378. #define PS_ATTEN (3)
  379. /* parameters for PSOW_SPACE */
  380. #define PS_SEPAR (2)
  381. #define PS_RELEV (3)
  382. #define PS_RELV2 (4)
  383. /* parameters for PSOW_INTERLEAVE */
  384. #define PS_GCNT (2)
  385. #define PS_BIAS (3)
  386. #define PS_WEIGHT (5)
  387. /* ARRAY NAMES FOR for PSOW_SYNTH */
  388. #define PS_OSCFRQ (0)
  389. #define PS_OSCAMP (1)
  390. #define PS_INFRQ (2)
  391. #define PS_INAMP (3)
  392. #define PS_FBRK (4)
  393. /* parameters for PSOW_EXTEND */
  394. #define PSE_VFRQ (4)
  395. #define PSE_VDEP (5)
  396. #define PSE_TRNS (6)
  397. #define PSE_GAIN (7)
  398. /* parameters for PSOW_EXTEND2 */
  399. #define PS2_VFRQ (3)
  400. #define PS2_VDEP (4)
  401. #define PS2_NUJ (5)
  402. #define PS_SAMPTIME (0)
  403. /* parameters for PSOW_REINF */
  404. #define ISTR (1)
  405. /* parameters for SPECROSS */
  406. #define PICH_THRESH (6)
  407. #define SPCMPLEV (7)
  408. #define SPECHINT (8)
  409. /* internal */
  410. #define PICH_PICH2 (9)
  411. /* flags for SPECROSS */
  412. #define AMP_SCALING (0)
  413. #define STABLE_PITCH (1)
  414. /* params for LUCIER GET */
  415. #define MIN_ROOM_DIMENSION (0)
  416. #define ROLLOFF_INTERVAL (1)
  417. /* extra param for LUCIER GETF */
  418. #define LUCIER_CUT (2)
  419. /* params for LUCIER IMPOSE */
  420. #define RESON_CNT (0)
  421. #define RES_EXTEND_ATTEN (1)
  422. /* params for LUCIER SUPPRESS */
  423. #define SUPR_COEFF (0)
  424. #define MAX_OUTCHAN (64)
  425. #define NEW_DEFAULT_NOISEGAIN (1.2)
  426. #define FORM_WIDTH (0)
  427. #define FORM_ACCURACY (1)
  428. #define FORM_PKCNT (2)
  429. #define FORM_GATE (3)
  430. #define FORM_RATIO (4)
  431. #define FORM_FWIDTH (5)
  432. #define FOFEX_FOFSAMPLE_SIZE (32)
  433. /* modes for FOFEX_CO */
  434. #define FOF_SINGLE (0)
  435. #define FOF_SUM (1)
  436. #define FOF_LOSUM (2)
  437. #define FOF_MIDSUM (3)
  438. #define FOF_HISUM (4)
  439. #define FOF_LOHI (5)
  440. #define FOF_TRIPLE (6)
  441. #define FOF_MEASURE (7)
  442. #define FOF_NORM (0)
  443. #define FOF_UNWIN (0)
  444. #define LOCALMAX_WINDOW (10)
  445. #define LOCALMIN_WINDOW_DIV (3)
  446. #define LOCALPEAK_DECIMATE (5)
  447. /* params for PEAKCHOP */
  448. #define PKCH_WSIZE (0)
  449. #define PKCH_WIDTH (1)
  450. #define PKCH_SPLICE (2)
  451. #define PKCH_TEMPO (3)
  452. #define PKCH_GAIN (4)
  453. #define PKCH_GATE (5)
  454. #define PKCH_SKEW (6)
  455. #define PKCH_SCAT (7)
  456. #define PKCH_NORM (8)
  457. #define PKCH_REPET (9)
  458. #define PKCH_MISS (10)
  459. #define PKCH_RISE (1)
  460. #define PKCH_DECDUR (2)
  461. #define PKCH_STEEP (3)
  462. #define PKCH_ZSTT (4)
  463. #define PKCH_ZEND (5)
  464. #define PKCH_RATIO (6)
  465. /* params for TEX_MCHAN */
  466. #define TEXTURE_OUTCHANS (12)
  467. #define SVF_RANGE (0)
  468. #define SVF_MATCH (1)
  469. #define SVF_LOLM (2)
  470. #define SVF_HILM (3)
  471. /********************************************************/
  472. /* ELEMENTS IN PLAYLIST FOR MAKING MULTICHANNEL TEXTURE */
  473. /********************************************************/
  474. struct soundoutmchan {
  475. float *inbuf;
  476. unsigned long ibufcnt;
  477. unsigned long st_sstttime;
  478. unsigned long st_sendtime;
  479. unsigned long obufpos;
  480. long st_splicpos;
  481. double ibufpos;
  482. double step;
  483. double lgain;
  484. double rgain;
  485. int lchan;
  486. int rchan;
  487. struct soundoutmchan *next;
  488. struct soundoutmchan *last;
  489. };
  490. typedef struct soundoutmchan *sndoutmchptr;
  491. /* Retime */
  492. #define SIL_SPLICELEN (0)
  493. #define MM (0)
  494. #define RETIME_WIDTH (1)
  495. #define RETIME_SPLICE (2)
  496. #define SILMIN (0.5)
  497. #define BEAT_AT (1)
  498. #define BEAT_CNT (2)
  499. #define BEAT_REPEATS (3)
  500. #define BEAT_SILMIN (4)
  501. #define RETIME_SYNCAT (4)
  502. /* Mchanrev*/
  503. #define REV_OCHANS 4
  504. #define REV_CENTRE 5
  505. #define REV_SPREAD 6
  506. #define STRING_E (26)
  507. /******* WRAPPAGE PARAMS, FLAGS ETC.******/
  508. #define WRAP_OUTCHANS (0)
  509. #define WRAP_SPREAD (1)
  510. #define WRAP_DEPTH (2)
  511. #define WRAP_VELOCITY (3)
  512. #define WRAP_HVELOCITY (4)
  513. #define WRAP_DENSITY (5)
  514. #define WRAP_HDENSITY (6)
  515. #define WRAP_GRAINSIZE (7)
  516. #define WRAP_HGRAINSIZE (8)
  517. #define WRAP_PITCH (9)
  518. #define WRAP_HPITCH (10)
  519. #define WRAP_AMP (11)
  520. #define WRAP_HAMP (12)
  521. #define WRAP_BSPLICE (13)
  522. #define WRAP_HBSPLICE (14)
  523. #define WRAP_ESPLICE (15)
  524. #define WRAP_HESPLICE (16)
  525. #define WRAP_SRCHRANGE (17)
  526. #define WRAP_SCATTER (18)
  527. #define WRAP_OUTLEN (19)
  528. #define WRAP_BUFXX (20)
  529. #define WRAP_PRANGE (21)
  530. #define WRAP_SPRANGE (22)
  531. #define WRAP_VRANGE (23)
  532. #define WRAP_DRANGE (24)
  533. #define WRAP_INCHANS (25)
  534. #define WRAP_BUF_SMPXS (26)
  535. #define WRAP_BUF_XS (27)
  536. #define WRAP_GLBUF_SMPXS (28)
  537. #define WRAP_LBUF_SMPXS (29)
  538. #define WRAP_LBUF_XS (30)
  539. #define WRAP_IS_BTAB (31)
  540. #define WRAP_IS_ETAB (32)
  541. #define WRAP_CHANNELS (33)
  542. #define WRAP_ORIG_SMPSIZE (34)
  543. #define WRAP_SAMPS_IN_INBUF (35)
  544. #define WRAP_ARANGE (36)
  545. #define WRAP_GRANGE (37)
  546. #define WRAP_BRANGE (38)
  547. #define WRAP_ERANGE (39)
  548. #define WRAP_LONGS_BUFLEN (40)
  549. #define WRAP_ARRAYSIZE (41)
  550. #define WRAP_BSPLICETAB (0)
  551. #define WRAP_ESPLICETAB (1)
  552. #define WRAP_NORMFACT (2)
  553. #define WRAP_CENTRE (3)
  554. #define WRAP_FLAGS (0)
  555. #define WRAP_LBUF (0)
  556. #define WRAP_LBUFEND (1)
  557. #define WRAP_LBUFMID (2)
  558. #define WRAP_LTAILEND (3)
  559. #define WRAP_PERM (1)
  560. /* #define WRAP_BUF (1) */
  561. /* #define WRAP_IBUF (2) */
  562. /* extrabuf_names */
  563. #define WRAP_GBUF (0)
  564. /* bitflags */
  565. #define WRAP_VARIABLE_HI_BOUND (8)
  566. #define WRAP_HI_BOUND (4)
  567. #define WRAP_VARIABLE_VAL (2)
  568. #define WRAP_FIXED_VAL (1)
  569. /* defaults and internal counters */
  570. #define WRAP_MIN_GRSAMPSIZE (4) /* smaalest grainsize in (multichan-group=1) samps */
  571. #define WRAP_MAX_VFLAGS (3)
  572. #define WRAP_DEFAULT_DENSITY (2.0)
  573. #define WRAP_MAX_DENSITY (16384.0)
  574. #define WRAP_MAX_VELOCITY (32767.0)
  575. #define WRAP_DEFAULT_GRAINSIZE (50.0)
  576. #define WRAP_DEFAULT_REVERB_PSHIFT (0.33)
  577. #define WRAP_DEFAULT_REVERB_SRCHRANGE (50.0) /* ??? */
  578. #define WRAP_DEFAULT_SPLICELEN (5.0) /* ??? */
  579. #define WRAP_MIN_SPLICELEN (1.0) /* ??? */
  580. #define WRAP_DEFAULT_SCATTER (0.5) /* ??? */
  581. #define WRAP_DEFAULT_REVERB_DENSITY (8.0) /* ??? */
  582. #define WRAP_VELOCITY_FLAG (0)
  583. #define WRAP_DENSITY_FLAG (1)
  584. #define WRAP_GRAINSIZE_FLAG (2)
  585. #define WRAP_PITCH_FLAG (3)
  586. #define WRAP_AMP_FLAG (4)
  587. #define WRAP_SPACE_FLAG (5)
  588. #define WRAP_BSPLICE_FLAG (6)
  589. #define WRAP_ESPLICE_FLAG (7)
  590. #define WRAP_RANGE_FLAG (8)
  591. #define WRAP_SCATTER_FLAG (9)
  592. #define WRAP_MIN_LIKELY_PITCH (10.0)
  593. #define WRAP_SFLAGCNT (8) /* structured flags */
  594. #define WRAP_FLAGCNT (2) /* other flags */
  595. #define WRAP_EXPON (0)
  596. #define WRAP_OTIME (1)
  597. #define FIXED (1)
  598. #define VARIABLE (2)
  599. #define RANGED (5)
  600. #define RANGE_VLO (6)
  601. #define RANGE_VHI (9)
  602. #define RANGE_VHILO (10)
  603. /* granula */
  604. /* multichannel 2009
  605. #define BOTH_CHANNELS (-1)
  606. #define ALL_CHANNELS (-1)
  607. */
  608. /* param names for SPECTOVF2 */
  609. #define SVF2_HILM 0
  610. #define SVF2_PKNG 1
  611. #define SVF2_CTOF 2
  612. #define SVF2_WNDR 3
  613. #define SVF2_PSST 4
  614. #define SVF2_TSTP 5
  615. #define SVF2_SGNF 6
  616. #define SVF2_LOLM 7
  617. #define SVF2_WSIZ 8
  618. /* params for SETHARES */
  619. #define M_WINSIZE 0
  620. #define M_PEAKING 1
  621. #define M_AMPFLOOR 2
  622. #define M_LOFRQ 3
  623. #define M_HIFRQ 4
  624. #define M_INTUNE 5
  625. /* MCHSHRED */
  626. /* PARAMS */
  627. #define MSHR_CNT (0) /* int */
  628. #define MSHR_CHLEN (1) /* double */
  629. #define MSHR_SCAT (2) /* double */
  630. #define MSHR_OUTCHANS (3) /* int */
  631. /* internal */
  632. #define MSHR_SPLEN (4) /* int */
  633. #define MSHR_LAST_BUFLEN (5) /* int */
  634. #define MSHR_LAST_CHCNT (6) /* int */
  635. #define MSHR_LAST_SCAT (7) /* int */
  636. #define MSHR_UNITLEN (8) /* int */
  637. #define MSHR_RAWLEN (9) /* int */
  638. #define MSHR_ENDRAWLEN (10) /* int */
  639. #define MSHR_SCATGRPCNT (11) /* int */
  640. #define MSHR_RANGE (12) /* int */
  641. #define MSHR_CHCNT_LESS_ONE (13) /* int */
  642. #define MSHR_ENDSCAT (14) /* int */
  643. #define MSHR_ENDRANGE (15) /* int */
  644. #define MSHR_CHCNT (16) /* int */
  645. /* ARRAYS */
  646. #define MSHR_PERM (0) /* int array */
  647. #define MSHR_PERMCH (1) /* int array */
  648. #define MSHR_CHUNKPTR (0) /* long array */
  649. #define MSHR_CHUNKLEN (1) /* long array */
  650. #define MSHR_ROTATE (0) /* float array */
  651. /* CONSTANTS */
  652. #define MSHR_SPLICELEN (256)
  653. #define MSHR_MAX_SCATTER (8)
  654. #define MSHR_MAX (10000)
  655. /*MCHZIG */
  656. #define MZIG_START (0)
  657. #define MZIG_END (1)
  658. #define MZIG_DUR (2)
  659. #define MZIG_MIN (3)
  660. #define MZIG_OCHANS (4)
  661. #define MZIG_SPLEN (5)
  662. #define MZIG_MAX (6)
  663. #define MZIG_RSEED (7)
  664. /* constants */
  665. #define MZIG_SPLICELEN (15.0)
  666. #define MZIG_MIN_UNSPLICED (1.0)
  667. #define MZIG_EXPON (1.0)
  668. #define MMIN_ZIGSPLICE (1.0)
  669. #define MMAX_ZIGSPLICE (5000.0)
  670. #define MDEFAULT_LPSTEP (200.0)
  671. /*MCHITER */
  672. #define MITER_OCHANS (0)
  673. #define MITER_DUR (1)
  674. #define MITER_REPEATS (1)
  675. #define MITER_DELAY (2)
  676. #define MITER_RANDOM (3)
  677. #define MITER_PSCAT (4)
  678. #define MITER_ASCAT (5)
  679. #define MITER_FADE (6)
  680. #define MITER_GAIN (7)
  681. #define MITER_RSEED (8)
  682. /* internal params */
  683. #define MITER_STEP (9)
  684. #define MITER_MSAMPDEL (10)
  685. #define MITER_DO_SCALE (11)
  686. #define MITER_PROCESS (12)
  687. /* ISOLATE */
  688. /* params */
  689. #define ISO_THRON 0
  690. #define ISO_THROFF 1
  691. #define ISO_SPL 2
  692. #define ISO_DOV 3
  693. #define ISO_MIN 3
  694. #define ISO_LEN 4
  695. /* modes */
  696. #define ISO_SEGMNT 0
  697. #define ISO_GROUPS 1
  698. #define ISO_THRESH 2
  699. #define ISO_SLICED 3
  700. #define ISO_OVRLAP 4
  701. /* PANORAMA */
  702. /* params */
  703. #define PANO_LCNT 0
  704. #define PANO_LWID 1
  705. #define PANO_SPRD 2
  706. #define PANO_OFST 3
  707. #define PANO_CNFG 4
  708. #define PANO_RAND 5
  709. /* TREMOLO && TREMENV */
  710. /* params */
  711. #define TREMOLO_FRQ 0
  712. #define TREMOLO_DEP 1
  713. #define TREMOLO_WIN 2
  714. #define TREMOLO_AMP 2
  715. #define TREMOLO_SQZ 3
  716. /* sintable size */
  717. #define TREMOLO_TABSIZE 4096
  718. /* ECHO */
  719. /* params */
  720. #define ECHO_DELAY 0
  721. #define ECHO_ATTEN 1
  722. #define ECHO_DUR 2
  723. #define ECHO_RAND 3
  724. #define ECHO_CUT 4
  725. /* PACKET */
  726. /* params */
  727. #define PAK_DUR 0
  728. #define PAK_SQZ 1
  729. #define PAK_CTR 2
  730. /* SYNTHESIZE */
  731. /* params */
  732. #define SYNTHSRAT (0)
  733. #define SYNTH_DUR (1)
  734. #define SYNTH_FRQ (2)
  735. #define SYNTH_SQZ (3)
  736. #define SYNTH_CTR (4)
  737. #define SYNTH_DAMP (3)
  738. #define SYNTH_K (4)
  739. #define SYNTH_B (5)
  740. #define SYNTH_ATK (3)
  741. #define SYNTH_EATK (4)
  742. #define SYNTH_DEC (5)
  743. #define SYNTH_EDEC (6)
  744. #define SYNTH_ATOH (7)
  745. #define SYNTH_GTOW (8)
  746. #define SYNTH_RAND (9)
  747. #define SYNTH_FLEVEL (10)
  748. /* sintable size */
  749. #define SYNTH_TABSIZE 131072
  750. #define SYNTH_CHANS (3)
  751. #define SYNTH_MAX (4)
  752. #define SYNTH_RATE (5)
  753. #define SYNTH_RISE (6)
  754. #define SYNTH_FALL (7)
  755. #define SYNTH_STDY (8)
  756. #define SYNTH_SPLEN (9)
  757. #define SYNTH_NUM (10)
  758. #define SYNTH_EFROM (11)
  759. #define SYNTH_ETIME (12)
  760. #define SYNTH_CTO (13)
  761. #define SYNTH_CTIME (14)
  762. #define SYNTH_STYPE (15)
  763. #define SYNTH_RSPEED (16)
  764. /* TANGENT */
  765. /* params */
  766. #define TAN_DUR (0)
  767. #define TAN_STEPS (1)
  768. #define TAN_MANG (2)
  769. #define TAN_SKEW (2)
  770. #define TAN_DEC (3)
  771. #define TAN_FBAL (4)
  772. #define TAN_FOCUS (5)
  773. #define TAN_JITTER (6)
  774. #define TAN_SLOW (7)
  775. /* SPECTWIN */
  776. /* params */
  777. #define TWIN_FRQINTP (0)
  778. #define TWIN_ENVINTP (1)
  779. /* TRANSIT */
  780. /* params */
  781. #define TRAN_FOCUS (0) /* Centre of motion */
  782. #define TRAN_DUR (1) /* Duration */
  783. #define TRAN_STEPS (2) /* Number of events in stream */
  784. #define TRAN_MAXA (3) /* Maxangle, or (mode4) maxdistance */
  785. #define TRAN_DEC (4) /* Gain from 1 event to next, away from centre */
  786. #define TRAN_FBAL (5) /* Progreesive mix-in of filtered sound, away from centre */
  787. #define TRAN_THRESH (6) /* Gain at which gain-decrement starts to increase */
  788. #define TRAN_DECLIM (7) /* Mix level of decrement after it dtarts to increase */
  789. #define TRAN_MINLEV (8) /* Minimum gain level for event to end */
  790. #define TRAN_MAXDUR (9) /* Maximum duration to curtail event */
  791. /* modes */
  792. #define GLANCING (0)
  793. #define EDGEWISE (1)
  794. #define CROSSING (2)
  795. #define CLOSE (3)
  796. #define CENTRAL (4)
  797. /* arrays */
  798. #define TR_SPKRPAIR (0)
  799. #define TR_SNDFILE (1)
  800. #define TR_LEVEL (0)
  801. #define TR_POSITION (1)
  802. #define TR_TIME (2)
  803. #define TR_FLTMIX (3)
  804. /* CANTOR */
  805. /* params */
  806. #define CA_HOLEN (0)
  807. #define CA_HOLEDIG (1)
  808. #define CA_TRIGLEV (2)
  809. #define CA_WOBBLES (2)
  810. #define CA_WOBDEC (3)
  811. #define CA_SPLEN (3)
  812. #define CA_MAXDUR (4)
  813. /* SHRINK */
  814. /* params */
  815. #define SHR_TIME (0)
  816. #define SHR_INK (1)
  817. #define SHR_GAP (2)
  818. #define SHR_WSIZE (2)
  819. #define SHR_CNTRCT (3)
  820. #define SHR_DUR (4)
  821. #define SHR_AFTER (4)
  822. #define SHR_SPLEN (5)
  823. #define SHR_SMALL (6)
  824. #define SHR_MIN (7)
  825. #define SHR_RAND (8)
  826. #define SHR_GATE (9)
  827. #define SHR_LEN (10)
  828. #define SHR_SKEW (11)
  829. /* modes */
  830. #define SHRM_START (0)
  831. #define SHRM_END (1)
  832. #define SHRM_CENTRE (2)
  833. #define SHRM_TIMED (3)
  834. #define SHRM_FINDMX (4)
  835. #define SHRM_LISTMX (5)
  836. /* flags */
  837. #define SHRNK_NORM (0)
  838. #define SHRNK_INVERT (1)
  839. #define SHRNK_EVENLY (2)
  840. #define SHR_SUPPRESS (3)
  841. /* double arrays */
  842. #define LOCAL_PK_VAL (0)
  843. #define SHR_INPUT_PKS (1)
  844. #define SHR_INVTGAPS (2)
  845. /* long arrays */
  846. #define SHR_PEAKS (0)
  847. #define SHR_TROFS (1)
  848. #define LOCAL_PK_AT (2)
  849. /* TINY WINDOW, TO FIND MINIMUM */
  850. #define TINY_WSIZE (8)
  851. /* spacebox */
  852. #define SB_LRRAND 1
  853. #define SB_FBRAND 2
  854. #define SB_ROTATE 3
  855. #define SB_SUPERSPACE 4
  856. #define SB_SUPERSPACE2 5
  857. #define SB_SUPERSPACE3 6
  858. #define SB_SUPERSPACE4 7
  859. #define SB_LR 8
  860. #define SB_FB 9
  861. #define SB_FRAMESWITCH 10
  862. #define SB_TRIROT1 11
  863. #define SB_TRIROT2 12
  864. #define SB_ANTITRIROT1 13
  865. #define SB_ANTITRIROT2 14
  866. /* NEWTEX */
  867. /* params */
  868. #define NTEX_DUR (0)
  869. #define NTEX_CHANS (1)
  870. #define NTEX_MAX (2)
  871. #define NTEX_RATE (3)
  872. #define NTEX_STYPE (4)
  873. #define NTEX_DEL (5)
  874. #define NTEX_LOC (6)
  875. #define NTEX_AMB (7)
  876. #define NTEX_GST (8)
  877. #define NTEX_SPLEN (9)
  878. #define NTEX_NUM (10)
  879. #define NTEX_EFROM (11)
  880. #define NTEX_ETIME (12)
  881. #define NTEX_CTO (13)
  882. #define NTEX_CTIME (14)
  883. #define NTEX_RSPEED (15)
  884. /* constants */
  885. #define NTEX_OBUFSIZE (512 * 512)
  886. /* CERACU */
  887. #define CER_MINDUR (0)
  888. #define CER_OCHANS (1)
  889. #define CER_CUTOFF (2)
  890. #define CER_DELAY (3)
  891. #define CER_DSTEP (4)
  892. /* FLAGS */
  893. #define CER_OVERRIDE (0)
  894. #define CER_LINEAR (1)
  895. /* MADRID */
  896. #define MAD_DUR (0)
  897. #define MAD_CHANS (1)
  898. #define MAD_STRMS (2)
  899. #define MAD_DELF (3)
  900. #define MAD_STEP (4)
  901. #define MAD_RAND (5)
  902. #define MAD_SEED (6)
  903. /* FLAGS */
  904. #define MAD_GAPS (0)
  905. #define MAD_LINEAR (1)
  906. #define MAD_INPERM (2)
  907. #define MAD_INRAND (3)
  908. /* SHIFTER */
  909. #define SHF_CYCDUR (0)
  910. #define SHF_OUTDUR (1)
  911. #define SHF_OCHANS (2)
  912. #define SHF_SUBDIV (3)
  913. #define SHF_LINGER (4)
  914. #define SHF_TRNSIT (5)
  915. #define SHF_LBOOST (6)
  916. /* flags */
  917. #define SHF_ZIG (0)
  918. #define SHF_RND (1)
  919. #define SHF_LIN (2)
  920. /* FRACTURE */
  921. #define FRAC_CHANS (0)
  922. #define FRAC_STRMS (1)
  923. #define FRAC_PULSE (2)
  924. #define FRAC_DEPTH (3)
  925. #define FRAC_STACK (4)
  926. #define FRAC_CENTRE (5)
  927. #define FRAC_FRONT (6)
  928. #define FRAC_MDEPTH (7)
  929. #define FRAC_ROLLOFF (8)
  930. #define FRAC_INRND (9)
  931. #define FRAC_OUTRND (10)
  932. #define FRAC_SCAT (11)
  933. #define FRAC_LEVRND (12)
  934. #define FRAC_ENVRND (13)
  935. #define FRAC_STKRND (14)
  936. #define FRAC_PCHRND (15)
  937. #define FRAC_SEED (16)
  938. #define FRAC_MIN (17)
  939. #define FRAC_MAX (18)
  940. #define FRAC_ATTEN (19)
  941. #define FRAC_ZPOINT (20)
  942. #define FRAC_CONTRACT (21)
  943. #define FRAC_FPOINT (22)
  944. #define FRAC_FFACTOR (23)
  945. #define FRAC_FFREQ (24)
  946. #define FRAC_UP (25)
  947. #define FRAC_DN (26)
  948. #define FRAC_GAIN (27)
  949. /* SPECMORPH */
  950. // params
  951. #define NMPH_STAG (0)
  952. #define NMPH_ASTT (1)
  953. #define NMPH_AEND (2)
  954. #define NMPH_AEXP (3)
  955. #define NMPH_APKS (4)
  956. #define NMPH_OCNT (5)
  957. #define NMPH_RAND (6)
  958. // modes
  959. #define NMPH_LINE (0)
  960. #define NMPH_COSIN (1)
  961. #define NMPH_LINEX (2)
  962. #define NMPH_COSINX (3)
  963. #define NMPH_LINET (4)
  964. #define NMPH_COSINT (5)
  965. #define NMPH_GETTEX (6)
  966. #define NMPH_LINTEX (7)
  967. #define NMPH_COSTEX (8)
  968. /* SPECTUNE */
  969. #define ST_MATCH 0
  970. #define ST_LOPCH 1
  971. #define ST_HIPCH 2
  972. #define ST_STIME 3
  973. #define ST_ETIME 4
  974. #define ST_INTUN 5
  975. #define ST_WNDWS 6
  976. #define ST_NOISE 7
  977. #define ST_INTUN5 3 // different param numbering for mode 4
  978. #define ST_WNDWS5 4
  979. #define ST_NOISE5 5
  980. #define ST_CNT 0
  981. #define ST_ACCEPTABLE_MATCH 5
  982. /* DISTCUT */
  983. #define DCUT_CNT 0
  984. #define DCUT_STP 1
  985. #define DCUT_EXP 2
  986. #define DCUT_LIM 3
  987. /* ENVCUT */
  988. #define ECUT_CNT 0
  989. #define ECUT_STP 1
  990. #define ECUT_ATT 2
  991. #define ECUT_EXP 3
  992. #define ECUT_LIM 4
  993. /* PHASOR */
  994. #define PHASOR_STREAMS 0
  995. #define PHASOR_FRQ 1
  996. #define PHASOR_SHIFT 2
  997. #define PHASOR_OCHANS 3
  998. #define PHASOR_OFFSET 4
  999. /* SPECSYNC */
  1000. #define IBUF 0
  1001. #define OBUF 1
  1002. #define OEND 2
  1003. #define IHERE 3
  1004. #define INEXT 4
  1005. #define OHERE 5
  1006. #define SYNCBUFSCNT 8
  1007. /* SORTER */
  1008. #define SORTER_SIZE 0
  1009. #define SORTER_SEED 1
  1010. #define SORTER_SMOOTH 2
  1011. #define SORTER_OMIDI 3
  1012. #define SORTER_IMIDI 4
  1013. #define SORTER_META 5
  1014. /* MODES FOR MATRIX */
  1015. #define MATRIX_MAKE 0
  1016. #define MATRIX_USE 1
  1017. /* PNAMES FOR MATRIX */
  1018. #define MATRIX_CHANS 0
  1019. #define MATRIX_OVLAP 1
  1020. /* PNAMES FOR FRACTAL */
  1021. #define FRACDEPTH 0
  1022. #define FRACSPLICE 1
  1023. /* PNAMES FOR ENVSPEAK */
  1024. #define ESPK_WINSZ 0
  1025. #define ESPK_SPLEN 1
  1026. #define ESPK_OFFST 2
  1027. #define ESPK_REPET 3
  1028. #define ESPK_GAIN 4
  1029. #define ESPK_WHICH 5
  1030. /* FLAG NAMES EXTSPEAK */
  1031. #define XSPK_TRANSPOSE 0
  1032. #define XSPK_ENV 1
  1033. #define XSPK_KEEP 2
  1034. #define XSPK_ORIGSZ 3
  1035. #define XSPK_INJECT 4
  1036. #define XSPK_RAND 5
  1037. /* PNAMES NAMES EXTSPEAK */
  1038. #define XSPK_WINSZ 0
  1039. #define XSPK_SPLEN 1
  1040. #define XSPK_OFFST 2
  1041. #define XSPK_N 3
  1042. #define XSPK_GAIN 4
  1043. #define XSPK_SEED 5
  1044. #define MAX_PATN 100