special.h 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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. /******************* SPECIAL DATA TYPES : GROUCHO ***************************************/
  22. /* DISTORT */
  23. #define NO_SPECIAL_TYPE (0)
  24. #define DISTORT_ENVELOPE (1) /* FILE */
  25. #define HARMONIC_DISTORT (2) /* FILE */
  26. #define SHUFFLE_DATA (3) /* STRING */
  27. /* EXTEND */
  28. #define ZIGDATA (4) /* FILE */
  29. /* TEXTURE */
  30. #define TEX_NOTEDATA (6) /* FILE */
  31. /* GRAIN */
  32. #define GRAIN_REORDER_STRING (7) /* STRING */
  33. #define GRAIN_PITCH_RATIOS (8) /* FILE */
  34. #define GRAIN_TIME_RATIOS (9) /* FILE */
  35. #define GRAIN_TWO_RATIOS (10) /* FILE */
  36. #define GRAIN_TIMINGS (11) /* FILE */
  37. /* ENVEL */
  38. #define ENV_CREATEFILE (12) /* FILE */
  39. #define ENV_TRIGGER_RAMP (13) /* FILE */
  40. /* MIX */
  41. #define SNDFILENAME (14) /* STRING */
  42. /* FILTERS */
  43. #define FILTERBANK (15) /* FILE */
  44. #define TIMEVARYING_FILTERBANK (16) /* FILE */
  45. /* EXTEND */
  46. #define ATTACK_STREAM (41) /* FILE */
  47. /* HOUSEKEEP */
  48. #define BY_HAND (42) /* FILE */
  49. /* HF_PERM */
  50. #define DELPERM (43) /* FILE */
  51. #define DELPERM2 (44) /* FILE */
  52. /* SFEDIT */
  53. #define SWITCH_TIMES (45) /* FILE */
  54. #define MANY_SWITCH_TIMES (46) /* FILE */
  55. /* REPITCH */
  56. #define PITCH_SPECTRUM (47) /* FILE */
  57. #define ZERO_INSERTTIMES (48) /* FILE */
  58. #define PITCH_VOWELS (49) /* FILE or STRING */
  59. /* SUBMIX */
  60. #define GRIDDED_MIX (50) /* FILE */
  61. /* REPITCH */
  62. #define PITCH_CREATE (51) /* FILE */
  63. /* SUBMIX */
  64. #define AUTO_MIX (52) /* FILE */
  65. /* SFEDTSUBMIX */
  66. #define MANYCUTS (53) /* FILE */
  67. /* STACK */
  68. #define STACKDATA (54) /* FILE or VAL */
  69. /* DISTORT PULSE */
  70. #define PULSE_ENVELOPE (55) /* FILE */
  71. /* SEQUENCER */
  72. #define SEQUENCER_VALUES (56) /* FILE */
  73. /* CLICK */
  74. #define CLICKTRACK (57) /* FILE */
  75. /* SYLLABS */
  76. #define SYLLTIMES (58) /* FILE */
  77. /* JOIN_SEQ */
  78. #define JOINSEQ (59) /* FILE */
  79. /* BATCH_EXPAND */
  80. #define BATCH (60) /* FILE */
  81. /* BATCH_EXPAND */
  82. #define INBTWN_RATIOS (61) /* FILE */
  83. /* PROPORTIONAL LOUDNESS */
  84. #define LOUDNESS (62) /* FILE */
  85. /* JOIN_SEQDYN */
  86. #define JOINSEQDYN (63) /* FILE */
  87. /* ENVSYN */
  88. #define ENVSYN_ENVELOPE (64) /* FILE */
  89. /* SEQUENCER2 */
  90. #define SEQUENCER2_VALUES (65) /* FILE */
  91. /* MULTI_SYN */
  92. #define CHORD_SYN (66) /* FILE */
  93. /* FLTBANKV2 */
  94. #define TIMEVARY2_FILTERBANK (67) /* FILE */
  95. /******************* SPECIAL DATA TYPES : SPEC ***************************************/
  96. #define TRANSPOS_RATIO_OR_CONSTANT (17) /* FILE OR VAL */
  97. #define TRANSPOS_OCTAVE_OR_CONSTANT (18) /* FILE OR VAL */
  98. #define TRANSPOS_SEMIT_OR_CONSTANT (19) /* FILE OR VAL */
  99. #define SPECSPLI_DATA (20) /* FILE */
  100. /* Data for the spec split prog specifying filter
  101. bands and what happens to them
  102. Original data format crazy, better as grafix-in */
  103. #define FRQ_OR_FRQSET (21) /* FILE OR VAL */
  104. /* frqs for Spec tune in mode that takes frq data */
  105. #define PITCH_OR_PITCHSET (22) /* FILE OR VAL */ /* midipitches for Spec tune in mode that takes midi */
  106. #define FILTER_FRQS (23) /* FILE */ /* Filter frqs for spec greq in single bandwidth mode */
  107. #define FILTER_BWS_AND_FRQS (24) /* FILE */ /* Filter frqs and bws for spec greq in variable bwidth mode */
  108. #define SEMIT_TRANSPOS_SET (25) /* FILE */ /* semitone transposition vals for spec chord */
  109. #define FREEZE_DATA (26) /* FILE */ /* Freeze points (with flags) for spec freeze - better grafik */
  110. #define SPEC_SHUFFLE_DATA (27) /* STRING */ /* Strings demo-ing shuffling for spec shuffle */
  111. #define WEAVE_DATA (28) /* FILE */ /* Number seq defining weave for spec weave - better grafix */
  112. #define INTERVAL_MAPPING (29) /* FILE OR VAL */ /* Map interval-->interval for spec pinvert */
  113. #define PITCHQUANTISE_SET (30) /* FILE */ /* Midi pitchvals for quantising pitch on, for spec pquantise */
  114. #define OUT_PFILE (31) /* STRING */ /* Causes process to OPEN 2nd outfile - pitchdata file */
  115. #define OUT_PBRKFILE (32) /* STRING */ /* Causes process to OPEN 2nd outfile - pitch brkpnt(text)file */
  116. /* especially for handling infile in SPEC REPITCH */
  117. #define PITCH_BINARY_OR_BRKPNT1 (33)
  118. #define PITCH_BINARY_OR_BRKPNT2 (34)
  119. #define TRANSPOS_BINARY_OR_BRKPNT1 (35)
  120. #define TRANSPOS_BINARY_OR_BRKPNT2 (36)
  121. /* EDIT */
  122. #define EXCISE_TIMES (37) /* FILE */
  123. /* INFO */
  124. #define NOTE_REPRESENTATION (38) /* STRING */
  125. #define INTERVAL_REPRESENTATION (39) /* STRING */
  126. #define FREEZE2_DATA (40) /* FILE */ /* Hold points & durs for spec freeze2 */
  127. /********** SPECIAL DATA VALS ************/
  128. #define MIN_HARMONIC (2.0)
  129. #define MAX_HARMONIC (1024.0)
  130. #define MIN_HARM_AMP (1.0/(double)MAXSHORT)
  131. #define MAX_HARM_AMP (32.0)
  132. /*RWD 6:2001 purged decls of local statics */
  133. int read_shuffle_data(int dmnparam,int imgparam,int mapparam,char *str,dataptr dz);
  134. int read_new_filename(char *str,dataptr dz);
  135. int read_env_ramp_brk(char *str,dataptr dz);