science.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702
  1. /*
  2. * Copyright (c) 1983-2020 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. /* CONSTANTS FOR SCIENCE PROGS */
  22. /* PROCESS NUMBERS */
  23. #ifndef SPEKTRUM
  24. #define SPEKTRUM 384
  25. #endif
  26. #ifndef SPEKVARY
  27. #define SPEKVARY 385
  28. #endif
  29. #ifndef SPEKFRMT
  30. #define SPEKFRMT 386
  31. #endif
  32. #ifndef TS_OSCIL
  33. #define TS_OSCIL 387
  34. #endif
  35. #ifndef TS_TRACE
  36. #define TS_TRACE 388
  37. #endif
  38. #ifndef SPECAV
  39. #define SPECAV 389
  40. #endif
  41. #ifndef SPECANAL
  42. #define SPECANAL 390
  43. #endif
  44. /* PARAMETERS */
  45. /* MAX_PROCESS_NO should be defiend as the maximum process OVERALL */
  46. #ifdef MAX_PROCESS_NO
  47. #undef MAX_PROCESS_NO
  48. #define MAX_PROCESS_NO TWEET
  49. #else
  50. #define MAX_PROCESS_NO TWEET
  51. #endif
  52. #define SPEKPOINTS 0
  53. #define SPEKSRATE 1
  54. #define SPEKDUR 2
  55. #define SPEKHARMS 3
  56. #define SPEKBRITE 4
  57. #define SPEKRANDF 5
  58. #define SPEKRANDA 6
  59. #define SPEKSPRED 7
  60. #define SPEKGAIN 8
  61. #define SPEKTYPE 9
  62. #define SPEKWIDTH 10
  63. #define SPEKMXASP 11
  64. #define SPEKZOOM 12
  65. #define SPEKDATLO (5)
  66. #define SPEKDATHI (6)
  67. #define SPEKSPKLO (7)
  68. #define SPEKSPKHI (8)
  69. #define SPEKMAX (9)
  70. #define SPEKWARP (10)
  71. #define SPEKAWARP (11)
  72. /* PARAMETERS */
  73. #define TS_TSTRETCH 0
  74. #define TS_OMAXDUR 1
  75. #define TS_FRQ 1
  76. #define TS_HALFRANGE 2
  77. #define TS_TMAXDUR 3
  78. /* ARRAYS */
  79. #define TS_DATA 0
  80. #define TS_HARMONICS 1
  81. #define TS_SINETAB 2
  82. /* CONSTANTS */
  83. #define TS_SINTABSIZE 4096
  84. #define TS_MAXLEVEL 0.9
  85. #define TS_MAXTSTRETCH 10000
  86. #define TS_MAXOCT 16
  87. #define TS_MAXRANGE 48 /* Max halfrange of pitch variation of time-series from mean freq: in semitones */
  88. #define TS_DFLTRANGE 12 /* Default halfrange of ditto */
  89. #define TS_MINFRQ 16.0
  90. #define SPEKSR 44100
  91. #define SPEKFADE 12 /* Number of windows over which spectrum fades in and out */
  92. /* INPUT FILE LOGIC */
  93. #define NUMLIST_ONLY (34)
  94. /* SPECIAL DATA */
  95. #define TS_HARM 94
  96. /* SPECANAL */
  97. #define PA_DEFAULT_PVOC_CHANS (1024)
  98. #define PA_VERY_BIG_INT (100000000)
  99. #define PA_MAX_PVOC_CHANS (32768) //RWD 2025 was 16380
  100. #define PA_PVOC_CONSTANT_A (8.0)
  101. #define FILTR_DUR (0)
  102. #define FILTR_CNT (1)
  103. #define FILTR_MMIN (2)
  104. #define FILTR_MMAX (3)
  105. #define FILTR_DIS (4)
  106. #define FILTR_RND (5)
  107. #define FILTR_AMIN (6)
  108. #define FILTR_ARND (7)
  109. #define FILTR_ADIS (8)
  110. #define FILTR_STEP (9)
  111. #define FILTR_SRND (10)
  112. #define FILTR_SEED (11)
  113. /* ITERFOF */
  114. #define ITF_DEL 0
  115. #define ITF_DUR 1
  116. #define ITF_PRND 2
  117. #define ITF_AMPC 3
  118. #define ITF_TRIM 4
  119. #define ITF_TRBY 5
  120. #define ITF_SLOP 6
  121. #define ITF_RAND 7
  122. #define ITF_VMIN 8
  123. #define ITF_VMAX 9
  124. #define ITF_DMIN 10
  125. #define ITF_DMAX 11
  126. #define ITF_SEED1 12
  127. #define ITF_GMIN 12
  128. #define ITF_GMAX 13
  129. #define ITF_UFAD 14
  130. #define ITF_FADE 15
  131. #define ITF_GAPP 16
  132. #define ITF_PORT 17
  133. #define ITF_PINT 18
  134. #define ITF_SEED2 19
  135. /* PULSER */
  136. #define PLS_DUR 0
  137. #define PLS_PITCH 1
  138. #define PLS_TRANSP 1
  139. #define PLS_MINRISE 2
  140. #define PLS_MAXRISE 3
  141. #define PLS_MINSUS 4
  142. #define PLS_MAXSUS 5
  143. #define PLS_MINDECAY 6
  144. #define PLS_MAXDECAY 7
  145. #define PLS_SPEED 8
  146. #define PLS_SCAT 9
  147. #define PLS_EXP 10
  148. #define PLS_EXP2 11
  149. #define PLS_PSCAT 12
  150. #define PLS_ASCAT 13
  151. #define PLS_OCT 14
  152. #define PLS_BEND 15
  153. #define PLS_SEED 16
  154. #define PLS_SRATE 17
  155. #define PLS_CNT 18
  156. #define PLS_WIDTH 17
  157. /* CHIRIKOV */
  158. #define CHIR_DUR 0
  159. #define CHIR_FRQ 1
  160. #define CHIR_DAMP 2
  161. #define CHIR_SRATE 3
  162. #define CHIR_SPLEN 4
  163. #define CHIR_PMIN 3
  164. #define CHIR_PMAX 4
  165. #define CHIR_STEP 5
  166. #define CHIR_RAND 6
  167. /* MULTIOSC */
  168. #define MOSC_DUR 0
  169. #define MOSC_FRQ1 1
  170. #define MOSC_FRQ2 2
  171. #define MOSC_AMP2 3
  172. #define MOSC_FRQ3 4
  173. #define MOSC_AMP3 5
  174. #define MOSC_FRQ4 6
  175. #define MOSC_AMP4 7
  176. #define MOSC_SRATE 8
  177. #define MOSC_SPLEN 9
  178. /* SYNFILT */
  179. #define SYNFLT_SRATE 0
  180. #define SYNFLT_CHANS 1
  181. #define SYNFLT_Q 2
  182. #define SYNFLT_HARMCNT 3
  183. #define SYNFLT_ROLLOFF 4
  184. #define SYNFLT_SEED 5
  185. /* STRANDS */
  186. #define STRAND_DUR 0 // OUTPUT DURATION
  187. #define STRAND_BANDS 1 // NUMBER OF BANDS
  188. #define STRAND_THRDS 2 // NUMBER OF THREADS PER BAND
  189. #define STRAND_TSTEP 3 // TIME-STEP BETWEEN OUTPUT DATA POINTS
  190. #define STRAND_BOT 4 // LOWEST PITCH OF ALL BANDS
  191. #define STRAND_TOP 5 // HIGHEST PITCH OF ALL BANDS
  192. #define STRAND_TWIST 6 // SPEED OF OSCILLATION OF THREAD-PITCHES
  193. #define STRAND_RAND 7 // RANDOMISATION SPEED BETWEEN BANDS
  194. #define STRAND_SCAT 8 // SCATTER OF SPEED AMONGST THREADS
  195. #define STRAND_VAMP 9 // WAVY VORTEX SIZE
  196. #define STRAND_VMIN 10 // WAVY VORTEX MINIMUM SPEED
  197. #define STRAND_VMAX 11 // WAVY VORTEX MAXIMUM SPEED
  198. #define STRAND_TURB 12 // TURBULENCE SETTING
  199. #define STRAND_SEED 13 // SEED FOR RANDOM PROCESSES
  200. #define STRAND_GAP 14 // MINIMUM PITCH INTERVAL BETWEEN BANDS
  201. #define STRAND_MINB 15 // MINIMUM PITCH-WIDTH OF BANDS
  202. #define STRAND_3D 16 // DEPTH-MOTION TYPE
  203. /* REFOCUS */
  204. #define REFOC_DUR 0
  205. #define REFOC_BANDS 1
  206. #define REFOC_RATIO 2
  207. #define REFOC_TSTEP 3
  208. #define REFOC_RAND 4
  209. #define REFOC_OFFSET 5
  210. #define REFOC_END 6
  211. #define REFOC_XCPT 7
  212. #define REFOC_SEED 8
  213. /* UNKNOT */
  214. #define KNOT_PATREP 0
  215. #define KNOT_COMBOREP 1
  216. #define KNOT_ALLREP 2
  217. #define KNOT_UNKNOTREP 3
  218. #define KNOT_GOALREP 4
  219. #define KNOT_SPACETYP 5
  220. #define KNOT_CHANA 6
  221. #define KNOT_CHANB 7
  222. #define KNOT_MIN 8
  223. #define KNOT_CLIP 9
  224. /* RHYMORPH : RHYMORPH2 */
  225. #define RHYM_PATREP 0
  226. #define RHYM_MORPHREP 1
  227. #define RHYM_GOALREP 2
  228. #define RHYM_STEPS 3
  229. #define RHYM_RESPACE 4
  230. /* ROTOR */
  231. #define ROT_CNT 0
  232. #define ROT_PMIN 1
  233. #define ROT_PMAX 2
  234. #define ROT_NSTEP 3
  235. #define ROT_PCYC 4
  236. #define ROT_TCYC 5
  237. #define ROT_PHAS 6
  238. #define ROT_DUR 7
  239. #define ROT_GSTEP 8
  240. #define ROT_DOVE 9
  241. /* BROWNIAN */
  242. #define BRCHANS 0
  243. #define BRDUR 1
  244. #define BRATT 2
  245. #define BRDEC 3
  246. #define BRPLO 4
  247. #define BRPHI 5
  248. #define BRPSTT 6
  249. #define BRSSTT 7
  250. #define BRPSTEP 8
  251. #define BRSSTEP 9
  252. #define BRTICK 10
  253. #define BRSEED 11
  254. #define BRASTEP 12
  255. #define BRAMIN 13
  256. #define BRASLP 14
  257. #define BRDSLP 15
  258. /* SPIN */
  259. #define SPNRATE 0
  260. #define SPNOCHNS 1
  261. #define SPNOCNTR 2
  262. #define SPNDOPL 3
  263. #define SPNXBUF 4
  264. #define SPNBOOST 5
  265. #define SPNATTEN 6
  266. #define SPNCMIN 7
  267. #define SPNCMAX 8
  268. /* CRUMBLE */
  269. #define CRSTART 0
  270. #define CRSTEP1 1
  271. #define CRSTEP2 2
  272. #define CRSTEP3 3
  273. #define CRORIENT 4
  274. #define CRSIZE 5
  275. #define CRRAND 6
  276. #define CRISCAT 7
  277. #define CROSCAT 8
  278. #define CROSTR 9
  279. #define CRPSCAT 10
  280. #define CRSEED 11
  281. #define CRSPLICE 12
  282. #define CRTAIL 13
  283. #define CRDUR 14
  284. /* tesselate */
  285. #define TESS_CHANS 0
  286. #define TESS_PHRAS 1
  287. #define TESS_DUR 2
  288. #define TESS_TYP 3
  289. #define TESS_FROM 4
  290. /* crystal */
  291. #define CRY_ROTA (0)
  292. #define CRY_ROTB (1)
  293. #define CRY_TWIDTH (2)
  294. #define CRY_TSTEP (3)
  295. #define CRY_DUR (4)
  296. #define CRY_PLO (5)
  297. #define CRY_PHI (6)
  298. #define CRY_FPASS (7)
  299. #define CRY_FSTOP (8)
  300. #define CRY_FATT (9)
  301. #define CRY_FPRESC (10)
  302. #define CRY_FSLOPE (11) // warps curve of mix-balance of normal & filtered version of sound (depth cue)
  303. #define CRY_SSLOPE (12) // warps curve of mix-balance of transposed & original version of sound (proximity cue)
  304. // internal
  305. #define CRY_CNT (13)
  306. #define CRY_MUL (14)
  307. //LIMIT OR DEFAULT VALS
  308. #define CRY_ROT_MIN (-10.0)
  309. #define CRY_ROT_MAX (10.0)
  310. #define CRY_TSTEP_MIN (0.01)
  311. #define CRY_TSTEP_MAX (3600)
  312. #define CRY_DUR_MAX (7200)
  313. #define CRY_LOP_MIN (0)
  314. #define CRY_LOP_MAX (127)
  315. #define CRY_TW_MIN (0.01)
  316. #define CRY_TW_MAX (3600)
  317. #define CRY_FATT_DFLT (-60)
  318. #define CRY_FPRESC_DFLT (0.9)
  319. #define CRY_PASSBAND (400)
  320. #define CRY_STOPBAND (800)
  321. #define MIN_FSLOPE (0.1)
  322. #define MAX_FSLOPE (10.0)
  323. #define MIN_SSLOPE (0.1)
  324. #define MAX_SSLOPE (10.0)
  325. #define CRYS_DEPTH_ATTEN (0.7) // Makes transit from normal to filtered follow convex arc (so filt increases quickly-slowly as depth increases)
  326. #define CRYS_PROX_ATTEN (0.7) // Makes transit from normal to stacked follow convex arc (stacking increases quickly-slowly as proximity increases)
  327. // WAVEFORM
  328. #define WF_TIME (0)
  329. #define WF_CNT (1)
  330. #define WF_DUR (1)
  331. #define WF_BAL (2)
  332. //CASCADE
  333. #define CAS_CLIP (0)
  334. #define CAS_ECHO (1)
  335. #define CAS_MAXCLIP (2)
  336. #define CAS_MAXECHO (3)
  337. #define CAS_RAND (4)
  338. #define CAS_SEED (5)
  339. #define CAS_SHREDNO (6)
  340. #define CAS_SHREDCNT (7)
  341. #define CAS_SHREDSRC (0)
  342. #define CAS_LINEAR (1)
  343. #define CAS_UPNORMAL (2)
  344. #define SPLIN_SRATE (0)
  345. #define SPLIN_DUR (1)
  346. #define SPLIN_FRQ (2)
  347. #define SPLIN_CNT (3)
  348. #define SPLIN_INTP (4)
  349. #define SPLIN_SEED (5)
  350. #define SPLIN_MCNT (6)
  351. #define SPLIN_MINTP (7)
  352. #define SPLIN_DRIFT (8)
  353. #define SPLIN_DRVEL (9)
  354. // FRACTAL
  355. #define FRAC_MAXDUR 7200.0 // secs = 2 hours
  356. #define FRAC_MAXFRACT 1000 // max possible fractalisation
  357. #define FRAC_MINTRNS -12.0 // semitones
  358. #define FRAC_MAXTRNS 12.0
  359. #define FRAC_MINMIDI 0.0 // MIDI pitch
  360. #define FRAC_MAXMIDI 127.0
  361. // SPLINTER
  362. #define SPL_TIME (0)
  363. #define SPL_WCNT (1)
  364. #define SPL_SHRCNT (2)
  365. #define SPL_OCNT (3)
  366. #define SPL_PULS1 (4)
  367. #define SPL_PULS2 (5)
  368. #define SPL_ECNT (6)
  369. #define SPL_SCURVE (7)
  370. #define SPL_PCURVE (8)
  371. #define SPL_FRQ (9)
  372. #define SPL_DUR (9)
  373. #define SPL_RND (10)
  374. #define SPL_SHRND (11)
  375. #define SHRCNT_DFLT 8 // Default count of selected-unit repeats over which shrinkage takes place
  376. #define OCNT_DFLT 8 // Default count of splinters (mode 1) prior to unshrinking/ (mode 2) post shrinking
  377. #define PULS_DFLT 10 // Default pulse speed of splinters
  378. #define FREQ_DFLT 6000.0 // Typical frq of splinters (really wavelen = srate/6000 = c.8 samples at 44100)
  379. // REPEATER
  380. #define REP_ACCEL 0
  381. #define REP_WARP 1
  382. #define REP_FADE 2
  383. #define REP_RAND 3
  384. #define REP_TRNSP 4
  385. #define REP_SEED 5
  386. #define REPSPLEN 5.0 // length of splices in mS
  387. // VERGES
  388. #define VRG_TRNSP 0
  389. #define VRG_CURVE 1
  390. #define VRG_DUR 2
  391. #define VRG_DFLT_DUR 100.0 // Millisecond duration of verges
  392. #define VRG_DFLT_CURVE 1.0 // Gliss curvature
  393. #define VRG_DFLT_TRNSP 5 // Default transposition
  394. // MOTOR
  395. #define MOT_DUR 0
  396. #define MOT_FRQ 1
  397. #define MOT_PULSE 2
  398. #define MOT_FRATIO 3
  399. #define MOT_PRATIO 4
  400. #define MOT_SYM 5
  401. #define MOT_FRND 6
  402. #define MOT_PRND 7
  403. #define MOT_JIT 8
  404. #define MOT_TREM 9
  405. #define MOT_SYMRND 10
  406. #define MOT_EDGE 11
  407. #define MOT_BITE 12
  408. #define MOT_VARY 13
  409. #define MOT_SEED 14
  410. #define MOT_FXDSTP 0
  411. #define MOT_CYCLIC 1
  412. #define MOT_FRQ_DFLT 20.0
  413. #define MOT_PULSE_DFLT 0.5
  414. #define MOT_SPLICE 3.0 // default mS splicelen for inner events
  415. #define MOT_EXPDECAY 4.0 // default exponential decay of sub-events with decay-tails
  416. #define MOT_DOVE 5.0 // mS dovetailing of separated syllabs
  417. // STUTTER
  418. #define STUT_DUR 0
  419. #define STUT_JOIN 1
  420. #define STUT_SIL 2
  421. #define STUT_SILMIN 3
  422. #define STUT_SILMAX 4
  423. #define STUT_SEED 5
  424. #define STUT_TRANS 6
  425. #define STUT_ATTEN 7
  426. #define STUT_BIAS 8
  427. #define STUT_MINDUR 9
  428. #define STUT_MIN 50.0 // Minimum size of any cut-element
  429. #define STUT_SPLICE 3.0 // default mS splicelen for segments
  430. #define STUT_DOVE 5.0 // mS dovetailing of separated segments
  431. #define STUT_SILDIV 20 // Accuracy of porportion of-silence
  432. // 20 means, accurate to 1 20th, so val in range 0 to 1 is approximated to nearest 20th
  433. // flags
  434. #define STUT_PERM 0
  435. #define STUT_MAX_JOIN 8
  436. // SCRAMBLE
  437. #define SCR_DUR 0
  438. #define SCR_SEED 1
  439. #define SCR_CNT 2
  440. #define SCR_TRNS 3
  441. #define SCR_ATTEN 4
  442. // IMPULSE
  443. #define IMP_DUR 0
  444. #define IMP_PICH 1
  445. #define IMP_CHIRP 2
  446. #define IMP_SLOPE 3
  447. #define IMP_CYCS 4
  448. #define IMP_LEV 5
  449. #define IMP_GAP 6
  450. #define IMP_SRATE 7
  451. #define IMP_CHANS 8
  452. // TWEET
  453. #define TWT_PDAT 0
  454. #define TWT_MIN 1
  455. #define TWT_PKCNT 2
  456. #define TWT_CHIRP 3
  457. // SPECFNU
  458. #define MIN_SYLLAB_DUR (0.08)
  459. #define MIN_PEAKTROF_GAP (0.08)
  460. #define SPEC_MIDIMIN (4) // c 10Hz, lower pitches difficult to repesent in spectrum
  461. #define RANDPITCHMAX (96) // Range of possible random variation of pitch (semitones)
  462. #ifndef MIDIMAX
  463. #define MIDIMAX (127)
  464. #endif
  465. #define MAXFILTVALS 12 // Max number of filter pitches output by F_MAKEFILT
  466. // Modes
  467. #define F_NARROW 0 // == user 1
  468. #define F_SQUEEZE 1 // == user 2
  469. #define F_INVERT 2 // == user 3
  470. #define F_ROTATE 3 // == user 4
  471. #define F_NEGATE 4 // == user 5
  472. #define F_SUPPRESS 5 // == user 6
  473. #define F_MAKEFILT 6 // == user 7
  474. #define F_MOVE 7 // == user 8
  475. #define F_MOVE2 8 // == user 9
  476. #define F_ARPEG 9 // == user 10
  477. #define F_OCTSHIFT 10 // == user 11 is_coloring
  478. #define F_TRANS 11 // == user 12 is_coloring
  479. #define F_FRQSHIFT 12 // == user 13 is_coloring
  480. #define F_RESPACE 13 // == user 14 is_coloring
  481. #define F_PINVERT 14 // == user 15 is_coloring
  482. #define F_PEXAGG 15 // == user 16 is_coloring
  483. #define F_PQUANT 16 // == user 17 is_coloring
  484. #define F_PCHRAND 17 // == user 18 is_coloring
  485. #define F_RAND 18 // == user 19 is_coloring
  486. #define F_SEE 19 // == user 20
  487. #define F_SEEPKS 20 // == user 21
  488. #define F_SYLABTROF 21 // == user 22
  489. #define F_SINUS 22 // == user 23
  490. // PARAM NAMES
  491. // param names NARROW, SQUEEZE, SUPPRESS, INVERT, ROTATE, NEGATE
  492. // param names RECOLOR = F_TRANS,F_FRQSHIFT,F_RESPACE,F_RAND
  493. #define FGAIN 2
  494. // param names F_NARROW
  495. #define NARROWING 0
  496. #define NARSUPRES 3
  497. // param names F_SQUEEZE
  498. #define SQZFACT 0
  499. #define SQZAT 1
  500. // param names F_INVERT
  501. #define FVIB 0
  502. // param names F_ROTATE
  503. #define RSPEED 0
  504. // param names F_SUPPRESS
  505. #define SUPRF 0
  506. // param names F_MAKEFILT
  507. #define FPKCNT 0
  508. #define FBELOW 2
  509. // param names F_MOVE & F_MOVE2
  510. #define FMOVE1 0
  511. #define FMOVE2 1
  512. #define FMOVE3 2
  513. #define FMOVE4 3
  514. #define FMVGAIN 4
  515. // param names F_SYLABTROF
  516. #define FMINSYL 0
  517. #define FMINPKG 1
  518. // param names F_ARPEG
  519. #define FARPRATE 0
  520. // param names RECOLOR = F_TRANS,F_FRQSHIFT,F_RESPACE,F_RAND
  521. #define COL_LO 3
  522. #define COL_HI 4
  523. #define COLRATE 5
  524. #define COLLOPCH 6
  525. #define COLHIPCH 7
  526. // param names RECOLOR = F_OCTSHIFT
  527. #define COLINT 0
  528. // param names RECOLOR = F_TRANS, F_FRQSHIFT, F_RESPACE, F_RAND, F_PSHIFT
  529. #define COLFLT 0
  530. // param names RECOLOR = F_PEXAGG
  531. #define EXAGRANG 1
  532. // param names RECOLOR = F_PCHRAND
  533. #define FPRMAXINT 0
  534. #define FSLEW 1
  535. // param names F_SINUS
  536. #define F_SINING 0
  537. #define F_AMP1 3
  538. #define F_AMP2 4
  539. #define F_AMP3 5
  540. #define F_AMP4 6
  541. #define F_QDEP1 7
  542. #define F_QDEP2 8
  543. #define F_QDEP3 9
  544. #define F_QDEP4 10
  545. // FLAGNAMES
  546. // flagnames NARROW
  547. #define ZEROTOP 0
  548. #define NRW_FUND 1
  549. #define NRW_SW 2
  550. #define NRW_XNH 3
  551. #define NRW_KHM 4
  552. #define NRW_EXI 5
  553. // flagnames SQUEEZE
  554. #define AT_TROFS 0
  555. #define SQZ_FUND 1
  556. #define SQZ_SW 2
  557. #define SQZ_XNH 3
  558. #define SQZ_KHM 4
  559. #define SQZ_EXI 5
  560. // flagnames NEGATE
  561. #define FLATT 0
  562. #define NEG_SW 1
  563. #define NEG_XNH 2
  564. #define NEG_KHM 3
  565. #define NEG_EXI 4
  566. // flagnames MAKEFILT
  567. #define KEEPAMP 0
  568. #define KEEPINV 1
  569. #define FLT_FUND 2
  570. #define FLT_SW 3
  571. // flagnames MOVE
  572. #define MOV_ZEROTOP 0
  573. #define MOV_SW 1
  574. #define MOV_XNH 2
  575. #define MOV_KHM 3
  576. #define MOV_EXI 4
  577. /// flagnames MOVE2
  578. #define MOV_ZEROTOP 0
  579. #define MOV_SW 1
  580. #define MOV2_NRW 2
  581. #define MOV2_XNH 3
  582. #define MOV2_KHM 4
  583. #define MOV2_EXI 5
  584. // flagnames INVERT
  585. #define INVERT_SW 0
  586. #define INVERT_XNH 1 // Exclude non harmonics
  587. #define INVERT_KHM 2 // Suppress all harmonics
  588. #define INVERT_EXI 3 // Smooth_away unpitched-data
  589. // flagnames ROTATE
  590. #define ROTATE_SW 0
  591. #define ROTATE_XNH 1
  592. #define ROTATE_KHM 2
  593. #define ROTATE_EXI 3
  594. // flagnames SUPPRESS
  595. #define SUPPRESS_SW 0
  596. #define SUPPRESS_XNH 1
  597. // flagnames SEE
  598. #define SEE_SW 0
  599. // flagnames SEEPKS
  600. #define SEEPKS_SW 0
  601. // flagnames RECOLOR
  602. #define RECOLOR_SW 0
  603. #define RECOLOR_XNH 1
  604. #define RECOLOR_EXI 2
  605. #define RECOLOR_DWN 3
  606. #define RECOLOR_CYC 4
  607. #define RECOLOR_FIL 5
  608. // F_PQUANTISE + F_PCHRAND
  609. #define Q_ORNAMENTS 5
  610. #define Q_NOSMOOTH 6
  611. // F_PCHRAND
  612. #define NO_RESHAPE 7
  613. // F_PEXAGG
  614. #define EXAG_HITIE 5
  615. #define EXAG_LOTIE 6
  616. #define EXAG_MIDTIE 7
  617. #define ONLY_ABOVE 8
  618. #define ONLY_BELOW 9
  619. // F_SYLABTROF
  620. #define PKS_ONLY 0
  621. #define PKS_TROFS 1
  622. // F_SINUS
  623. #define FSIN_SW 0
  624. #define FSIN_FUND 1
  625. #define FSIN_EXI 2
  626. #define F_SMOOTH 3
  627. // BOUNCE
  628. #define BNC_NUMBER 0
  629. #define BNC_STTSTEP 1
  630. #define BNC_SHORTEN 2
  631. #define BNC_ENDLEV 3
  632. #define BNC_LEVWRP 4
  633. #define BNC_MINDUR 5