science.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  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. /* 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 PARTITION
  49. #else
  50. #define MAX_PROCESS_NO PARTITION
  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 (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. /* CHIRIKOV */
  157. #define CHIR_DUR 0
  158. #define CHIR_FRQ 1
  159. #define CHIR_DAMP 2
  160. #define CHIR_SRATE 3
  161. #define CHIR_SPLEN 4
  162. #define CHIR_PMIN 3
  163. #define CHIR_PMAX 4
  164. #define CHIR_STEP 5
  165. #define CHIR_RAND 6
  166. /* MULTIOSC */
  167. #define MOSC_DUR 0
  168. #define MOSC_FRQ1 1
  169. #define MOSC_FRQ2 2
  170. #define MOSC_AMP2 3
  171. #define MOSC_FRQ3 4
  172. #define MOSC_AMP3 5
  173. #define MOSC_FRQ4 6
  174. #define MOSC_AMP4 7
  175. #define MOSC_SRATE 8
  176. #define MOSC_SPLEN 9
  177. /* SYNFILT */
  178. #define SYNFLT_SRATE 0
  179. #define SYNFLT_CHANS 1
  180. #define SYNFLT_Q 2
  181. #define SYNFLT_HARMCNT 3
  182. #define SYNFLT_ROLLOFF 4
  183. #define SYNFLT_SEED 5
  184. /* STRANDS */
  185. #define STRAND_DUR 0 // OUTPUT DURATION
  186. #define STRAND_BANDS 1 // NUMBER OF BANDS
  187. #define STRAND_THRDS 2 // NUMBER OF THREADS PER BAND
  188. #define STRAND_TSTEP 3 // TIME-STEP BETWEEN OUTPUT DATA POINTS
  189. #define STRAND_BOT 4 // LOWEST PITCH OF ALL BANDS
  190. #define STRAND_TOP 5 // HIGHEST PITCH OF ALL BANDS
  191. #define STRAND_TWIST 6 // SPEED OF OSCILLATION OF THREAD-PITCHES
  192. #define STRAND_RAND 7 // RANDOMISATION SPEED BETWEEN BANDS
  193. #define STRAND_SCAT 8 // SCATTER OF SPEED AMONGST THREADS
  194. #define STRAND_VAMP 9 // WAVY VORTEX SIZE
  195. #define STRAND_VMIN 10 // WAVY VORTEX MINIMUM SPEED
  196. #define STRAND_VMAX 11 // WAVY VORTEX MAXIMUM SPEED
  197. #define STRAND_TURB 12 // TURBULENCE SETTING
  198. #define STRAND_SEED 13 // SEED FOR RANDOM PROCESSES
  199. #define STRAND_GAP 14 // MINIMUM PITCH INTERVAL BETWEEN BANDS
  200. #define STRAND_MINB 15 // MINIMUM PITCH-WIDTH OF BANDS
  201. #define STRAND_3D 16 // DEPTH-MOTION TYPE
  202. /* REFOCUS */
  203. #define REFOC_DUR 0
  204. #define REFOC_BANDS 1
  205. #define REFOC_RATIO 2
  206. #define REFOC_TSTEP 3
  207. #define REFOC_RAND 4
  208. #define REFOC_OFFSET 5
  209. #define REFOC_END 6
  210. #define REFOC_XCPT 7
  211. #define REFOC_SEED 8
  212. /* UNKNOT */
  213. #define KNOT_PATREP 0
  214. #define KNOT_COMBOREP 1
  215. #define KNOT_ALLREP 2
  216. #define KNOT_UNKNOTREP 3
  217. #define KNOT_GOALREP 4
  218. #define KNOT_SPACETYP 5
  219. #define KNOT_CHANA 6
  220. #define KNOT_CHANB 7
  221. #define KNOT_MIN 8
  222. #define KNOT_CLIP 9
  223. /* RHYMORPH : RHYMORPH2 */
  224. #define RHYM_PATREP 0
  225. #define RHYM_MORPHREP 1
  226. #define RHYM_GOALREP 2
  227. #define RHYM_STEPS 3
  228. #define RHYM_RESPACE 4