histconv.c 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401
  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. #include <stdio.h>
  22. #include <stdlib.h>
  23. #include <string.h>
  24. #include <ctype.h>
  25. #define CDP_PROPS_CNT (34)
  26. #define CDP_PROGRAM_DIR ("cdprog")
  27. #define ENDOFSTR ('\0')
  28. #define NUMERICVAL_MARKER ('@')
  29. void get_progname(int progno,char *p);
  30. int skipwordandspace(char **q);
  31. int getvalandskipspace(char **q,int *ival);
  32. int getwordandskipspace(char **q,char *j);
  33. void get_modename(int progno,int modeno,char *p);
  34. void to_ucase(char *str);
  35. const char* cdp_version = "7.1.0";
  36. int main(int argc,char *argv[])
  37. {
  38. char temp[1000], temp2[1000], temp3[32], c, *p, *q, *r;
  39. FILE *fpo, *fpi;
  40. int OK, i, isprog = 1, linecnt = 1, filecnt, progno, modeno;
  41. if(argc==2 && (strcmp(argv[1],"--version") == 0)) {
  42. fprintf(stdout,"%s\n",cdp_version);
  43. fflush(stdout);
  44. return 0;
  45. }
  46. if(argc != 3) {
  47. fprintf(stderr,"USAGE: histconv infile outfile\n");
  48. return 1;
  49. }
  50. if((fpi = fopen(argv[1],"r"))==NULL) {
  51. fprintf(stderr,"Cannot open file %s\n",argv[1]);
  52. return 1;
  53. }
  54. if((fpi = fopen(argv[1],"r"))==NULL) {
  55. fprintf(stderr,"Cannot open file %s to read\n",argv[1]);
  56. return 1;
  57. }
  58. if((fpo = fopen(argv[2],"w"))==NULL) {
  59. fprintf(stderr,"Cannot open file %s to write\n",argv[2]);
  60. return 1;
  61. }
  62. while(fgets(temp,1000,fpi)!=NULL) {
  63. if(strlen(temp) <= 0) {
  64. fprintf(fpo,"Insufficient information on line %d\n",linecnt);
  65. isprog = !isprog;
  66. linecnt++;
  67. continue;
  68. }
  69. if(isprog) {
  70. p = temp;
  71. if(*p == '#') {
  72. p++;
  73. p += strlen(CDP_PROGRAM_DIR);
  74. p++;
  75. if(!isprint(*p)) {
  76. fprintf(fpo,"Invalid program name on line %d\n",linecnt);
  77. isprog = !isprog;
  78. linecnt++;
  79. continue;
  80. }
  81. q = temp;
  82. while(*p != ENDOFSTR) { /* Get rid of directory name */
  83. *q = *p;
  84. q++;
  85. p++;
  86. }
  87. *q = ENDOFSTR;
  88. p = temp;
  89. if(!skipwordandspace(&p)) {
  90. fprintf(fpo,"Not enough words on line %d\n",linecnt);
  91. isprog = !isprog;
  92. linecnt++;
  93. continue;
  94. }
  95. c = *p;
  96. *p = ENDOFSTR;
  97. strcpy(temp2,temp);
  98. q = temp2;
  99. to_ucase(temp2);
  100. *p = c;
  101. if(!getvalandskipspace(&p,&progno)) {
  102. fprintf(fpo,"Failed to get program number on line %d\n",linecnt);
  103. isprog = !isprog;
  104. linecnt++;
  105. continue;
  106. }
  107. r = temp3;
  108. get_progname(progno,r);
  109. to_ucase(temp3);
  110. strcat(temp2,temp3);
  111. strcat(temp2," ");
  112. if(!getvalandskipspace(&p,&modeno)) {
  113. fprintf(fpo,"Failed to get mode number on line %d\n",linecnt);
  114. isprog = !isprog;
  115. linecnt++;
  116. continue;
  117. }
  118. get_modename(progno,modeno,r);
  119. to_ucase(temp3);
  120. strcat(temp2,temp3);
  121. strcat(temp2," ");
  122. if(!getvalandskipspace(&p,&filecnt)) {
  123. fprintf(fpo,"Failed to get filecnt on line %d\n",linecnt);
  124. isprog = !isprog;
  125. linecnt++;
  126. continue;
  127. }
  128. if(*p == ENDOFSTR) {
  129. fprintf(fpo,"Insufficient information on line %d\n",linecnt);
  130. isprog = !isprog;
  131. linecnt++;
  132. continue;
  133. }
  134. if(filecnt > 0) {
  135. OK = 1;
  136. for(i=0;i<CDP_PROPS_CNT;i++) {
  137. if(!skipwordandspace(&p)) {
  138. OK = 0;
  139. break;
  140. }
  141. }
  142. if(!OK) {
  143. fprintf(fpo,"Not enough words on line %d\n",linecnt);
  144. isprog = !isprog;
  145. linecnt++;
  146. continue;
  147. }
  148. r = temp3;
  149. for(i=0;i<filecnt;i++) {
  150. if(!getwordandskipspace(&p,r)) {
  151. fprintf(fpo,"Failed to get sufficient infile names on line %d\n",linecnt);
  152. isprog = !isprog;
  153. linecnt++;
  154. continue;
  155. }
  156. strcat(temp2,r);
  157. strcat(temp2," ");
  158. }
  159. }
  160. skipwordandspace(&p); /* skip outfilename */
  161. r = temp3; /* remove numericval markers */
  162. while(*p != ENDOFSTR) {
  163. getwordandskipspace(&p,r);
  164. if(*r == NUMERICVAL_MARKER) {
  165. r++;
  166. strcat(temp2,r);
  167. strcat(temp2," ");
  168. r--;
  169. } else {
  170. strcat(temp2,r);
  171. strcat(temp2," ");
  172. }
  173. }
  174. *r++ = '\n';
  175. *r = ENDOFSTR;
  176. fprintf(fpo,"%s",temp2);
  177. } else {
  178. p = temp;
  179. r = temp3; /* remove numericval markers */
  180. q = temp2;
  181. *q = ENDOFSTR;
  182. while(*p != ENDOFSTR) {
  183. getwordandskipspace(&p,r);
  184. if(*r == NUMERICVAL_MARKER) {
  185. r++;
  186. strcat(temp2,r);
  187. strcat(temp2," ");
  188. r--;
  189. } else {
  190. strcat(temp2,r);
  191. strcat(temp2," ");
  192. }
  193. }
  194. *r++ = '\n';
  195. *r = ENDOFSTR;
  196. fprintf(fpo,"%s",temp2);
  197. }
  198. } else {
  199. fprintf(fpo,"%s",temp);
  200. }
  201. isprog = !isprog;
  202. linecnt++;
  203. }
  204. return 0;
  205. }
  206. int skipwordandspace(char **q)
  207. {
  208. char *p;
  209. p = *q;
  210. while(!isspace(*p) && *p != ENDOFSTR)
  211. p++;
  212. if(*p==ENDOFSTR)
  213. return 0;
  214. while(isspace(*p) && *p != ENDOFSTR)
  215. p++;
  216. *q = p;
  217. if(*p==ENDOFSTR)
  218. return 0;
  219. return 1;
  220. }
  221. int getvalandskipspace(char **q,int *ival)
  222. {
  223. char *p, *r, c;
  224. p = *q;
  225. r = p;
  226. while(!isspace(*p))
  227. p++;
  228. c = *p;
  229. *p = ENDOFSTR;
  230. if(sscanf(r,"%d",ival)<1) {
  231. return 0;
  232. }
  233. *p = c;
  234. while(isspace(*p))
  235. p++;
  236. *q = p;
  237. return 1;
  238. }
  239. int getwordandskipspace(char **q,char *j)
  240. {
  241. char *p, *r, c;
  242. p = *q;
  243. r = p;
  244. while(!isspace(*p))
  245. p++;
  246. c = *p;
  247. *p = ENDOFSTR;
  248. strcpy(j,r);
  249. *p = c;
  250. while(isspace(*p))
  251. p++;
  252. *q = p;
  253. return 1;
  254. }
  255. void get_progname(int progno,char *p)
  256. {
  257. switch(progno){
  258. case(1): strcpy(p,"gain"); break;
  259. case(2): strcpy(p,"gate"); break;
  260. case(3): strcpy(p,"bare_partials"); break;
  261. case(4): strcpy(p,"clean"); break;
  262. case(5): strcpy(p,"cut"); break;
  263. case(6): strcpy(p,"grab_window"); break;
  264. case(7): strcpy(p,"magnify_window"); break;
  265. case(8): strcpy(p,"spectrum"); break;
  266. case(9): strcpy(p,"time"); break;
  267. case(10): strcpy(p,"alternate_harmonics"); break;
  268. case(11): strcpy(p,"octave_shift"); break;
  269. case(12): strcpy(p,"pitch_shift"); break;
  270. case(13): strcpy(p,"tune_spectrum"); break;
  271. case(14): strcpy(p,"choose_partials"); break;
  272. case(15): strcpy(p,"chord"); break;
  273. case(16): strcpy(p,"chord_(keep_fmnts)"); break;
  274. case(17): strcpy(p,"filter"); break;
  275. case(18): strcpy(p,"graphic_eq"); break;
  276. case(19): strcpy(p,"bands"); break;
  277. case(20): strcpy(p,"arpeggiate"); break;
  278. case(21): strcpy(p,"pluck"); break;
  279. case(22): strcpy(p,"tracery"); break;
  280. case(23): strcpy(p,"blur_&_trace"); break;
  281. case(24): strcpy(p,"accumulate"); break;
  282. case(25): strcpy(p,"exaggerate"); break;
  283. case(26): strcpy(p,"focus"); break;
  284. case(27): strcpy(p,"fold_in"); break;
  285. case(28): strcpy(p,"freeze"); break;
  286. case(29): strcpy(p,"step_through"); break;
  287. case(30): strcpy(p,"average"); break;
  288. case(31): strcpy(p,"blur"); break;
  289. case(32): strcpy(p,"supress"); break;
  290. case(33): strcpy(p,"chorus"); break;
  291. case(34): strcpy(p,"drunkwalk"); break;
  292. case(35): strcpy(p,"shuffle"); break;
  293. case(36): strcpy(p,"weave"); break;
  294. case(37): strcpy(p,"noise"); break;
  295. case(38): strcpy(p,"scatter"); break;
  296. case(39): strcpy(p,"spread"); break;
  297. case(40): strcpy(p,"linear_shift"); break;
  298. case(41): strcpy(p,"inner_glissando"); break;
  299. case(42): strcpy(p,"waver"); break;
  300. case(43): strcpy(p,"warp"); break;
  301. case(44): strcpy(p,"invert"); break;
  302. case(45): strcpy(p,"glide"); break;
  303. case(46): strcpy(p,"bridge"); break;
  304. case(47): strcpy(p,"morph"); break;
  305. case(48): strcpy(p,"extract_pitch"); break;
  306. case(49): strcpy(p,"track_pitch"); break;
  307. case(50): strcpy(p,"approximate_pitch"); break;
  308. case(51): strcpy(p,"exaggerate_contour"); break;
  309. case(52): strcpy(p,"invert_pitch_contour"); break;
  310. case(53): strcpy(p,"quantise_pitch"); break;
  311. case(54): strcpy(p,"randomise_pitch"); break;
  312. case(55): strcpy(p,"smooth_pitch_contour"); break;
  313. case(56): strcpy(p,"shift_pitch"); break;
  314. case(57): strcpy(p,"vibrato_pitch_data"); break;
  315. case(58): strcpy(p,"cut_pitchfile"); break;
  316. case(59): strcpy(p,"mend_pitchfile"); break;
  317. case(60): strcpy(p,"repitch_pitchdata"); break;
  318. case(61): strcpy(p,"repitch_(to_textfile)"); break;
  319. case(62): strcpy(p,"transpose"); break;
  320. case(63): strcpy(p,"transpose(keep_fmnts)"); break;
  321. case(64): strcpy(p,"extract"); break;
  322. case(65): strcpy(p,"impose"); break;
  323. case(66): strcpy(p,"vocode"); break;
  324. case(67): strcpy(p,"view"); break;
  325. case(68): strcpy(p,"get_&_view"); break;
  326. case(69): strcpy(p,"add_formants_to_pitch"); break;
  327. case(70): strcpy(p,"sum"); break;
  328. case(71): strcpy(p,"difference"); break;
  329. case(72): strcpy(p,"interleave"); break;
  330. case(73): strcpy(p,"windowwise_max"); break;
  331. case(74): strcpy(p,"mean"); break;
  332. case(75): strcpy(p,"cross_channels"); break;
  333. case(76): strcpy(p,"window_count"); break;
  334. case(77): strcpy(p,"channel"); break;
  335. case(78): strcpy(p,"get_frequency"); break;
  336. case(79): strcpy(p,"view_level_as_pseudo-sndfile"); break;
  337. case(80): strcpy(p,"print_octbands_to_file"); break;
  338. case(81): strcpy(p,"print_energy_centres_to_file"); break;
  339. case(82): strcpy(p,"print_freq_peaks_to_file"); break;
  340. case(83): strcpy(p,"print_analysis_data_to_file_only"); break;
  341. case(84): strcpy(p,"display_info_on_pitchfile"); break;
  342. case(85): strcpy(p,"check_for_pitch_zeros"); break;
  343. case(86): strcpy(p,"pitch_view_as_psuedo-sndfile"); break;
  344. case(87): strcpy(p,"pitch_to_testtone_spectrum"); break;
  345. case(88): strcpy(p,"print_pitch_data_to_file_only"); break;
  346. case(100): strcpy(p,"cyclecnt"); break;
  347. case(101): strcpy(p,"reshape"); break;
  348. case(102): strcpy(p,"envelope"); break;
  349. case(103): strcpy(p,"average"); break;
  350. case(104): strcpy(p,"omit"); break;
  351. case(105): strcpy(p,"multiply"); break;
  352. case(106): strcpy(p,"divide"); break;
  353. case(107): strcpy(p,"harmonic"); break;
  354. case(108): strcpy(p,"fractal"); break;
  355. case(109): strcpy(p,"reverse"); break;
  356. case(110): strcpy(p,"shuffle"); break;
  357. case(111): strcpy(p,"repeat"); break;
  358. case(112): strcpy(p,"interpolate"); break;
  359. case(113): strcpy(p,"delete"); break;
  360. case(114): strcpy(p,"replace"); break;
  361. case(115): strcpy(p,"telescope"); break;
  362. case(116): strcpy(p,"filter"); break;
  363. case(117): strcpy(p,"interact"); break;
  364. case(118): strcpy(p,"pitch"); break;
  365. case(119): strcpy(p,"zigzag"); break;
  366. case(120): strcpy(p,"loop"); break;
  367. case(121): strcpy(p,"scramble"); break;
  368. case(122): strcpy(p,"iterate"); break;
  369. case(123): strcpy(p,"drunkwalk"); break;
  370. case(124): strcpy(p,"simple"); break;
  371. case(125): strcpy(p,"of groups"); break;
  372. case(126): strcpy(p,"decorated"); break;
  373. case(127): strcpy(p,"pre-decorations"); break;
  374. case(128): strcpy(p,"post-decorations"); break;
  375. case(129): strcpy(p,"ornamented"); break;
  376. case(130): strcpy(p,"pre-ornate"); break;
  377. case(131): strcpy(p,"post-ornate"); break;
  378. case(132): strcpy(p,"of_motifs"); break;
  379. case(133): strcpy(p,"motifs_in_hf"); break;
  380. case(134): strcpy(p,"timed"); break;
  381. case(135): strcpy(p,"timed_groups"); break;
  382. case(136): strcpy(p,"timed_motifs"); break;
  383. case(137): strcpy(p,"timed_mtfs_in_hf"); break;
  384. case(138): strcpy(p,"count"); break;
  385. case(139): strcpy(p,"omit"); break;
  386. case(140): strcpy(p,"duplicate"); break;
  387. case(141): strcpy(p,"reorder"); break;
  388. case(142): strcpy(p,"repitch"); break;
  389. case(143): strcpy(p,"rerhythm"); break;
  390. case(144): strcpy(p,"remotif"); break;
  391. case(145): strcpy(p,"timewarp"); break;
  392. case(146): strcpy(p,"get"); break;
  393. case(147): strcpy(p,"position"); break;
  394. case(148): strcpy(p,"align"); break;
  395. case(149): strcpy(p,"reverse"); break;
  396. case(150): strcpy(p,"create"); break;
  397. case(151): strcpy(p,"extract"); break;
  398. case(152): strcpy(p,"impose"); break;
  399. case(153): strcpy(p,"replace"); break;
  400. case(154): strcpy(p,"warping"); break;
  401. case(155): strcpy(p,"reshaping"); break;
  402. case(156): strcpy(p,"replotting"); break;
  403. case(157): strcpy(p,"dovetailing"); break;
  404. case(158): strcpy(p,"curtailing"); break;
  405. case(159): strcpy(p,"swell"); break;
  406. case(160): strcpy(p,"attack"); break;
  407. case(161): strcpy(p,"pluck"); break;
  408. case(162): strcpy(p,"tremolo"); break;
  409. case(163): strcpy(p,"bin_to_brk"); break;
  410. case(164): strcpy(p,"bin_to_db-brk"); break;
  411. case(165): strcpy(p,"brk_to_bin"); break;
  412. case(166): strcpy(p,"db-brk_to_bin"); break;
  413. case(167): strcpy(p,"db-brk_to_brk"); break;
  414. case(168): strcpy(p,"brk_to_db-brk"); break;
  415. case(169): strcpy(p,"merge_two_sounds"); break;
  416. case(170): strcpy(p,"crossfade"); break;
  417. case(171): strcpy(p,"merge_channels"); break;
  418. case(172): strcpy(p,"inbetweening"); break;
  419. case(173): strcpy(p,"mix"); break;
  420. case(174): strcpy(p,"get_level"); break;
  421. case(175): strcpy(p,"attenuate"); break;
  422. case(176): strcpy(p,"shuffle"); break;
  423. case(177): strcpy(p,"timewarp"); break;
  424. case(178): strcpy(p,"spacewarp"); break;
  425. case(179): strcpy(p,"sync"); break;
  426. case(180): strcpy(p,"sync_attack"); break;
  427. case(181): strcpy(p,"test"); break;
  428. case(182): strcpy(p,"format"); break;
  429. case(183): strcpy(p,"dummy"); break;
  430. case(184): strcpy(p,"variable"); break;
  431. case(185): strcpy(p,"fixed"); break;
  432. case(186): strcpy(p,"lopass/hipass"); break;
  433. case(187): strcpy(p,"variable"); break;
  434. case(188): strcpy(p,"bank"); break;
  435. case(189): strcpy(p,"bank_frqs"); break;
  436. case(190): strcpy(p,"userbank"); break;
  437. case(191): strcpy(p,"varibank"); break;
  438. case(192): strcpy(p,"sweeping"); break;
  439. case(193): strcpy(p,"iterated"); break;
  440. case(194): strcpy(p,"phasing"); break;
  441. case(195): strcpy(p,"loudness"); break;
  442. case(196): strcpy(p,"spatialisation"); break;
  443. case(197): strcpy(p,"pitch"); break;
  444. case(198): strcpy(p,"rev/echo"); break;
  445. case(199): strcpy(p,"brassage"); break;
  446. case(200): strcpy(p,"sausage"); break;
  447. case(201): strcpy(p,"radical"); break;
  448. case(202): strcpy(p,"analysis"); break;
  449. case(203): strcpy(p,"synthesis"); break;
  450. case(204): strcpy(p,"extract"); break;
  451. case(206): strcpy(p,"cutout_&_keep"); break;
  452. case(207): strcpy(p,"cutend_&_keep"); break;
  453. case(208): strcpy(p,"cutout_at_zero-crossings"); break;
  454. case(209): strcpy(p,"remove_segment"); break;
  455. case(210): strcpy(p,"remove_many_segments"); break;
  456. case(211): strcpy(p,"insert_sound"); break;
  457. case(212): strcpy(p,"insert_silence"); break;
  458. case(213): strcpy(p,"join"); break;
  459. case(214): strcpy(p,"multiples"); break;
  460. case(215): strcpy(p,"extract/convert_channels"); break;
  461. case(216): strcpy(p,"&_clean"); break;
  462. case(217): strcpy(p,"change_specification"); break;
  463. case(218): strcpy(p,"bundle"); break;
  464. case(219): strcpy(p,"sort_files"); break;
  465. case(220): strcpy(p,"backup"); break;
  466. case(221): strcpy(p,"recover_from_dump"); break;
  467. case(222): strcpy(p,"diskspace"); break;
  468. case(223): strcpy(p,"properties"); break;
  469. case(224): strcpy(p,"duration"); break;
  470. case(225): strcpy(p,"list_sound_durations"); break;
  471. case(226): strcpy(p,"sum_durations"); break;
  472. case(227): strcpy(p,"subtract_durations"); break;
  473. case(228): strcpy(p,"sample_count_as_time"); break;
  474. case(229): strcpy(p,"time_as_sample_count"); break;
  475. case(230): strcpy(p,"maximum_sample"); break;
  476. case(231): strcpy(p,"loudest_channel"); break;
  477. case(232): strcpy(p,"largest_hole"); break;
  478. case(233): strcpy(p,"compare_files"); break;
  479. case(234): strcpy(p,"compare_channels"); break;
  480. case(235): strcpy(p,"print_sound_data"); break;
  481. case(236): strcpy(p,"convert_units"); break;
  482. case(237): strcpy(p,"waveform"); break;
  483. case(238): strcpy(p,"noise"); break;
  484. case(239): strcpy(p,"silent_file"); break;
  485. case(240): strcpy(p,"extract_column"); break;
  486. case(241): strcpy(p,"insert_column"); break;
  487. case(242): strcpy(p,"join_columns"); break;
  488. case(243): strcpy(p,"column_maths"); break;
  489. case(244): strcpy(p,"column_music"); break;
  490. case(245): strcpy(p,"column_rand"); break;
  491. case(246): strcpy(p,"column_sort"); break;
  492. case(247): strcpy(p,"column_create"); break;
  493. case(248): strcpy(p,"hold"); break;
  494. case(249): strcpy(p,"remove_copies"); break;
  495. case(250): strcpy(p,"vectors"); break;
  496. case(251): strcpy(p,"silence_masks"); break;
  497. default: strcpy(p,"UNKNOWN_PROGRAM"); break;
  498. }
  499. }
  500. void get_modename(int progno,int modeno,char *p)
  501. {
  502. switch(progno) {
  503. case(4):
  504. switch(modeno) {
  505. case(1): strcpy(p,"from_specified_time"); break;
  506. case(2): strcpy(p,"anywhere"); break;
  507. case(3): strcpy(p,"above_specified_frq"); break;
  508. case(4): strcpy(p,"by_comparison_method"); break;
  509. default: strcpy(p,"UNKNOWN-MODE"); break;
  510. }
  511. break;
  512. case(8):
  513. switch(modeno) {
  514. case(1): strcpy(p,"above_given_frq"); break;
  515. case(2): strcpy(p,"below_given_frq"); break;
  516. default: strcpy(p,"UNKNOWN-MODE"); break;
  517. }
  518. break;
  519. case(9):
  520. switch(modeno) {
  521. case(1): strcpy(p,"do_time_stretc_"); break;
  522. case(2): strcpy(p,"get_output_length"); break;
  523. default: strcpy(p,"UNKNOWN-MODE"); break;
  524. }
  525. break;
  526. case(10):
  527. switch(modeno) {
  528. case(1): strcpy(p,"delete_odd_harmonics"); break;
  529. case(2): strcpy(p,"delete_even_harmonics"); break;
  530. default: strcpy(p,"UNKNOWN-MODE"); break;
  531. }
  532. break;
  533. case(11):
  534. switch(modeno) {
  535. case(1): strcpy(p,"up"); break;
  536. case(2): strcpy(p,"down"); break;
  537. case(3): strcpy(p,"down_with_bass_boost"); break;
  538. default: strcpy(p,"UNKNOWN-MODE"); break;
  539. }
  540. break;
  541. case(12):
  542. switch(modeno) {
  543. case(1): strcpy(p,"8va_shift_up"); break;
  544. case(2): strcpy(p,"8va_shift_down"); break;
  545. case(3): strcpy(p,"8va_shift_up_and_down"); break;
  546. case(4): strcpy(p,"shift_up"); break;
  547. case(5): strcpy(p,"shift_down"); break;
  548. case(6): strcpy(p,"shift_up_and_down"); break;
  549. default: strcpy(p,"UNKNOWN-MODE"); break;
  550. }
  551. break;
  552. case(13):
  553. switch(modeno) {
  554. case(1): strcpy(p,"tunings_as_frqs"); break;
  555. case(2): strcpy(p,"tunings_as_midi"); break;
  556. default: strcpy(p,"UNKNOWN-MODE"); break;
  557. }
  558. break;
  559. case(14):
  560. switch(modeno) {
  561. case(1): strcpy(p,"harmonic_series"); break;
  562. case(2): strcpy(p,"octaves"); break;
  563. case(3): strcpy(p,"odd_harmonics_only"); break;
  564. case(4): strcpy(p,"linear_frq_steps"); break;
  565. case(5): strcpy(p,"displaced_harmonics"); break;
  566. default: strcpy(p,"UNKNOWN-MODE"); break;
  567. }
  568. break;
  569. case(17):
  570. switch(modeno) {
  571. case(1): strcpy(p,"high_pass"); break;
  572. case(2): strcpy(p,"high_pass_normalised"); break;
  573. case(3): strcpy(p,"low_pass"); break;
  574. case(4): strcpy(p,"low_pass_normalised"); break;
  575. case(5): strcpy(p,"high_pass_with_gain"); break;
  576. case(6): strcpy(p,"low_pass_with_gain"); break;
  577. case(7): strcpy(p,"bandpass"); break;
  578. case(8): strcpy(p,"bandpass_normalised"); break;
  579. case(9): strcpy(p,"notch"); break;
  580. case(10): strcpy(p,"notch_normalised"); break;
  581. case(11): strcpy(p,"bandpass_with_gain"); break;
  582. case(12): strcpy(p,"notch_with_gain"); break;
  583. default: strcpy(p,"UNKNOWN-MODE"); break;
  584. }
  585. break;
  586. case(18):
  587. switch(modeno) {
  588. case(1): strcpy(p,"standard_bandwidth"); break;
  589. case(2): strcpy(p,"various_bandwidths"); break;
  590. default: strcpy(p,"UNKNOWN-MODE"); break;
  591. }
  592. break;
  593. case(20):
  594. switch(modeno) {
  595. case(1): strcpy(p,"on"); break;
  596. case(2): strcpy(p,"boost"); break;
  597. case(3): strcpy(p,"boost_below"); break;
  598. case(4): strcpy(p,"boost_above"); break;
  599. case(5): strcpy(p,"on_below"); break;
  600. case(6): strcpy(p,"on_above"); break;
  601. case(7): strcpy(p,"once_below"); break;
  602. case(8): strcpy(p,"once_above"); break;
  603. default: strcpy(p,"UNKNOWN-MODE"); break;
  604. }
  605. break;
  606. case(22):
  607. switch(modeno) {
  608. case(1): strcpy(p,"trace_all"); break;
  609. case(2): strcpy(p,"trace_above_frq"); break;
  610. case(3): strcpy(p,"trace_below_frq"); break;
  611. case(4): strcpy(p,"trace_between_frqs"); break;
  612. default: strcpy(p,"UNKNOWN-MODE"); break;
  613. }
  614. break;
  615. case(28):
  616. switch(modeno) {
  617. case(1): strcpy(p,"amplitudes"); break;
  618. case(2): strcpy(p,"frequencies"); break;
  619. case(3): strcpy(p,"amps_&_frqs"); break;
  620. default: strcpy(p,"UNKNOWN-MODE"); break;
  621. }
  622. break;
  623. case(33):
  624. switch(modeno) {
  625. case(1): strcpy(p,"scatter_amps"); break;
  626. case(2): strcpy(p,"scatter_frqs"); break;
  627. case(3): strcpy(p,"scatter_frqs_up"); break;
  628. case(4): strcpy(p,"scatter_frqs_down"); break;
  629. case(5): strcpy(p,"scatter_amps_&_frqs"); break;
  630. case(6): strcpy(p,"scatter_amp_&_frqs_up"); break;
  631. case(7): strcpy(p,"scatter_amp_&_frqs_down"); break;
  632. default: strcpy(p,"UNKNOWN-MODE"); break;
  633. }
  634. break;
  635. case(40):
  636. switch(modeno) {
  637. case(1): strcpy(p,"shift_all"); break;
  638. case(2): strcpy(p,"shift_above_frq"); break;
  639. case(3): strcpy(p,"shift_below_frq"); break;
  640. case(4): strcpy(p,"shift_between_frqs"); break;
  641. case(5): strcpy(p,"shift_outside_frqs"); break;
  642. default: strcpy(p,"UNKNOWN-MODE"); break;
  643. }
  644. break;
  645. case(41):
  646. switch(modeno) {
  647. case(1): strcpy(p,"shepard_tone_glis"); break;
  648. case(2): strcpy(p,"inharmonic_glis"); break;
  649. case(3): strcpy(p,"self_glis"); break;
  650. default: strcpy(p,"UNKNOWN-MODE"); break;
  651. }
  652. break;
  653. case(42):
  654. switch(modeno) {
  655. case(1): strcpy(p,"standard"); break;
  656. case(2): strcpy(p,"user_specified"); break;
  657. default: strcpy(p,"UNKNOWN-MODE"); break;
  658. }
  659. break;
  660. case(44):
  661. switch(modeno) {
  662. case(1): strcpy(p,"standard"); break;
  663. case(2): strcpy(p,"retain_src_envelope"); break;
  664. default: strcpy(p,"UNKNOWN-MODE"); break;
  665. }
  666. break;
  667. case(46):
  668. switch(modeno) {
  669. case(1): strcpy(p,"standard"); break;
  670. case(2): strcpy(p,"outlevel_follows_minimum"); break;
  671. case(3): strcpy(p,"outlevel_follows_file1"); break;
  672. case(4): strcpy(p,"outlevel_follows_file2"); break;
  673. case(5): strcpy(p,"outlevel_moves_from_1_to_2"); break;
  674. case(6): strcpy(p,"outlevel_moves_from_2_to_1"); break;
  675. default: strcpy(p,"UNKNOWN-MODE"); break;
  676. }
  677. break;
  678. case(47):
  679. switch(modeno) {
  680. case(1): strcpy(p,"linear_or_curved"); break;
  681. case(2): strcpy(p,"cosinusoidal"); break;
  682. default: strcpy(p,"UNKNOWN-MODE"); break;
  683. }
  684. break;
  685. case(48):
  686. switch(modeno) {
  687. case(1): strcpy(p,"to_binary_file"); break;
  688. case(2): strcpy(p,"to_textfile"); break;
  689. default: strcpy(p,"UNKNOWN-MODE"); break;
  690. }
  691. break;
  692. case(49):
  693. switch(modeno) {
  694. case(1): strcpy(p,"to_binary_file"); break;
  695. case(2): strcpy(p,"to_textfile"); break;
  696. default: strcpy(p,"UNKNOWN-MODE"); break;
  697. }
  698. break;
  699. case(50):
  700. switch(modeno) {
  701. case(1): strcpy(p,"pitch_data_out"); break;
  702. case(2): strcpy(p,"transposition_data_out"); break;
  703. default: strcpy(p,"UNKNOWN-MODE"); break;
  704. }
  705. break;
  706. case(51):
  707. switch(modeno) {
  708. case(1): strcpy(p,"range:_pitch_out"); break;
  709. case(2): strcpy(p,"range:_transposition_out"); break;
  710. case(3): strcpy(p,"contour:_pitch_out"); break;
  711. case(4): strcpy(p,"contour:_transpos_out"); break;
  712. case(5): strcpy(p,"range_&_contour:_pitch_out"); break;
  713. case(6): strcpy(p,"range_&_contour:_transpos_out"); break;
  714. default: strcpy(p,"UNKNOWN-MODE"); break;
  715. }
  716. break;
  717. case(52):
  718. switch(modeno) {
  719. case(1): strcpy(p,"pitch_data_out"); break;
  720. case(2): strcpy(p,"transposition_data_out"); break;
  721. default: strcpy(p,"UNKNOWN-MODE"); break;
  722. }
  723. break;
  724. case(53):
  725. switch(modeno) {
  726. case(1): strcpy(p,"pitch_data_out"); break;
  727. case(2): strcpy(p,"transposition_data_out"); break;
  728. default: strcpy(p,"UNKNOWN-MODE"); break;
  729. }
  730. break;
  731. case(54):
  732. switch(modeno) {
  733. case(1): strcpy(p,"pitch_data_out"); break;
  734. case(2): strcpy(p,"transposition_data_out"); break;
  735. default: strcpy(p,"UNKNOWN-MODE"); break;
  736. }
  737. break;
  738. case(55):
  739. switch(modeno) {
  740. case(1): strcpy(p,"pitch_data_out"); break;
  741. case(2): strcpy(p,"transposition_data_out"); break;
  742. default: strcpy(p,"UNKNOWN-MODE"); break;
  743. }
  744. break;
  745. case(56):
  746. switch(modeno) {
  747. case(1): strcpy(p,"shift_by_ratio"); break;
  748. case(2): strcpy(p,"shift_by_semitones"); break;
  749. default: strcpy(p,"UNKNOWN-MODE"); break;
  750. }
  751. break;
  752. case(57):
  753. switch(modeno) {
  754. case(1): strcpy(p,"pitch_data_out"); break;
  755. case(2): strcpy(p,"transposition_data_out"); break;
  756. default: strcpy(p,"UNKNOWN-MODE"); break;
  757. }
  758. break;
  759. case(58):
  760. switch(modeno) {
  761. case(1): strcpy(p,"from_starttime"); break;
  762. case(2): strcpy(p,"to_endtime"); break;
  763. case(3): strcpy(p,"between_times"); break;
  764. default: strcpy(p,"UNKNOWN-MODE"); break;
  765. }
  766. break;
  767. case(60):
  768. switch(modeno) {
  769. case(1): strcpy(p,"pitch+pitch_to_transpos"); break;
  770. case(2): strcpy(p,"pitch+transpos_to_pitch"); break;
  771. case(3): strcpy(p,"transpos+transpos_to_transpos"); break;
  772. default: strcpy(p,"UNKNOWN-MODE"); break;
  773. }
  774. break;
  775. case(61):
  776. switch(modeno) {
  777. case(1): strcpy(p,"pitch+pitch_to_transpos"); break;
  778. case(2): strcpy(p,"pitch+transpos_to_pitch"); break;
  779. case(3): strcpy(p,"transpos+transpos_to_transpos"); break;
  780. default: strcpy(p,"UNKNOWN-MODE"); break;
  781. }
  782. break;
  783. case(62):
  784. switch(modeno) {
  785. case(1): strcpy(p,"transpos_as_ratio"); break;
  786. case(2): strcpy(p,"transpos_in_octaves"); break;
  787. case(3): strcpy(p,"transpos_in_semitones"); break;
  788. case(4): strcpy(p,"transpos_as_binary_data"); break;
  789. default: strcpy(p,"UNKNOWN-MODE"); break;
  790. }
  791. break;
  792. case(63):
  793. switch(modeno) {
  794. case(1): strcpy(p,"transpos_as_ratio"); break;
  795. case(2): strcpy(p,"transpos_in_octaves"); break;
  796. case(3): strcpy(p,"transpos_in_semitones"); break;
  797. case(4): strcpy(p,"transpos_as_binary_data"); break;
  798. default: strcpy(p,"UNKNOWN-MODE"); break;
  799. }
  800. break;
  801. case(65):
  802. switch(modeno) {
  803. case(1): strcpy(p,"replace_formants"); break;
  804. case(2): strcpy(p,"superimpose_formants"); break;
  805. default: strcpy(p,"UNKNOWN-MODE"); break;
  806. }
  807. break;
  808. case(74):
  809. switch(modeno) {
  810. case(1): strcpy(p,"mean_amp_&_pitch"); break;
  811. case(2): strcpy(p,"mean_amp_&_frq"); break;
  812. case(3): strcpy(p,"amp_file1:_mean_pich"); break;
  813. case(4): strcpy(p,"amp_file1:_mean_frq"); break;
  814. case(5): strcpy(p,"amp_file2:_mean_pich"); break;
  815. case(6): strcpy(p,"amp_file2:_mean_frq"); break;
  816. case(7): strcpy(p,"max_amp:_mean_pitch"); break;
  817. case(8): strcpy(p,"max_amp:_mean_frq"); break;
  818. default: strcpy(p,"UNKNOWN-MODE"); break;
  819. }
  820. break;
  821. case(82):
  822. switch(modeno) {
  823. case(1): strcpy(p,"order_by_frq_&_time"); break;
  824. case(2): strcpy(p,"order_by_loudness_&_time"); break;
  825. case(3): strcpy(p,"order_by_frq_(untimed)"); break;
  826. case(4): strcpy(p,"order_by_loudness_(untimed)"); break;
  827. default: strcpy(p,"UNKNOWN-MODE"); break;
  828. }
  829. break;
  830. case(86):
  831. switch(modeno) {
  832. case(1): strcpy(p,"see_pitch"); break;
  833. case(2): strcpy(p,"see_transposition"); break;
  834. default: strcpy(p,"UNKNOWN-MODE"); break;
  835. }
  836. break;
  837. case(101):
  838. switch(modeno) {
  839. case(1): strcpy(p,"fixed_level_square"); break;
  840. case(2): strcpy(p,"square"); break;
  841. case(3): strcpy(p,"fixed_level_triangle"); break;
  842. case(4): strcpy(p,"triangle"); break;
  843. case(5): strcpy(p,"invert_halfcycles"); break;
  844. case(6): strcpy(p,"click"); break;
  845. case(7): strcpy(p,"sine"); break;
  846. case(8): strcpy(p,"exaggerate_contour"); break;
  847. default: strcpy(p,"UNKNOWN-MODE"); break;
  848. }
  849. break;
  850. case(102):
  851. switch(modeno) {
  852. case(1): strcpy(p,"rising"); break;
  853. case(2): strcpy(p,"falling"); break;
  854. case(3): strcpy(p,"troughed"); break;
  855. case(4): strcpy(p,"user_defined"); break;
  856. default: strcpy(p,"UNKNOWN-MODE"); break;
  857. }
  858. break;
  859. case(113):
  860. switch(modeno) {
  861. case(1): strcpy(p,"in_given_order"); break;
  862. case(2): strcpy(p,"retain_loudest"); break;
  863. case(3): strcpy(p,"delete_weakest"); break;
  864. default: strcpy(p,"UNKNOWN-MODE"); break;
  865. }
  866. break;
  867. case(116):
  868. switch(modeno) {
  869. case(1): strcpy(p,"high_pass"); break;
  870. case(2): strcpy(p,"low_pass"); break;
  871. case(3): strcpy(p,"band_pass"); break;
  872. default: strcpy(p,"UNKNOWN-MODE"); break;
  873. }
  874. break;
  875. case(117):
  876. switch(modeno) {
  877. case(1): strcpy(p,"interleave"); break;
  878. case(2): strcpy(p,"resize"); break;
  879. default: strcpy(p,"UNKNOWN-MODE"); break;
  880. }
  881. break;
  882. case(119):
  883. switch(modeno) {
  884. case(1): strcpy(p,"random"); break;
  885. case(2): strcpy(p,"user_specified"); break;
  886. default: strcpy(p,"UNKNOWN-MODE"); break;
  887. }
  888. break;
  889. case(120):
  890. switch(modeno) {
  891. case(1): strcpy(p,"loop_advances_to_end"); break;
  892. case(2): strcpy(p,"give_output_duration"); break;
  893. case(3): strcpy(p,"give_loop_repetitions"); break;
  894. default: strcpy(p,"UNKNOWN-MODE"); break;
  895. }
  896. break;
  897. case(121):
  898. switch(modeno) {
  899. case(1): strcpy(p,"completely_random"); break;
  900. case(2): strcpy(p,"scramble_src:_then_again.."); break;
  901. default: strcpy(p,"UNKNOWN-MODE"); break;
  902. }
  903. break;
  904. case(122):
  905. switch(modeno) {
  906. case(1): strcpy(p,"give_duration"); break;
  907. case(2): strcpy(p,"give_count"); break;
  908. default: strcpy(p,"UNKNOWN-MODE"); break;
  909. }
  910. break;
  911. case(123):
  912. switch(modeno) {
  913. case(1): strcpy(p,"completely_drunk"); break;
  914. case(2): strcpy(p,"sober_moments"); break;
  915. default: strcpy(p,"UNKNOWN-MODE"); break;
  916. }
  917. break;
  918. case(124):
  919. case(125):
  920. case(126):
  921. case(127):
  922. case(128):
  923. case(129):
  924. case(130):
  925. case(131):
  926. case(132):
  927. case(134):
  928. case(135):
  929. case(136):
  930. switch(modeno) {
  931. case(1): strcpy(p,"over_harmonic_field"); break;
  932. case(2): strcpy(p,"over_harmonic_fields"); break;
  933. case(3): strcpy(p,"over_harmonic_set"); break;
  934. case(4): strcpy(p,"over_harmonic_sets"); break;
  935. case(5): strcpy(p,"neutral"); break;
  936. default: strcpy(p,"UNKNOWN-MODE"); break;
  937. }
  938. break;
  939. case(133):
  940. case(137):
  941. switch(modeno) {
  942. case(1): strcpy(p,"over_harmonic_field"); break;
  943. case(2): strcpy(p,"over_harmonic_fields"); break;
  944. case(3): strcpy(p,"over_harmonic_set"); break;
  945. case(4): strcpy(p,"over_harmonic_sets"); break;
  946. default: strcpy(p,"UNKNOWN-MODE"); break;
  947. }
  948. break;
  949. case(142):
  950. case(143):
  951. case(144):
  952. switch(modeno) {
  953. case(1): strcpy(p,"no_grain_repeats"); break;
  954. case(2): strcpy(p,"repeat_each_grain"); break;
  955. default: strcpy(p,"UNKNOWN-MODE"); break;
  956. }
  957. break;
  958. case(150):
  959. case(151):
  960. switch(modeno) {
  961. case(1): strcpy(p,"binary_output"); break;
  962. case(2): strcpy(p,"textfile_output"); break;
  963. default: strcpy(p,"UNKNOWN-MODE"); break;
  964. }
  965. break;
  966. case(152):
  967. case(153):
  968. switch(modeno) {
  969. case(1): strcpy(p,"env_from_other_sndfile"); break;
  970. case(2): strcpy(p,"env_in_binary_file"); break;
  971. case(3): strcpy(p,"env_in_textfile"); break;
  972. case(4): strcpy(p,"env_in_db_textfile"); break;
  973. default: strcpy(p,"UNKNOWN-MODE"); break;
  974. }
  975. break;
  976. case(154):
  977. case(155):
  978. case(156):
  979. switch(modeno) {
  980. case(1): strcpy(p,"normalise"); break;
  981. case(2): strcpy(p,"time_reverse"); break;
  982. case(3): strcpy(p,"exaggerate"); break;
  983. case(4): strcpy(p,"attenuate"); break;
  984. case(5): strcpy(p,"lift_all"); break;
  985. case(6): strcpy(p,"time-stretch"); break;
  986. case(7): strcpy(p,"flatten"); break;
  987. case(8): strcpy(p,"gate"); break;
  988. case(9): strcpy(p,"invert"); break;
  989. case(10): strcpy(p,"limit"); break;
  990. case(11): strcpy(p,"corrugate"); break;
  991. case(12): strcpy(p,"expand"); break;
  992. case(13): strcpy(p,"trigger_bursts"); break;
  993. case(14): strcpy(p,"to_ceiling"); break;
  994. case(15): strcpy(p,"ducked"); break;
  995. default: strcpy(p,"UNKNOWN-MODE"); break;
  996. }
  997. break;
  998. case(158):
  999. switch(modeno) {
  1000. case(1): strcpy(p,"give_start_&_end_of_fade"); break;
  1001. case(2): strcpy(p,"give_start_&_dur_of_fade"); break;
  1002. case(3): strcpy(p,"give_start_of_fade-to-end"); break;
  1003. default: strcpy(p,"UNKNOWN-MODE"); break;
  1004. }
  1005. break;
  1006. case(160):
  1007. switch(modeno) {
  1008. case(1): strcpy(p,"where_gate_exceeded"); break;
  1009. case(2): strcpy(p,"near_time_given"); break;
  1010. case(3): strcpy(p,"at_exact_time_given"); break;
  1011. case(4): strcpy(p,"at_max_level_in_file"); break;
  1012. default: strcpy(p,"UNKNOWN-MODE"); break;
  1013. }
  1014. break;
  1015. case(162):
  1016. switch(modeno) {
  1017. case(1): strcpy(p,"frqwise"); break;
  1018. case(2): strcpy(p,"pitchwise"); break;
  1019. default: strcpy(p,"UNKNOWN-MODE"); break;
  1020. }
  1021. break;
  1022. case(170):
  1023. switch(modeno) {
  1024. case(1): strcpy(p,"linear"); break;
  1025. case(2): strcpy(p,"cosinusoidal"); break;
  1026. default: strcpy(p,"UNKNOWN-MODE"); break;
  1027. }
  1028. break;
  1029. case(172):
  1030. switch(modeno) {
  1031. case(1): strcpy(p,"automatic"); break;
  1032. case(2): strcpy(p,"give_mix_ratios"); break;
  1033. default: strcpy(p,"UNKNOWN-MODE"); break;
  1034. }
  1035. break;
  1036. case(174):
  1037. switch(modeno) {
  1038. case(1): strcpy(p,"maximum_level"); break;
  1039. case(2): strcpy(p,"clipping_times"); break;
  1040. case(3): strcpy(p,"maxlevel_&_cliptimes"); break;
  1041. default: strcpy(p,"UNKNOWN-MODE"); break;
  1042. }
  1043. break;
  1044. case(176):
  1045. switch(modeno) {
  1046. case(1): strcpy(p,"duplicate_lines"); break;
  1047. case(2): strcpy(p,"reverse_order_filenames"); break;
  1048. case(3): strcpy(p,"scatter_order_filenames"); break;
  1049. case(4): strcpy(p,"first_filename_to_all"); break;
  1050. case(5): strcpy(p,"omit_lines"); break;
  1051. case(6): strcpy(p,"omit_alternate_lines"); break;
  1052. case(7): strcpy(p,"dupl_lines,_new_filename"); break;
  1053. default: strcpy(p,"UNKNOWN-MODE"); break;
  1054. }
  1055. break;
  1056. case(177):
  1057. switch(modeno) {
  1058. case(1): strcpy(p,"sort_entry_times"); break;
  1059. case(2): strcpy(p,"reverse_timing_pattern"); break;
  1060. case(3): strcpy(p,"reverse_timing_&_names"); break;
  1061. case(4): strcpy(p,"freeze_timegaps"); break;
  1062. case(5): strcpy(p,"freeze_timegaps_&_names"); break;
  1063. case(6): strcpy(p,"scatter_entry_times"); break;
  1064. case(7): strcpy(p,"shuffle_up_entry_times"); break;
  1065. case(8): strcpy(p,"add_to_timegaps"); break;
  1066. case(9): strcpy(p,"create_timegap_1"); break;
  1067. case(10): strcpy(p,"create_timegap_2"); break;
  1068. case(11): strcpy(p,"create_timegap_3"); break;
  1069. case(12): strcpy(p,"create_timegap_4"); break;
  1070. case(13): strcpy(p,"enlarge_timegap_1"); break;
  1071. case(14): strcpy(p,"enlarge_timegap_2"); break;
  1072. case(15): strcpy(p,"enlarge_timegap_3"); break;
  1073. case(16): strcpy(p,"enlarge_timegap_4"); break;
  1074. default: strcpy(p,"UNKNOWN-MODE"); break;
  1075. }
  1076. break;
  1077. case(178):
  1078. switch(modeno) {
  1079. case(1): strcpy(p,"fix_position"); break;
  1080. case(2): strcpy(p,"narrow"); break;
  1081. case(3): strcpy(p,"sequence_leftwards"); break;
  1082. case(4): strcpy(p,"sequence_rightwards"); break;
  1083. case(5): strcpy(p,"scatter"); break;
  1084. case(6): strcpy(p,"scatter_alternating"); break;
  1085. case(7): strcpy(p,"twist_whole_mix"); break;
  1086. case(8): strcpy(p,"twist_a_line"); break;
  1087. default: strcpy(p,"UNKNOWN-MODE"); break;
  1088. }
  1089. break;
  1090. case(179):
  1091. switch(modeno) {
  1092. case(1): strcpy(p,"at_midtimes"); break;
  1093. case(2): strcpy(p,"at_endtimes"); break;
  1094. default: strcpy(p,"UNKNOWN-MODE"); break;
  1095. }
  1096. break;
  1097. case(185):
  1098. switch(modeno) {
  1099. case(1): strcpy(p,"boost-or-cut_below_frq"); break;
  1100. case(2): strcpy(p,"boost-or-cut_above_frq"); break;
  1101. case(3): strcpy(p,"boost-or-cut_around_frq"); break;
  1102. default: strcpy(p,"UNKNOWN-MODE"); break;
  1103. }
  1104. break;
  1105. case(186):
  1106. switch(modeno) {
  1107. case(1): strcpy(p,"bands_as_frq_(hz)"); break;
  1108. case(2): strcpy(p,"bands_as_midi"); break;
  1109. default: strcpy(p,"UNKNOWN-MODE"); break;
  1110. }
  1111. break;
  1112. case(187):
  1113. switch(modeno) {
  1114. case(1): strcpy(p,"high_pass"); break;
  1115. case(2): strcpy(p,"low_pass"); break;
  1116. case(3): strcpy(p,"band_pass"); break;
  1117. case(4): strcpy(p,"notch"); break;
  1118. default: strcpy(p,"UNKNOWN-MODE"); break;
  1119. }
  1120. break;
  1121. case(188):
  1122. case(189):
  1123. switch(modeno) {
  1124. case(1): strcpy(p,"harmonics"); break;
  1125. case(2): strcpy(p,"alternate_harmonics"); break;
  1126. case(3): strcpy(p,"subharmonics"); break;
  1127. case(4): strcpy(p,"harmonics_with_offset"); break;
  1128. case(5): strcpy(p,"fixed_number_of_bands"); break;
  1129. case(6): strcpy(p,"fixed_interval_between"); break;
  1130. default: strcpy(p,"UNKNOWN-MODE"); break;
  1131. }
  1132. break;
  1133. case(190):
  1134. switch(modeno) {
  1135. case(1): strcpy(p,"bands_as_frq_(hz)"); break;
  1136. case(2): strcpy(p,"bands_as_midi"); break;
  1137. default: strcpy(p,"UNKNOWN-MODE"); break;
  1138. }
  1139. break;
  1140. case(191):
  1141. switch(modeno) {
  1142. case(1): strcpy(p,"bands_as_frq_(hz)"); break;
  1143. case(2): strcpy(p,"bands_as_midi"); break;
  1144. default: strcpy(p,"UNKNOWN-MODE"); break;
  1145. }
  1146. break;
  1147. case(192):
  1148. switch(modeno) {
  1149. case(1): strcpy(p,"high_pass"); break;
  1150. case(2): strcpy(p,"low_pass"); break;
  1151. case(3): strcpy(p,"band_pass"); break;
  1152. case(4): strcpy(p,"notch"); break;
  1153. default: strcpy(p,"UNKNOWN-MODE"); break;
  1154. }
  1155. break;
  1156. case(193):
  1157. switch(modeno) {
  1158. case(1): strcpy(p,"bands_as_frq_(hz)"); break;
  1159. case(2): strcpy(p,"bands_as_midi"); break;
  1160. default: strcpy(p,"UNKNOWN-MODE"); break;
  1161. }
  1162. break;
  1163. case(194):
  1164. switch(modeno) {
  1165. case(1): strcpy(p,"phase_shift_filter"); break;
  1166. case(2): strcpy(p,"phasing_effect"); break;
  1167. default: strcpy(p,"UNKNOWN-MODE"); break;
  1168. }
  1169. break;
  1170. case(195):
  1171. switch(modeno) {
  1172. case(1): strcpy(p,"gain"); break;
  1173. case(2): strcpy(p,"dBgain"); break;
  1174. case(3): strcpy(p,"normalise"); break;
  1175. case(4): strcpy(p,"force_level"); break;
  1176. case(5): strcpy(p,"balance_srcs"); break;
  1177. default: strcpy(p,"UNKNOWN-MODE"); break;
  1178. }
  1179. break;
  1180. case(196):
  1181. switch(modeno) {
  1182. case(1): strcpy(p,"pan"); break;
  1183. case(2): strcpy(p,"mirror"); break;
  1184. case(3): strcpy(p,"mirror_panning_file"); break;
  1185. case(4): strcpy(p,"narrow"); break;
  1186. default: strcpy(p,"UNKNOWN-MODE"); break;
  1187. }
  1188. break;
  1189. case(197):
  1190. switch(modeno) {
  1191. case(1): strcpy(p,"tape_transpose_by_time-ratio"); break;
  1192. case(2): strcpy(p,"tape_transpose_by_semitones"); break;
  1193. case(3): strcpy(p,"see_transposition_by_time-ratio"); break;
  1194. case(4): strcpy(p,"see_transposition_by_semitones"); break;
  1195. case(5): strcpy(p,"tape_accelerate"); break;
  1196. case(6): strcpy(p,"tape_vibrato"); break;
  1197. default: strcpy(p,"UNKNOWN-MODE"); break;
  1198. }
  1199. break;
  1200. case(198):
  1201. switch(modeno) {
  1202. case(1): strcpy(p,"delay"); break;
  1203. case(2): strcpy(p,"varying_delay"); break;
  1204. case(3): strcpy(p,"stadium"); break;
  1205. default: strcpy(p,"UNKNOWN-MODE"); break;
  1206. }
  1207. break;
  1208. case(199):
  1209. switch(modeno) {
  1210. case(1): strcpy(p,"pitchshift"); break;
  1211. case(2): strcpy(p,"timesqueeze"); break;
  1212. case(3): strcpy(p,"reverb"); break;
  1213. case(4): strcpy(p,"scramble"); break;
  1214. case(5): strcpy(p,"granulate"); break;
  1215. case(6): strcpy(p,"brassage"); break;
  1216. case(7): strcpy(p,"full_monty"); break;
  1217. default: strcpy(p,"UNKNOWN-MODE"); break;
  1218. }
  1219. break;
  1220. case(201):
  1221. switch(modeno) {
  1222. case(1): strcpy(p,"reverse"); break;
  1223. case(2): strcpy(p,"shred"); break;
  1224. case(3): strcpy(p,"scrub_over_heads"); break;
  1225. case(4): strcpy(p,"lower_resolution"); break;
  1226. case(5): strcpy(p,"ring_modulate"); break;
  1227. case(6): strcpy(p,"cross_modulate"); break;
  1228. default: strcpy(p,"UNKNOWN-MODE"); break;
  1229. }
  1230. break;
  1231. case(202):
  1232. switch(modeno) {
  1233. case(1): strcpy(p,"standard"); break;
  1234. case(2): strcpy(p,"get_spec_envelope_only"); break;
  1235. case(3): strcpy(p,"get_spec_magnitudes_only"); break;
  1236. default: strcpy(p,"UNKNOWN-MODE"); break;
  1237. }
  1238. break;
  1239. case(206):
  1240. case(207):
  1241. case(208):
  1242. case(209):
  1243. case(210):
  1244. case(211):
  1245. case(212):
  1246. switch(modeno) {
  1247. case(1): strcpy(p,"time_in_seconds"); break;
  1248. case(2): strcpy(p,"time_as_sample_count"); break;
  1249. case(3): strcpy(p,"time_as_grouped_samples"); break;
  1250. default: strcpy(p,"UNKNOWN-MODE"); break;
  1251. }
  1252. break;
  1253. case(214):
  1254. switch(modeno) {
  1255. case(1): strcpy(p,"make_a_copy"); break;
  1256. case(2): strcpy(p,"make_multiple_copies"); break;
  1257. default: strcpy(p,"UNKNOWN-MODE"); break;
  1258. }
  1259. break;
  1260. case(215):
  1261. switch(modeno) {
  1262. case(1): strcpy(p,"extract_a_channel"); break;
  1263. case(2): strcpy(p,"extract_all_channels"); break;
  1264. case(3): strcpy(p,"zero_a_channel"); break;
  1265. case(4): strcpy(p,"convert_stereo_to_mono"); break;
  1266. case(5): strcpy(p,"convert_mono_to_stereo"); break;
  1267. default: strcpy(p,"UNKNOWN-MODE"); break;
  1268. }
  1269. break;
  1270. case(216):
  1271. switch(modeno) {
  1272. case(1): strcpy(p,"gated_extraction"); break;
  1273. case(2): strcpy(p,"preview_extraction"); break;
  1274. case(3): strcpy(p,"top_and_tail"); break;
  1275. case(4): strcpy(p,"remove_dc"); break;
  1276. default: strcpy(p,"UNKNOWN-MODE"); break;
  1277. }
  1278. break;
  1279. case(217):
  1280. switch(modeno) {
  1281. case(1): strcpy(p,"change_sampling_rate"); break;
  1282. case(2): strcpy(p,"convert_sample_format"); break;
  1283. case(3): strcpy(p,"change_properties"); break;
  1284. default: strcpy(p,"UNKNOWN-MODE"); break;
  1285. }
  1286. break;
  1287. case(218):
  1288. switch(modeno) {
  1289. case(1): strcpy(p,"any_files"); break;
  1290. case(2): strcpy(p,"non-text_files"); break;
  1291. case(3): strcpy(p,"same_type"); break;
  1292. case(4): strcpy(p,"same_properties"); break;
  1293. case(5): strcpy(p,"same_channels"); break;
  1294. default: strcpy(p,"UNKNOWN-MODE"); break;
  1295. }
  1296. break;
  1297. case(219):
  1298. switch(modeno) {
  1299. case(1): strcpy(p,"by_filetype"); break;
  1300. case(2): strcpy(p,"by_sampling_rate"); break;
  1301. case(3): strcpy(p,"by_duration"); break;
  1302. case(4): strcpy(p,"by_log_duration"); break;
  1303. case(5): strcpy(p,"into_duration_order"); break;
  1304. case(6): strcpy(p,"find_rogues"); break;
  1305. default: strcpy(p,"UNKNOWN-MODE"); break;
  1306. }
  1307. break;
  1308. case(220):
  1309. switch(modeno) {
  1310. case(1): strcpy(p,"string_sounds_together"); break;
  1311. case(2): strcpy(p,"dump_sndfiles"); break;
  1312. default: strcpy(p,"UNKNOWN-MODE"); break;
  1313. }
  1314. break;
  1315. case(236):
  1316. switch(modeno) {
  1317. case(1): strcpy(p,"midi_to_frq"); break;
  1318. case(2): strcpy(p,"frq_to_midi"); break;
  1319. case(3): strcpy(p,"note_to_frq"); break;
  1320. case(4): strcpy(p,"note_to_midi"); break;
  1321. case(5): strcpy(p,"frq_to_note"); break;
  1322. case(6): strcpy(p,"midi_to_note"); break;
  1323. case(7): strcpy(p,"frq_ratio_to_semitones"); break;
  1324. case(8): strcpy(p,"frq_ratio_to_interval"); break;
  1325. case(9): strcpy(p,"interval_to_frq_ratio"); break;
  1326. case(10): strcpy(p,"semitones_to_frq_ratio"); break;
  1327. case(11): strcpy(p,"octaves_to_frq_ratio"); break;
  1328. case(12): strcpy(p,"octaves_to_semitones"); break;
  1329. case(13): strcpy(p,"frq_ratio_to_octaves"); break;
  1330. case(14): strcpy(p,"semitones_to_octaves"); break;
  1331. case(15): strcpy(p,"semitones_to_interval"); break;
  1332. case(16): strcpy(p,"frq_ratio_to_time_ratio"); break;
  1333. case(17): strcpy(p,"semitones_to_time_ratio"); break;
  1334. case(18): strcpy(p,"octaves_to_time_ratio"); break;
  1335. case(19): strcpy(p,"interval_to_time_ratio"); break;
  1336. case(20): strcpy(p,"time_ratio_to_frq_ratio"); break;
  1337. case(21): strcpy(p,"time_ratio_to_semitones"); break;
  1338. case(22): strcpy(p,"time_ratio_to_octaves"); break;
  1339. case(23): strcpy(p,"time_ratio_to_interval"); break;
  1340. case(24): strcpy(p,"gain_factor_to_db_gain"); break;
  1341. case(25): strcpy(p,"db_gain_to_gain_factor"); break;
  1342. default: strcpy(p,"UNKNOWN-MODE"); break;
  1343. }
  1344. break;
  1345. case(237):
  1346. switch(modeno) {
  1347. case(1): strcpy(p,"sine"); break;
  1348. case(2): strcpy(p,"square"); break;
  1349. case(3): strcpy(p,"saw"); break;
  1350. case(4): strcpy(p,"ramp"); break;
  1351. default: strcpy(p,"UNKNOWN-MODE"); break;
  1352. }
  1353. break;
  1354. case(251):
  1355. switch(modeno) {
  1356. case(1): strcpy(p,"time_in_seconds"); break;
  1357. case(2): strcpy(p,"time_as_sample_count"); break;
  1358. default: strcpy(p,"UNKNOWN-MODE"); break;
  1359. }
  1360. break;
  1361. default:
  1362. switch(modeno) {
  1363. case(0): strcpy(p,""); break;
  1364. default: strcpy(p,"UNKNOWN-MODE"); break;
  1365. }
  1366. }
  1367. }
  1368. void to_ucase(char *str)
  1369. {
  1370. char *p = str, cc;
  1371. while(*p != ENDOFSTR) {
  1372. if(isalpha(*p) && *p > 96) {
  1373. cc = (char)(*p - 32);
  1374. *p = cc;
  1375. }
  1376. p++;
  1377. }
  1378. }