tkusage.c 311 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941
  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. /*
  22. * SOUND LOOM Release 9: November 2: 2004
  23. */
  24. #include <stdio.h>
  25. #include <structures.h>
  26. #include <processno.h>
  27. #include <edit.h>
  28. #include <house.h>
  29. #include <string.h>
  30. #define TE_1 -1
  31. #define TE_2 -2
  32. #define TE_3 -3
  33. #define TE_4 -4
  34. #define TE_5 -5
  35. #define TE_6 -6
  36. #define TE_7 -7
  37. #define TE_8 -8
  38. #define TE_9 -9
  39. #define TE_10 -10
  40. #define TE_11 -11
  41. #define TE_12 -12
  42. #define TE_13 -13
  43. #define TE_14 -14
  44. #define TE_15 -15
  45. #define TE_16 -16
  46. #define TE_17 -17
  47. #define TE_18 -18
  48. #define TE_19 -19
  49. #define TE_20 -20
  50. #define TE_21 -21
  51. #define TE_22 -22
  52. #define TE_23 -23
  53. #define TE_24 -24
  54. #define TE_25 -25
  55. #define TE_26 -26
  56. #define TE_27 -27
  57. #define TE_28 -28
  58. #define TE_29 -29
  59. #define TE_30 -30
  60. #define TE_31 -31
  61. const char* cdp_version = "7.1.0";
  62. /******************************** TKUSAGE ********************************/
  63. int main(int argc, char *argv[])
  64. {
  65. int process;
  66. if(argc==2 && (strcmp(argv[1],"--version") == 0)) {
  67. fprintf(stdout,"%s\n",cdp_version);
  68. fflush(stdout);
  69. return 0;
  70. }
  71. if(argc!=2) {
  72. fprintf(stdout,"ERROR: Error in usage program tkusage\n");
  73. return -1;
  74. }
  75. if(sscanf(argv[1],"%d",&process)!=1) {
  76. fprintf(stdout,"ERROR: Failed to read process number in tkusage\n");
  77. return -1;
  78. }
  79. switch(process) {
  80. case(GAIN):
  81. fprintf(stdout,"INFO: AMPLIFY OR ATTENUATE THE SPECTRUM\n");
  82. fprintf(stdout,"INFO: \n");
  83. fprintf(stdout,"INFO: GAIN may vary over time.\n");
  84. fprintf(stdout,"INFO: \n");
  85. break;
  86. case(LIMIT):
  87. fprintf(stdout,"INFO: ELIMINATE CHANNEL DATA BELOW A THRESHOLD AMP\n");
  88. fprintf(stdout,"INFO: \n");
  89. fprintf(stdout,"INFO: THRESHOLD AMPLITUDE may vary over time.\n");
  90. fprintf(stdout,"INFO: \n");
  91. break;
  92. case(BARE):
  93. fprintf(stdout,"INFO: ZERO THE DATA IN CHANNELS WHICH DO NOT CONTAIN HARMONICS\n");
  94. fprintf(stdout,"INFO: \n");
  95. fprintf(stdout,"INFO: Process needs TWO INPUT FILES,\n");
  96. fprintf(stdout,"INFO: an Analysis File, and a Pitchfile you have derived from it.\n");
  97. fprintf(stdout,"INFO: \n");
  98. fprintf(stdout,"INFO: The PITCHFILE should normally be extracted\n");
  99. fprintf(stdout,"INFO: using KEEP PITCH ZEROS flag to mark any unpitched material.\n");
  100. fprintf(stdout,"INFO: \n");
  101. break;
  102. case(CLEAN):
  103. fprintf(stdout,"INFO: REMOVE NOISE FROM PVOC ANALYSIS FILE.\n");
  104. fprintf(stdout,"INFO: \n");
  105. fprintf(stdout,"INFO: EXTRA FILE REQUIRED-------------------------------------------------------\n");
  106. fprintf(stdout,"INFO: \n");
  107. fprintf(stdout,"INFO: In all MODES except BY COMPARISON METHOD, ONE extra input file required.\n");
  108. fprintf(stdout,"INFO: \n");
  109. fprintf(stdout,"INFO: Extra file is an analysis file cut from the 1st infile\n");
  110. fprintf(stdout,"INFO: to show typical noise (only) component of main signal.\n");
  111. fprintf(stdout,"INFO: \n");
  112. fprintf(stdout,"INFO: BY COMPARISON METHOD, TWO extra input files required.\n");
  113. fprintf(stdout,"INFO: \n");
  114. fprintf(stdout,"INFO: Extra files are both analysis files cut from 1st infile\n");
  115. fprintf(stdout,"INFO: to show typical noise (1st) & typical good signal (2nd).\n");
  116. fprintf(stdout,"INFO: \n");
  117. fprintf(stdout,"INFO: MODES---------------------------------------------------------------------\n");
  118. fprintf(stdout,"INFO: \n");
  119. fprintf(stdout,"INFO: FROM SPECIFIED TIME\n");
  120. fprintf(stdout,"INFO: Deletes channel (after skiptime) FROM THE TIME its level falls below\n");
  121. fprintf(stdout,"INFO: (noisgain adjusted) max level seen for that channel in comparison file.\n");
  122. fprintf(stdout,"INFO: \n");
  123. fprintf(stdout,"INFO: ANYWHERE\n");
  124. fprintf(stdout,"INFO: Deletes channel (after skiptime) ANYWHERE its level falls below\n");
  125. fprintf(stdout,"INFO: (noisgain adjusted) max level seen for that channel in comparison file.\n");
  126. fprintf(stdout,"INFO: \n");
  127. fprintf(stdout,"INFO: ABOVE SPECIFED FRQ\n");
  128. fprintf(stdout,"INFO: Deletes channel as in 'ANYWHERE'\n");
  129. fprintf(stdout,"INFO: but ONLY for channels of frq > LOW FRQ LIMIT.\n");
  130. fprintf(stdout,"INFO: \n");
  131. fprintf(stdout,"INFO: BY COMPARISON METHOD\n");
  132. fprintf(stdout,"INFO: Deletes channel EVERYWHERE, whose level in GFILE is ALWAYS below\n");
  133. fprintf(stdout,"INFO: (noisgain adjusted) max level seen for same channel in NFILE.\n");
  134. fprintf(stdout,"INFO: \n");
  135. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------------\n");
  136. fprintf(stdout,"INFO: \n");
  137. fprintf(stdout,"INFO: SKIPTIME.......may be set to time where good src. signal level established.\n");
  138. fprintf(stdout,"INFO: NOISE PREGAIN..multiplies noiselevels found in comparison files\n");
  139. fprintf(stdout,"INFO: before they are used for comparison with main signal.\n");
  140. fprintf(stdout,"INFO: \n");
  141. break;
  142. case(CUT):
  143. fprintf(stdout,"INFO: CUT SECTION OUT OF ANALYSIS FILE, BETWEEN STARTTIME & ENDTIME (SECS)\n");
  144. fprintf(stdout,"INFO: \n");
  145. break;
  146. case(GRAB):
  147. fprintf(stdout,"INFO: GRAB A SINGLE ANALYSIS WINDOW\n");
  148. fprintf(stdout,"INFO: \n");
  149. fprintf(stdout,"INFO: at time FREEZE MOMENT.\n");
  150. fprintf(stdout,"INFO: A time beyond end of file will grab last window in file,\n");
  151. fprintf(stdout,"INFO: (window at time zero is always uninteresting).\n");
  152. fprintf(stdout,"INFO: \n");
  153. break;
  154. case(MAGNIFY):
  155. fprintf(stdout,"INFO: MAGNIFY A SINGLE ANALYSIS WINDOW\n");
  156. fprintf(stdout,"INFO: \n");
  157. fprintf(stdout,"INFO: at time FREEZE MOMENT, to duration OUTFILE DURATION.\n");
  158. fprintf(stdout,"INFO: \n");
  159. break;
  160. case(STRETCH):
  161. fprintf(stdout,"INFO: STRETCH THE FREQUENCIES IN THE SPECTRUM\n");
  162. fprintf(stdout,"INFO: \n");
  163. fprintf(stdout,"INFO: FRQ DIVIDE...............frq above or below which stretching takes place.\n");
  164. fprintf(stdout,"INFO: TOP OF SPECTRUM STRETCH..transposition ratio for topmost spectral components.\n");
  165. fprintf(stdout,"INFO: STRETCH EXPONENT.........specifies the type of stretching required.\n");
  166. fprintf(stdout,"INFO: PROCESS DEPTH............controls effect on source (from no effect to full),\n");
  167. fprintf(stdout,"INFO: .........................0 gives no stretching, 1 gives full stretching.\n");
  168. fprintf(stdout,"INFO: .........................Use to change the stretching from moment to moment.\n");
  169. fprintf(stdout,"INFO: \n");
  170. break;
  171. case(TSTRETCH):
  172. fprintf(stdout,"INFO: TIME-STRETCHING OF INFILE\n");
  173. fprintf(stdout,"INFO: \n");
  174. fprintf(stdout,"INFO: without changing the pitch.\n");
  175. fprintf(stdout,"INFO: In mode GET OUTPUT LENGTH, program calculates length of output, only.\n");
  176. fprintf(stdout,"INFO: \n");
  177. break;
  178. case(ALT):
  179. fprintf(stdout,"INFO: DELETE ALTERNATE HARMONICS\n");
  180. fprintf(stdout,"INFO: \n");
  181. fprintf(stdout,"INFO: Requires TWO INPUT FILES, an Analysis file and a Pitch data file.\n");
  182. fprintf(stdout,"INFO: \n");
  183. fprintf(stdout,"INFO: Additional pitchfile must be derived from input analysis file.\n");
  184. fprintf(stdout,"INFO: \n");
  185. fprintf(stdout,"INFO: Mode DELETE ODD HARMONICS\n");
  186. fprintf(stdout,"INFO: can produces octave up transposition with NO formant change.\n");
  187. fprintf(stdout,"INFO: \n");
  188. break;
  189. case(OCT):
  190. fprintf(stdout,"INFO: OCTAVE TRANSPOSE WITHOUT FORMANT SHIFT\n");
  191. fprintf(stdout,"INFO: \n");
  192. fprintf(stdout,"INFO: Requires TWO INPUT FILES, an Analysis file and a Pitch data file.\n");
  193. fprintf(stdout,"INFO: \n");
  194. fprintf(stdout,"INFO: Additional pitchfile must be derived from input analysis file.\n");
  195. fprintf(stdout,"INFO: TRANSPOSITION RATIO..is integer: 2 is an octave, 3 is a 12th etc.\n");
  196. fprintf(stdout,"INFO: as in the harmonic series.\n");
  197. fprintf(stdout,"INFO: \n");
  198. break;
  199. case(SHIFTP):
  200. fprintf(stdout,"INFO: SHIFT PITCH OF (PART OF) SPECTRUM\n");
  201. fprintf(stdout,"INFO: \n");
  202. fprintf(stdout,"INFO: FRQ DIVIDE...... is freq above or below which transposition takes place.\n");
  203. fprintf(stdout,"INFO: TRANSPOSITION....is transposition above or below FRQ DIVIDE.\n");
  204. fprintf(stdout,"INFO: TRANSPOSITION 1..is transposition above FRQ DIVIDE. (semitones)\n");
  205. fprintf(stdout,"INFO: TRANSPOSITION 2..is transposition below FRQ DIVIDE. (semitones)\n");
  206. fprintf(stdout,"INFO: DEPTH............is effect on source (from no effect to full)).\n");
  207. fprintf(stdout,"INFO: .................0 gives no shift, 1 gives full shift.\n");
  208. fprintf(stdout,"INFO: .................Use to change the shifting from moment to moment.\n");
  209. fprintf(stdout,"INFO: \n");
  210. break;
  211. case(TUNE):
  212. fprintf(stdout,"INFO: REPLACE SPECTRAL FRQS BY HARMONICS OF SPECIFIED PITCH(ES)\n");
  213. fprintf(stdout,"INFO: \n");
  214. fprintf(stdout,"INFO: Data required is a pitch, or a textfile containing pitches.\n");
  215. fprintf(stdout,"INFO: \n");
  216. fprintf(stdout,"INFO: FOCUS..........degree of focusing of partial pitches onto template.\n");
  217. fprintf(stdout,"INFO: \n");
  218. fprintf(stdout,"INFO: CLARITY........degree to which non-template partials are suppressed.\n");
  219. fprintf(stdout,"INFO: \n");
  220. fprintf(stdout,"INFO: TRACE..........number of (window_by_window) most prominent channels\n");
  221. fprintf(stdout,"INFO: ...............to be replaced by template frqs. (default, all channels)\n");
  222. fprintf(stdout,"INFO: \n");
  223. fprintf(stdout,"INFO: LOW FRQ LIMIT..frqs below this are ignored.\n");
  224. fprintf(stdout,"INFO: \n");
  225. break;
  226. case(PICK):
  227. fprintf(stdout,"INFO: RETAIN ONLY CHANNELS WHICH MIGHT HOLD SPECIFIED PARTIALS\n");
  228. fprintf(stdout,"INFO: \n");
  229. fprintf(stdout,"INFO: FUNDAMENTAL FRQ..of harmonic series, (or of calculation).\n");
  230. fprintf(stdout,"INFO: FRQ STEP.........Frequency step to be added to another frequency.\n");
  231. fprintf(stdout,"INFO: CLARITY..........extent to which data in other channels is suppressed.\n");
  232. fprintf(stdout,"INFO: \n");
  233. break;
  234. case(CHORD):
  235. fprintf(stdout,"INFO: TRANSPOSITIONS OF SPECTRUM SUPERIMPOSED WITHIN EXISTING SPECTRAL ENVELOPE\n");
  236. fprintf(stdout,"INFO: \n");
  237. fprintf(stdout,"INFO: Data required is file of (possibly fractional) semitone transposition values.\n");
  238. fprintf(stdout,"INFO: BOTTOM FRQ..frqs below this are filtered out.\n");
  239. fprintf(stdout,"INFO: TOP FRQ.....frqs above this are filtered out.\n");
  240. fprintf(stdout,"INFO: \n");
  241. break;
  242. case(MULTRANS):
  243. fprintf(stdout,"INFO: TRANSPOSED VERSIONS OF SPECTRUM SUPERIMPOSED ON ORIGINAL\n");
  244. fprintf(stdout,"INFO: \n");
  245. fprintf(stdout,"INFO: Data required is file of (possibly fractional) semitone transposition values.\n");
  246. fprintf(stdout,"INFO: BOTTOM FRQ..frqs below this are filtered out.\n");
  247. fprintf(stdout,"INFO: TOP FRQ.....frqs above this are filtered out.\n");
  248. fprintf(stdout,"INFO: \n");
  249. break;
  250. case(FILT):
  251. fprintf(stdout,"INFO: FILTER THE SPECTRUM\n");
  252. fprintf(stdout,"INFO: \n");
  253. fprintf(stdout,"INFO: FILTER EDGE(S) WIDTH.....is the width of filter skirts, in Hz.\n");
  254. fprintf(stdout,"INFO: GAIN..is overall amplification of resulting sound.\n");
  255. fprintf(stdout,"INFO: \n");
  256. break;
  257. case(GREQ):
  258. fprintf(stdout,"INFO: GRAPHIC EQ ON SPECTRUM\n");
  259. fprintf(stdout,"INFO: \n");
  260. fprintf(stdout,"INFO: STANDARD BANDWIDTH\n");
  261. fprintf(stdout,"INFO: ....Data file has ONE bandwidth (octaves)\n");
  262. fprintf(stdout,"INFO: ....followed by centre frqs of all filter bands (Hz).\n");
  263. fprintf(stdout,"INFO: VARIOUS BANDWIDTHS\n");
  264. fprintf(stdout,"INFO: ....Data file has a pair of values for EVERY filter band,\n");
  265. fprintf(stdout,"INFO: ....representing centre frq of the band (Hz) followed by bandwidth (octaves).\n");
  266. fprintf(stdout,"INFO: \n");
  267. break;
  268. case(SPLIT):
  269. fprintf(stdout,"INFO: SPLIT SPECTRUM INTO BANDS & PROCESS THESE INDIVIDUALLY.\n");
  270. fprintf(stdout,"INFO: \n");
  271. fprintf(stdout,"INFO: Required data is a textfile of lines each with the following data..\n");
  272. fprintf(stdout,"INFO: \n");
  273. fprintf(stdout,"INFO: lofrq hifrq bitflag [amp1 amp2 [+]transpose]\n");
  274. fprintf(stdout,"INFO: \n");
  275. fprintf(stdout,"INFO: LOFRQ and HIFRQ define the limits of a frequency band in the spectrum\n");
  276. fprintf(stdout,"INFO: which you wish to modify.\n");
  277. fprintf(stdout,"INFO: These bands should NOT OVERLAP one another.\n");
  278. fprintf(stdout,"INFO: \n");
  279. fprintf(stdout,"INFO: BITFLAG has 4 bits (e.g. '0101' or '1000')\n");
  280. fprintf(stdout,"INFO: \n");
  281. fprintf(stdout,"INFO: If bit 1 (on the left) is set: There is an amplitude change to the whole band.\n");
  282. fprintf(stdout,"INFO: Put an amplitude multiplier ('amp1') in the line.\n");
  283. fprintf(stdout,"INFO: \n");
  284. fprintf(stdout,"INFO: If bit 2 is set: The amplitude of the band ramps from amp1 to amp2.\n");
  285. fprintf(stdout,"INFO: Put the start and end amplitude multipliers ('amp1' and 'amp2') in the line.\n");
  286. fprintf(stdout,"INFO: \n");
  287. fprintf(stdout,"INFO: If bit 3 is set: The band is transposed, or shifted.\n");
  288. fprintf(stdout,"INFO: To transpose, put a frequency multiplier ('transpose') in the line,\n");
  289. fprintf(stdout,"INFO: To shift, put in a frequency shift value in Hz, BUT precede it with a '+' sign.\n");
  290. fprintf(stdout,"INFO: \n");
  291. fprintf(stdout,"INFO: If bit 4 (on the right) is set: the transposed partials are ADDED to the original spectrum.\n");
  292. fprintf(stdout,"INFO: (Normally they will REPLACE the originals.\n");
  293. fprintf(stdout,"INFO: \n");
  294. fprintf(stdout,"INFO: \n");
  295. fprintf(stdout,"INFO: 'amp1', 'amp2' &/or 'transpose' MUST be present, where required by the preceding bitflag.\n");
  296. fprintf(stdout,"INFO: \n");
  297. break;
  298. case(ARPE):
  299. fprintf(stdout,"INFO: ARPEGGIATE THE SPECTRUM\n");
  300. fprintf(stdout,"INFO: \n");
  301. fprintf(stdout,"INFO: MODES--------------------------------------------------------------------\n");
  302. fprintf(stdout,"INFO: \n");
  303. fprintf(stdout,"INFO: ON...........Play components inside arpeggiated band ONLY.\n");
  304. fprintf(stdout,"INFO: \n");
  305. fprintf(stdout,"INFO: BOOST........Amplify snds in band. Others play unamplified.\n");
  306. fprintf(stdout,"INFO: \n");
  307. fprintf(stdout,"INFO: BELOW_BOOST..INITIALLY Play components in & below band ONLY.\n");
  308. fprintf(stdout,"INFO: .............THEN amplify snds in band. Others play unamplified.\n");
  309. fprintf(stdout,"INFO: \n");
  310. fprintf(stdout,"INFO: ABOVE_BOOST..INITIALLY Play components in & above band ONLY.\n");
  311. fprintf(stdout,"INFO: .............THEN amplify snds in band. Others play unamplified.\n");
  312. fprintf(stdout,"INFO: \n");
  313. fprintf(stdout,"INFO: BELOW........Play components in & below arpeggiated band ONLY.\n");
  314. fprintf(stdout,"INFO: \n");
  315. fprintf(stdout,"INFO: ABOVE........Play components in & above arpeggiated band ONLY.\n");
  316. fprintf(stdout,"INFO: \n");
  317. fprintf(stdout,"INFO: ONCE_BELOW...INITIALLY Play components in and below band ONLY.\n");
  318. fprintf(stdout,"INFO: .............THEN play whole sound as normal.\n");
  319. fprintf(stdout,"INFO: \n");
  320. fprintf(stdout,"INFO: ONCE_ABOVE...INITIALLY Play components in and above arpeggiated band ONLY.\n");
  321. fprintf(stdout,"INFO: .............THEN play whole sound as normal.\n");
  322. fprintf(stdout,"INFO: \n");
  323. fprintf(stdout,"INFO: PARAMETERS---------------------------------------------------------------\n");
  324. fprintf(stdout,"INFO: \n");
  325. fprintf(stdout,"INFO: WAVETYPE..............1=downramp : 2=sin : 3=saw : 4=upramp\n");
  326. fprintf(stdout,"INFO: RATE OF SWEEP.........arpeggio sweeps per second.\n");
  327. fprintf(stdout,"INFO: START PHASE...........start_phase of arpeggio sweep.\n");
  328. fprintf(stdout,"INFO: LOFRQ LIMIT...........lowest freq arpeg sweeps down to.\n");
  329. fprintf(stdout,"INFO: HIFRQ LIMIT...........highest freq arpeg sweeps up to.\n");
  330. fprintf(stdout,"INFO: BANDWIDTH.............bandwidth of sweep band (in Hz).\n");
  331. fprintf(stdout,"INFO: AMPLIFICATION.........amplification of arpegiated components.\n");
  332. fprintf(stdout,"INFO: NONLINEAR DECAY.......Nonlinear decay of arpegtones. >1 faster, <1 slower.\n");
  333. fprintf(stdout,"INFO: SUSTAIN WINDOWS.......Number of windows over which arpegtones sustained.\n");
  334. fprintf(stdout,"INFO: TRACK FRQ CHANGE.... .Amplified tones track changing frq of src.\n");
  335. fprintf(stdout,"INFO: SUSTAINS RUN TO ZERO..Amplified tones allowed to decay to zero\n");
  336. fprintf(stdout,"INFO: ......................before new arpegtone attack initiated\n");
  337. fprintf(stdout,"INFO: ......................(Default: Re-attack once decayed below input level)\n");
  338. fprintf(stdout,"INFO: \n");
  339. break;
  340. case(PLUCK):
  341. fprintf(stdout,"INFO: EMPHASISE SPECTRAL CHANGES (use e.g. with HILITE ARPEG)\n");
  342. fprintf(stdout,"INFO: \n");
  343. fprintf(stdout,"INFO: GAIN...amplitude gain applied to newly prominent spectral components.\n");
  344. fprintf(stdout,"INFO: \n");
  345. break;
  346. case(S_TRACE):
  347. fprintf(stdout,"INFO: RETAIN THE N LOUDEST PARTIALS ONLY (ON A WINDOW-BY-WINDOW BASIS)\n");
  348. fprintf(stdout,"INFO: \n");
  349. break;
  350. case(BLTR):
  351. fprintf(stdout,"INFO: TIME-AVERAGE, AND TRACE, THE SPECTRUM\n");
  352. fprintf(stdout,"INFO: \n");
  353. fprintf(stdout,"INFO: BLURRING FACTOR..is number of windows over which to average the spectrum.\n");
  354. fprintf(stdout,"INFO: TRACING INDEX....is number of (loudest) channels to retain, in each window.\n");
  355. fprintf(stdout,"INFO: \n");
  356. break;
  357. case(ACCU):
  358. fprintf(stdout,"INFO: SUSTAIN EACH SPECTRAL BAND, UNTIL LOUDER DATA APPEARS IN THAT BAND\n");
  359. fprintf(stdout,"INFO: \n");
  360. fprintf(stdout,"INFO: DECAY RATE....sutained channel data decays by DECAYRATE per sec.\n");
  361. fprintf(stdout,"INFO: GLISS RATE....sutained channel data glisses at GLISRATE 8vas per sec.\n");
  362. fprintf(stdout,"INFO: \n");
  363. break;
  364. case(EXAG):
  365. fprintf(stdout,"INFO: EXAGGERATE SPECTRAL CONTOUR\n");
  366. fprintf(stdout,"INFO: \n");
  367. fprintf(stdout,"INFO: EXAGGERATION >0 will widen troughs: <0 will widen peaks.\n");
  368. fprintf(stdout,"INFO: \n");
  369. break;
  370. case(FOCUS):
  371. fprintf(stdout,"INFO: FOCUS SPECTRAL ENERGY ONTO PEAKS IN SPECTRUM\n");
  372. fprintf(stdout,"INFO: \n");
  373. fprintf(stdout,"INFO: FILTER BANDWIDTH.........bandwidth of peak-centred filters, in octaves.\n");
  374. fprintf(stdout,"INFO: BOTTOM FRQ...............is bottom frequency to start peak search.\n");
  375. fprintf(stdout,"INFO: TOP FRQ..................is frequency to end peak search.\n");
  376. fprintf(stdout,"INFO: WINDOWCNT FOR STABILITY..Number of windows over which to scan for peak stability.\n");
  377. fprintf(stdout,"INFO: \n");
  378. break;
  379. case(FOLD):
  380. fprintf(stdout,"INFO: OCTAVE-TRANSPOSE SPECTRAL COMPONENTS INTO SPECIFIED RANGE\n");
  381. fprintf(stdout,"INFO: \n");
  382. break;
  383. case(FREEZE):
  384. fprintf(stdout,"INFO: FREEZE SPECTRAL CHARACTERISTICS IN SOUND, AT GIVEN TIMES \n");
  385. fprintf(stdout,"INFO: \n");
  386. fprintf(stdout,"INFO: Requied data is a textfile of times at which spectrum is frozen.\n");
  387. fprintf(stdout,"INFO: These times may be preceded by character MARKERS....\n");
  388. fprintf(stdout,"INFO: \n");
  389. fprintf(stdout,"INFO: 'a' meaning, use this window as freezewindow for AFTER this time.\n");
  390. fprintf(stdout,"INFO: 'b' meaning, use this window as freezewindow for BEFORE this time.\n");
  391. fprintf(stdout,"INFO: \n");
  392. fprintf(stdout,"INFO: Otherwise, times are end-or-start of a freeze thus established.\n");
  393. fprintf(stdout,"INFO: \n");
  394. break;
  395. case(FREEZE2):
  396. fprintf(stdout,"INFO: HOLD SOUND SPECTRUM, AT GIVEN TIMES \n");
  397. fprintf(stdout,"INFO: \n");
  398. fprintf(stdout,"INFO: Datafile contains times at which spectrum is held, & hold-duration.\n");
  399. fprintf(stdout,"INFO: These data items must be paired correctly.\n");
  400. fprintf(stdout,"INFO: \n");
  401. break;
  402. case(STEP):
  403. fprintf(stdout,"INFO: STEP-FRAME THROUGH SOUND BY FREEZING SPECTRUM AT REGULAR TIME INTERVALS\n");
  404. fprintf(stdout,"INFO: \n");
  405. break;
  406. case(AVRG):
  407. fprintf(stdout,"INFO: AVERAGE SPECTRAL ENERGY OVER N ADJACENT CHANNELS\n");
  408. fprintf(stdout,"INFO: \n");
  409. break;
  410. case(BLUR):
  411. fprintf(stdout,"INFO: TIME-AVERAGE THE SPECTRUM\n");
  412. fprintf(stdout,"INFO: \n");
  413. fprintf(stdout,"INFO: BLURRING FACTOR is number of windows over which to average spectrum.\n");
  414. fprintf(stdout,"INFO: \n");
  415. break;
  416. case(SUPR):
  417. fprintf(stdout,"INFO: SUPPRESS THE N LOUDEST PARTIALS (ON A WINDOW-BY-WINDOW BASIS)\n");
  418. fprintf(stdout,"INFO: \n");
  419. break;
  420. case(CHORUS):
  421. fprintf(stdout,"INFO: CHORUSING BY RANDOMISING AMPLITUDES AND/OR FREQUENCIES OF PARTIALS\n");
  422. fprintf(stdout,"INFO: \n");
  423. fprintf(stdout,"INFO: AMP SPREAD is maximum random scatter of partial-amps.\n");
  424. fprintf(stdout,"INFO: FRQ SPREAD is maximum random scatter of partial-frqs.\n");
  425. fprintf(stdout,"INFO: \n");
  426. break;
  427. case(DRUNK):
  428. fprintf(stdout,"INFO: MODIFY SOUND BY DRUNKEN WALK ALONG ANALYSIS WINDOWS.\n");
  429. fprintf(stdout,"INFO: \n");
  430. fprintf(stdout,"INFO: RANGE IN WINDOWS...is maximum step (in windows) for drunken walk.\n");
  431. fprintf(stdout,"INFO: STARTTIME IN FILE..is time (in secs) in file to begin walk.\n");
  432. fprintf(stdout,"INFO: OUTFILE DURATION...is required duration of outfile.\n");
  433. fprintf(stdout,"INFO: \n");
  434. break;
  435. case(SHUFFLE):
  436. fprintf(stdout,"INFO: SHUFFLE ORDER OF ANALYSIS WINDOWS IN FILE\n");
  437. fprintf(stdout,"INFO: \n");
  438. fprintf(stdout,"INFO: Required data is 2 strings of letters, separated by a '-' or ':'\n");
  439. fprintf(stdout,"INFO: The first string is the DOMAIN, and the 2nd, the IMAGE.\n");
  440. fprintf(stdout,"INFO: e.g. 'abc-abbabcc'\n");
  441. fprintf(stdout,"INFO: \n");
  442. fprintf(stdout,"INFO: DOMAIN.\n");
  443. fprintf(stdout,"INFO: \n");
  444. fprintf(stdout,"INFO: Letters represent group of consecutive inputfile analysis_windows.\n");
  445. fprintf(stdout,"INFO: \n");
  446. fprintf(stdout,"INFO: e.g. 'abcd'\n");
  447. fprintf(stdout,"INFO: \n");
  448. fprintf(stdout,"INFO: IMAGE.\n");
  449. fprintf(stdout,"INFO: \n");
  450. fprintf(stdout,"INFO: Any permutation of, or selection from, the domain letters.\n");
  451. fprintf(stdout,"INFO: (domain letters may be omitted or repeated in the image string).\n");
  452. fprintf(stdout,"INFO: \n");
  453. fprintf(stdout,"INFO: e.g. 'aaaaaaadaaa'\n");
  454. fprintf(stdout,"INFO: \n");
  455. fprintf(stdout,"INFO: Inputfile windows are shuffled according to this same mapping.\n");
  456. fprintf(stdout,"INFO: \n");
  457. fprintf(stdout,"INFO: GROUPSIZE Windows may be grouped in sets of GROUPSIZE\n");
  458. fprintf(stdout,"INFO: ..........before being shuffled (as groups), and in this case\n");
  459. fprintf(stdout,"INFO: ..........each domain-letter represents a group of GROUPSIZE windows.\n");
  460. fprintf(stdout,"INFO: \n");
  461. break;
  462. case(WEAVE):
  463. fprintf(stdout,"INFO: MODIFY SOUND BY WEAVING AMONGST ANALYSIS WINDOWS.\n");
  464. fprintf(stdout,"INFO: \n");
  465. fprintf(stdout,"INFO: Special data file contains a list of integers\n");
  466. fprintf(stdout,"INFO: which define successive steps (in windows) through the input file.\n");
  467. fprintf(stdout,"INFO: Steps may be forward or backwards.\n" );
  468. fprintf(stdout,"INFO: The step sequence is repeated until end of infile is reached.\n");
  469. fprintf(stdout,"INFO: \n");
  470. fprintf(stdout,"INFO: Weave must obey the following rules....\n");
  471. fprintf(stdout,"INFO: \n");
  472. fprintf(stdout,"INFO: RULE 1: NO step can exceed a certain limit value\n");
  473. fprintf(stdout,"INFO: RULE 2: NO window reached in a weave can be BEFORE startwindow of weave.\n");
  474. fprintf(stdout,"INFO: RULE 3: FINAL window must be AFTER the weave startwindow.\n");
  475. fprintf(stdout,"INFO: \n");
  476. fprintf(stdout,"INFO: Otherwise, weave may be forward or backward, or remain at same window.\n");
  477. fprintf(stdout,"INFO: \n");
  478. break;
  479. case(NOISE):
  480. fprintf(stdout,"INFO: PUT NOISE IN THE SPECTRUM\n");
  481. fprintf(stdout,"INFO: \n");
  482. break;
  483. case(SCAT):
  484. fprintf(stdout,"INFO: RANDOMLY THIN OUT THE SPECTRUM\n");
  485. fprintf(stdout,"INFO: \n");
  486. fprintf(stdout,"INFO: FRQ-BLOCKS TO KEEP....Number of (randomly-chosen) blocks to keep, per window.\n");
  487. fprintf(stdout,"INFO: \n");
  488. fprintf(stdout,"INFO: FRQ RANGE OF BLOCK....(Rounded internally to a multiple of channel width).\n");
  489. fprintf(stdout,"INFO: ......................(default is width of 1 analysis channel).\n");
  490. fprintf(stdout,"INFO: \n");
  491. fprintf(stdout,"INFO: KEEP RANDOM SET ONLY..Number of blocks actually kept randomised\n");
  492. fprintf(stdout,"INFO: ......................between 1 & FRQ-BLOCKS TO KEEP.\n");
  493. fprintf(stdout,"INFO: \n");
  494. break;
  495. case(SPREAD):
  496. fprintf(stdout,"INFO: SPREAD PEAKS OF SPECTRUM, INTRODUCING CONTROLLED NOISINESS\n");
  497. fprintf(stdout,"INFO: \n");
  498. break;
  499. case(SHIFT):
  500. fprintf(stdout,"INFO: LINEAR FREQUENCY SHIFT OF (PART OF) THE SPECTRUM\n");
  501. fprintf(stdout,"INFO: \n");
  502. fprintf(stdout,"INFO: FRQ DIVIDE...............frq at which shifting starts or stops.\n");
  503. fprintf(stdout,"INFO: \n");
  504. fprintf(stdout,"INFO: LOW FRQ & HIGH FRQ.......define range inside or outside which shift takes place.\n");
  505. fprintf(stdout,"INFO: \n");
  506. fprintf(stdout,"INFO: LOG INTERP CHANGING FRQ..useful only if any input params are time-varying,\n");
  507. fprintf(stdout,"INFO:..........................and frqshift vals are all +ve, or all -ve.\n");
  508. fprintf(stdout,"INFO: \n");
  509. break;
  510. case(GLIS):
  511. fprintf(stdout,"INFO: CREATE GLISSANDI INSIDE THE (CHANGING) SPECTRAL ENVELOPE OF ORIGINAL SOUND\n");
  512. fprintf(stdout,"INFO: \n");
  513. fprintf(stdout,"INFO: GLISS RATE.......in semitones per second (-ve val for downward gliss).\n");
  514. fprintf(stdout,"INFO: \n");
  515. fprintf(stdout,"INFO: PARTIAL SPACING..in Hz for partials in inharmonic glide.\n");
  516. fprintf(stdout,"INFO: \n");
  517. fprintf(stdout,"INFO: HIGH FRQ LIMIT...is top of spectrum.\n");
  518. fprintf(stdout,"INFO: \n");
  519. break;
  520. case(WAVER):
  521. fprintf(stdout,"INFO: OSCILLATE BETWEEN HARMONIC AND INHARMONIC STATE\n");
  522. fprintf(stdout,"INFO: \n");
  523. fprintf(stdout,"INFO: MAX SPECTRAL STRETCH..is max spectral stretch in inharmonic state.\n");
  524. fprintf(stdout,"INFO: \n");
  525. fprintf(stdout,"INFO: EXPONENT..............defines type of stretch in inharmonic state.\n");
  526. fprintf(stdout,"INFO: \n");
  527. break;
  528. case(INVERT):
  529. fprintf(stdout,"INFO: INVERT THE SPECTRUM\n");
  530. fprintf(stdout,"INFO: \n");
  531. break;
  532. case(GLIDE):
  533. fprintf(stdout,"INFO: INTERPOLATE, LINEARLY, BETWEEN 2 SINGLE ANALYSIS WINDOWS\n");
  534. fprintf(stdout,"INFO: EXTRACTED WITH spec grab.\n");
  535. fprintf(stdout,"INFO: \n");
  536. break;
  537. case(BRIDGE):
  538. fprintf(stdout,"INFO: MAKE A BRIDGING-INTERPOLATION BETWEEN TWO SOUND SPECTRA\n");
  539. fprintf(stdout,"INFO: BY INTERPOLATING BETWEEN 2 TIME-SPECIFIED WINDOWS IN THE 2 INFILES.\n");
  540. fprintf(stdout,"INFO: \n");
  541. fprintf(stdout,"INFO: 2ND FILE OFFSET......time infile2 starts, relative to start of file1.\n");
  542. fprintf(stdout,"INFO: \n");
  543. fprintf(stdout,"INFO: FRQ INTERP AT START..fraction of 2nd sound's frq interpolated at START.\n");
  544. fprintf(stdout,"INFO: \n");
  545. fprintf(stdout,"INFO: AMP INTERP AT START..fraction of 2nd sound's amp interpolated at START.\n");
  546. fprintf(stdout,"INFO: .....................If an OFFSET is used, when these interps NOT set to zero,\n");
  547. fprintf(stdout,"INFO: .....................outsound starts from point where 2nd sound enters.\n");
  548. fprintf(stdout,"INFO: \n");
  549. fprintf(stdout,"INFO: FRQ INTERP AT END....fraction of 2nd sound's frq interpolated at END.\n");
  550. fprintf(stdout,"INFO: \n");
  551. fprintf(stdout,"INFO: AMP INTERP AT END....fraction of 2nd sound's amp interpolated at END.\n");
  552. fprintf(stdout,"INFO: .....................if these are set < 1.0\n");
  553. fprintf(stdout,"INFO: .....................outsound ends at end of 1st sound to end.\n");
  554. fprintf(stdout,"INFO: \n");
  555. fprintf(stdout,"INFO: STARTTIME IN FILE1.. of window where interpolation begins.\n");
  556. fprintf(stdout,"INFO: \n");
  557. fprintf(stdout,"INFO: ENDTIME IN FILE1.... of window where interpolation ends.\n");
  558. fprintf(stdout,"INFO: .....................if START and END are not specified\n");
  559. fprintf(stdout,"INFO: .....................interp runs from OFFSET to end of 1st file to end.\n");
  560. fprintf(stdout,"INFO: \n");
  561. break;
  562. case(MORPH):
  563. fprintf(stdout,"INFO: MORPH ONE SPECTRUM INTO ANOTHER.\n");
  564. fprintf(stdout,"INFO: \n");
  565. fprintf(stdout,"INFO: -------------------------------------------------------\n");
  566. fprintf(stdout,"INFO: MODES..\n");
  567. fprintf(stdout,"INFO: (1) interpolate LINEARLY (exponent 1)\n");
  568. fprintf(stdout,"INFO: or over a curve of increasing (exp >1) or decreasing (exp <1) slope.\n");
  569. fprintf(stdout,"INFO: (2) interpolate over a COSINUSOIDAL spline.\n");
  570. fprintf(stdout,"INFO: -------------------------------------------------------\n");
  571. fprintf(stdout,"INFO: PARAMETERS..\n");
  572. fprintf(stdout,"INFO: Start and End times for Interpolation of Channel Frequencies.\n");
  573. fprintf(stdout,"INFO: Start and End times for Interpolation of Channel Amplitudes.\n");
  574. fprintf(stdout,"INFO: Exponents of the Interpolations (see above).\n");
  575. fprintf(stdout,"INFO: (In COSIN mode, these skew the cosinusional interpolation).\n");
  576. fprintf(stdout,"INFO: 2nd FILE ENTRY TIME is time-delay of entry of 2nd file.\n");
  577. fprintf(stdout,"INFO: \n");
  578. break;
  579. case(PITCH):
  580. fprintf(stdout,"INFO: ATTEMPT TO EXTRACT PITCH FROM SPECTRAL DATA.\n" );
  581. fprintf(stdout,"INFO: \n");
  582. fprintf(stdout,"INFO: 1st OUTPUTFILE, if resynthesized, produces tone at detected pitch.\n");
  583. fprintf(stdout,"INFO: 2nd OUTPUTFILE contains the extracted pitch data.\n");
  584. fprintf(stdout,"INFO: In mode TO BINARY FILE this is a binary output file.\n");
  585. fprintf(stdout,"INFO: In mode TO TEXTFILE this is a brkpnt text file of time/pitch pairs.\n");
  586. fprintf(stdout,"INFO: \n");
  587. fprintf(stdout,"INFO: IN-TUNE RANGE................ range within which harmonics accepted as in tune.\n");
  588. fprintf(stdout,"INFO: \n");
  589. fprintf(stdout,"INFO: MIN WINDOWS TO CONFIRM PITCH..minimum number of adjacent windows that must be\n");
  590. fprintf(stdout,"INFO: ..............................pitched, for pitch-value to be registered.\n");
  591. fprintf(stdout,"INFO: \n");
  592. fprintf(stdout,"INFO: SIGNAL TO NOISE RATIO........ in decibels.\n");
  593. fprintf(stdout,"INFO: ..............................Windows more than this below the maximum level\n");
  594. fprintf(stdout,"INFO: ..............................in the sound, are assumed to be noise,\n");
  595. fprintf(stdout,"INFO: ..............................& any detected pitch is assumed spurious.\n");
  596. fprintf(stdout,"INFO: \n");
  597. fprintf(stdout,"INFO: VALID HARMONICS COUNT........ how many of loudest peaks in spectrum must be\n");
  598. fprintf(stdout,"INFO: ..............................harmonics to confirm sound is pitched.\n");
  599. fprintf(stdout,"INFO: \n");
  600. fprintf(stdout,"INFO: LOW PITCH LIMIT.............. frequency of LOWEST acceptable pitch.\n");
  601. fprintf(stdout,"INFO: \n");
  602. fprintf(stdout,"INFO: HIGH PITCH LIMIT..............frequency of HIGHEST acceptable pitch.\n");
  603. fprintf(stdout,"INFO: \n");
  604. fprintf(stdout,"INFO: DATAREDUCTION................ acceptable pitch-ratio error in data reduction.\n");
  605. fprintf(stdout,"INFO: \n");
  606. break;
  607. case(P_APPROX):
  608. fprintf(stdout,"INFO: MAKE AN APPROXIMATE COPY OF A PITCHFILE.\n");
  609. fprintf(stdout,"INFO: \n");
  610. fprintf(stdout,"INFO: PITCH SCATTER RANGE...Interval over which pitch +- randomly varies from orig.\n");
  611. fprintf(stdout,"INFO: TIME SCATTER RANGE....Time-interval by which pitchval can stray from orig time.\n");
  612. fprintf(stdout,"INFO: CONTOUR SCAN RANGE....Time-interval over which pitch contour scanned.\n");
  613. fprintf(stdout,"INFO: \n");
  614. break;
  615. case(P_EXAG):
  616. fprintf(stdout,"INFO: EXAGGERATE PITCH CONTOUR OF A PITCH DATA FILE.\n");
  617. fprintf(stdout,"INFO: \n");
  618. fprintf(stdout,"INFO: MEANPITCH...........pitch around which intervals stretched.\n");
  619. fprintf(stdout,"INFO: \n");
  620. break;
  621. case(P_INVERT):
  622. fprintf(stdout,"INFO: INVERT PITCH CONTOUR OF A PITCH DATA FILE.\n");
  623. fprintf(stdout,"INFO: \n");
  624. fprintf(stdout,"INFO: Required data is either '0' (if no mapping is required)\n");
  625. fprintf(stdout,"INFO: or a a textfile of paired values showing how intervals\n");
  626. fprintf(stdout,"INFO: (in, possibly fractional, semitones) are to be mapped\n");
  627. fprintf(stdout,"INFO: onto their inversions.\n");
  628. fprintf(stdout,"INFO: \n");
  629. fprintf(stdout,"INFO: INVERSION CENTRE...pitch around which pitchline inverted.\n");
  630. fprintf(stdout,"INFO: LOW PITCH LIMIT....lowest pitch permissible.\n");
  631. fprintf(stdout,"INFO: HIGH PITCH LIMIT...highest pitch permissible.\n");
  632. fprintf(stdout,"INFO: \n");
  633. break;
  634. case(P_QUANTISE):
  635. fprintf(stdout,"INFO: QUANTISE PITCHES IN A PITCH DATA FILE.\n");
  636. fprintf(stdout,"INFO: \n");
  637. fprintf(stdout,"INFO: Required data is a textfile of (possibly fractional) MIDI pitchvals\n");
  638. fprintf(stdout,"INFO: over which pitch to be quantised.\n");
  639. fprintf(stdout,"INFO: \n");
  640. fprintf(stdout,"INFO: DUPLICATE Q-SET IN ALL OCTAVES\n");
  641. fprintf(stdout,"INFO: ....causes entered pitches to be duplicated in all 8vas,\n");
  642. fprintf(stdout,"INFO: ....to generate actual quantisation set used.\n");
  643. fprintf(stdout,"INFO: \n");
  644. break;
  645. case(P_RANDOMISE):
  646. fprintf(stdout,"INFO: RANDOMISE PITCH LINE IN A PITCH DATA FILE.\n");
  647. fprintf(stdout,"INFO: \n");
  648. fprintf(stdout,"INFO: MAX INTERVAL OF STRAY..(semitones) is interval over which pitches can +- randomvary.\n");
  649. fprintf(stdout,"INFO: \n");
  650. fprintf(stdout,"INFO: TIMESTEP...............is max timestep between random pitch fluctuations.\n");
  651. fprintf(stdout,"INFO:........................Actual timesteps are random values less than this.\n");
  652. fprintf(stdout,"INFO: \n");
  653. fprintf(stdout,"INFO: RANGE SLEW.............e.g. 2: upward variation range twice that of downward.\n");
  654. fprintf(stdout,"INFO: .......................e.g -3: downward variation range 3 times that of upward.\n");
  655. fprintf(stdout,"INFO: \n");
  656. break;
  657. case(P_SMOOTH):
  658. fprintf(stdout,"INFO: SMOOTH PITCH CONTOUR IN A PITCH DATA FILE.\n");
  659. fprintf(stdout,"INFO: \n");
  660. fprintf(stdout,"INFO: TIMEFRAME..over which to interpolate pitch values.\n");
  661. fprintf(stdout,"INFO: \n");
  662. fprintf(stdout,"INFO: MEANPITCH..is pitch from which peaks measured for interpolation\n");
  663. fprintf(stdout,"INFO: ...........between PEAK value in each timeframe block of pitch values.\n");
  664. fprintf(stdout,"INFO: ...........(and must be within pitch range, in every timeframe block).\n");
  665. fprintf(stdout,"INFO: ...........Peak is maximum displacement from mean (up or down).\n");
  666. fprintf(stdout,"INFO: \n");
  667. break;
  668. case(P_SYNTH):
  669. fprintf(stdout,"INFO: SYNTHESIZE SPECTRUM OF A SOUND FOLLOWING PITCH IN INPUT PITCHFILE.\n");
  670. fprintf(stdout,"INFO: \n");
  671. fprintf(stdout,"INFO: PARTIAL LEVELS......level of each partial, in turn, starting from 1st.\n");
  672. fprintf(stdout,"INFO: Use as many or as few partials as required.\n");
  673. fprintf(stdout,"INFO: Levels must lie beween 0 and 1.\n");
  674. fprintf(stdout,"INFO: \n");
  675. break;
  676. case(P_GEN):
  677. fprintf(stdout,"INFO: CREATE A BINARY PITCHDATA FILE FROM INFORMATION IN A TEXTFILE.\n");
  678. fprintf(stdout,"INFO: \n");
  679. fprintf(stdout,"INFO: PITCH DATA......A file of pitch values and associated times, as time-value pairs.\n");
  680. fprintf(stdout,"INFO: ......................These may be note names (A-G), possibly followed by '#'(sharp) or 'b' (flat),\n");
  681. fprintf(stdout,"INFO: ......................all followed by an octave value (where 0 is octave starting at middle C).\n");
  682. fprintf(stdout,"INFO: ......................ALTERNATIVELY these may be numeric MIDI values (possibly fractional).\n");
  683. fprintf(stdout,"INFO: SAMPLE RATE OF GOAL SNDFILE.\n");
  684. fprintf(stdout,"INFO: ......................Typical use would be to generate a synthesized vowel stream,\n");
  685. fprintf(stdout,"INFO: ......................and this parameter specifies the sample rate of the output SOUND\n");
  686. fprintf(stdout,"INFO: ......................of any such subsequent process.\n");
  687. fprintf(stdout,"INFO: ANALYSIS POINTS.......(2-32768 (power of 2)): default 1024\n");
  688. fprintf(stdout,"INFO: ......................More points give better freq resolution\n");
  689. fprintf(stdout,"INFO: ......................but worse time-resolution (e.g. rapidly changing spectrum).\n");
  690. fprintf(stdout,"INFO: \n");
  691. fprintf(stdout,"INFO: OVERLAP...............Filter overlap factor (1-4): default 3\n");
  692. fprintf(stdout,"INFO: \n");
  693. break;
  694. case(P_INTERP):
  695. fprintf(stdout,"INFO: REMOVE UNPITCHED OR SILENT WINDOWS, BY INTERPOLATING BETWEEN EXISTING PITCHES.\n");
  696. fprintf(stdout,"INFO: \n");
  697. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  698. fprintf(stdout,"INFO: \n");
  699. fprintf(stdout,"INFO: 1) GLIDE ............ interpolated pitch moves smoothly from pitch\n");
  700. fprintf(stdout,"INFO: ..................... before noise-or-silence to pitch after it.\n");
  701. fprintf(stdout,"INFO: 1) SUSTAIN........... pitch before noise-or-silence is sustained\n");
  702. fprintf(stdout,"INFO: ..................... until a new pitch occurs.\n");
  703. fprintf(stdout,"INFO: \n");
  704. break;
  705. case(P_VOWELS):
  706. fprintf(stdout,"INFO: SYNTHESIZE (POSSIBLY CHANGING) VOWEL SPECTRUM OF SOUND FOLLOWING PITCHFILE PITCH.\n");
  707. fprintf(stdout,"INFO: \n");
  708. fprintf(stdout,"INFO: VOWELS......file containing paired times and vowels, where vowels can be....\n");
  709. fprintf(stdout,"INFO: ee as in 'heat' i as in 'hit' e as in 'pet' ai as in 'hate'\n");
  710. fprintf(stdout,"INFO: a as in 'pat' ar as in 'heart' o as in 'hot' or as in 'taught'\n");
  711. fprintf(stdout,"INFO: oa as in 'boat' u as in 'hood' oo as in 'mood'\n");
  712. fprintf(stdout,"INFO: xx as in Southern English 'hub'\n");
  713. fprintf(stdout,"INFO: x neutral vowel as in 'herb' or 'the'\n");
  714. fprintf(stdout,"INFO: aii as in Scottish educAted uu as in Scottish edUcated ui as in Scottish cOUld\n");
  715. fprintf(stdout,"INFO: n as in 'Now' m as in 'Make' r as in 'Raw' th as in 'THe'\n");
  716. fprintf(stdout,"INFO: \n");
  717. fprintf(stdout,"INFO: Times must start at zero, and increase.\n");
  718. fprintf(stdout,"INFO: \n");
  719. fprintf(stdout,"INFO: FORMANT HALF-WIDTH ........half-width of formant peaks, in Hz, as a fraction of formant centre-frq.\n");
  720. fprintf(stdout,"INFO: FORMANT PEAK STEEPNESS ....is steepness of the formant peaks.\n");
  721. fprintf(stdout,"INFO: FORMANT PEAK RANGE ........is the ratio of (max) peak range to (max) total range.\n");
  722. fprintf(stdout,"INFO: EMPHASIS ON FUNDAMENTAL ...is (relative) amplitude of fundamental, if it falls outside a formant.\n");
  723. fprintf(stdout,"INFO: HOARSENESS .........is extent of (random) variation of partial frqs from frequency of true harmonics.\n");
  724. fprintf(stdout,"INFO: \n");
  725. break;
  726. case(VFILT):
  727. fprintf(stdout,"INFO: IMPOSE (POSSIBLY CHANGING) VOWEL SPECTRUM ON A SOUND.\n");
  728. fprintf(stdout,"INFO: \n");
  729. fprintf(stdout,"INFO: VOWELS......file containing paired times and vowels, where vowels can be....\n");
  730. fprintf(stdout,"INFO: ee as in 'heat' i as in 'hit' e as in 'pet' ai as in 'hate'\n");
  731. fprintf(stdout,"INFO: a as in 'pat' ar as in 'heart' o as in 'hot' or as in 'taught'\n");
  732. fprintf(stdout,"INFO: oa as in 'boat' u as in 'hood' oo as in 'mood'\n");
  733. fprintf(stdout,"INFO: xx as in Southern English 'hub'\n");
  734. fprintf(stdout,"INFO: x neutral vowel as in 'herb' or 'the'\n");
  735. fprintf(stdout,"INFO: aii as in Scottish educAted uu as in Scottish edUcated ui as in Scottish cOUld\n");
  736. fprintf(stdout,"INFO: n as in 'Now' m as in 'Make' r as in 'Raw' th as in 'THe'\n");
  737. fprintf(stdout,"INFO: \n");
  738. fprintf(stdout,"INFO: Times must start at zero, and increase.\n");
  739. fprintf(stdout,"INFO: \n");
  740. fprintf(stdout,"INFO: FORMANT HALF-WIDTH .......half-width of formant peaks, in Hz, as a fraction of formant centre-frq.\n");
  741. fprintf(stdout,"INFO: FORMANT PEAK STEEPNESS ...is steepness of the formant peaks.\n");
  742. fprintf(stdout,"INFO: FORMANT PEAK RANGE .......is the ratio of (max) peak range to (max) total range.\n");
  743. fprintf(stdout,"INFO: THRESHOLD ................spectral window only affected if its level exceeds a proportion of vowel envelope level for window\n");
  744. fprintf(stdout,"INFO: ..........................Threshold is this proportion.\n");
  745. fprintf(stdout,"INFO: \n");
  746. break;
  747. case(P_INSERT):
  748. fprintf(stdout,"INFO: MARK AS UNPITCHED THOSE WINDOWS IN BINARY PITCHFILE BETWEEN GIVEN TIME-PAIRS.\n");
  749. fprintf(stdout,"INFO: \n");
  750. fprintf(stdout,"INFO: INSERTION TIMEPAIRS.......Times between which data is marked as unpitched.\n");
  751. fprintf(stdout,"INFO: Time can be given in seconds, or as sample-cnt in the corresponding soundfile.\n");
  752. fprintf(stdout,"INFO: \n");
  753. break;
  754. case(P_SINSERT):
  755. fprintf(stdout,"INFO: MARK AS SILENT THOSE WINDOWS IN BINARY PITCHFILE BETWEEN GIVEN TIME-PAIRS.\n");
  756. fprintf(stdout,"INFO: \n");
  757. fprintf(stdout,"INFO: INSERTION TIMEPAIRS.......Times between which data is marked as silent.\n");
  758. fprintf(stdout,"INFO: Time can be given in seconds, or as sample-cnt in the corresponding soundfile.\n");
  759. fprintf(stdout,"INFO: \n");
  760. break;
  761. case(P_PTOSIL):
  762. fprintf(stdout,"INFO: IN A BINARY PITCHFILE, CONVERT ALL PITCHED WINDOWS TO SILENCE.\n");
  763. break;
  764. case(P_NTOSIL):
  765. fprintf(stdout,"INFO: IN A BINARY PITCHFILE, CONVERT ALL UNPITCHED WINDOWS TO SILENCE.\n");
  766. break;
  767. case(ANALENV):
  768. fprintf(stdout,"INFO: EXTRACT THE WINDOW-LOUDNESS ENVELOPE OF AN ANALYSIS FILE.\n");
  769. fprintf(stdout,"INFO: \n");
  770. fprintf(stdout,"INFO: Extract the total loudness of each window\n");
  771. fprintf(stdout,"INFO: in format compatible with pitch or formant data taken from same analysis file.\n");
  772. fprintf(stdout,"INFO: \n");
  773. break;
  774. case(MAKE2):
  775. fprintf(stdout,"INFO: GENERATE SPECTRUM FROM PITCH, FORMANT AMD ENVELOPE DATA.\n");
  776. fprintf(stdout,"INFO: \n");
  777. fprintf(stdout,"INFO: outfile is analysis file which must be resynthesized to hear.\n");
  778. fprintf(stdout,"INFO: \n");
  779. break;
  780. case(P_TRANSPOSE):
  781. fprintf(stdout,"INFO: TRANSPOSES PITCHES IN PITCHDATA FILE BY CONSTANT NO OF SEMITONES.\n");
  782. fprintf(stdout,"INFO: \n");
  783. break;
  784. case(P_VIBRATO):
  785. fprintf(stdout,"INFO: ADD VIBRATO TO PITCH IN A PITCH DATA FILE.\n");
  786. fprintf(stdout,"INFO: \n");
  787. fprintf(stdout,"INFO: VIBRATO FRQ....frequency of vibrato itself (Hz).\n");
  788. fprintf(stdout,"INFO: VIBRATO RANGE..max interval vibrato moves from central pitch.\n");
  789. fprintf(stdout,"INFO: \n");
  790. break;
  791. case(P_CUT):
  792. fprintf(stdout,"INFO: CUT OUT AND KEEP A SEGMENT OF A BINARY PITCH-DATAFILE.\n");
  793. fprintf(stdout,"INFO: \n");
  794. break;
  795. case(P_FIX):
  796. fprintf(stdout,"INFO: MASSAGE PITCH DATA IN A BINARY PITCHFILE.\n");
  797. fprintf(stdout,"INFO: \n");
  798. fprintf(stdout,"INFO: If NOT in Instrument-Create or Bulk-Process mode,\n");
  799. fprintf(stdout,"INFO: \n");
  800. fprintf(stdout,"INFO: This is a GRAPHIC EDITOR FOR PITCH DATA.\n");
  801. fprintf(stdout,"INFO: and HELP is provided on the window which appears.\n");
  802. fprintf(stdout,"INFO: \n");
  803. fprintf(stdout,"INFO: OTHERWISE\n");
  804. fprintf(stdout,"INFO: \n");
  805. fprintf(stdout,"INFO: Pitchdata should first be viewed with PITCH VIEW (PITCH INFO menu)....\n");
  806. fprintf(stdout,"INFO: \n");
  807. fprintf(stdout,"INFO: THEN THE FOLLOWING RULES SHOULD BE OBSERVED.........\n");
  808. fprintf(stdout,"INFO: \n");
  809. fprintf(stdout,"INFO: (1)\n");
  810. fprintf(stdout,"INFO: When pitches are removed they are replaced by a 'no-pitch' indicator.\n");
  811. fprintf(stdout,"INFO: These (and any already existing unpitched windows in the file) can be\n");
  812. fprintf(stdout,"INFO: converted to pitch-data (by interpolation between adjacent pitches)\n");
  813. fprintf(stdout,"INFO: using the INTERPOLATE flag.\n");
  814. fprintf(stdout,"INFO: \n");
  815. fprintf(stdout,"INFO: (2)\n");
  816. fprintf(stdout,"INFO: With multiple flags, ORDER of operations inside program is....\n");
  817. fprintf(stdout,"INFO: REMOVE-TIMEWISE, REMOVE-FRQWISE, SMOOTH, FORCE-ENDVALS, INTERP\n");
  818. fprintf(stdout,"INFO: \n");
  819. break;
  820. case(REPITCH):
  821. fprintf(stdout,"INFO: GENERATE TRANSPOSITION DATA FROM 2 SETS OF PITCH DATA,\n" );
  822. fprintf(stdout,"INFO: OR TRANSPOSE PITCH DATA WITH TRANSPOSITION DATA,\n" );
  823. fprintf(stdout,"INFO: OR COMBINE 2 SETS OF TRANSPOSITION DATA TO FORM NEW TRANSPOSITION DATA,\n");
  824. fprintf(stdout,"INFO: PRODUCING BINARY DATAFILE OUTPUT.\n");
  825. fprintf(stdout,"INFO: \n");
  826. fprintf(stdout,"INFO: Input files may be binary files, or text brkpnt files BUT...\n");
  827. fprintf(stdout,"INFO: It's IMPOSSIBLE to generate binary outfile from exclusively brkpnt infiles.\n");
  828. fprintf(stdout,"INFO: \n");
  829. break;
  830. case(REPITCHB):
  831. fprintf(stdout,"INFO: GENERATE TRANSPOSITION DATA FROM 2 SETS OF PITCH DATA,\n" );
  832. fprintf(stdout,"INFO: OR TRANSPOSE PITCH DATA WITH TRANSPOSITION DATA,\n" );
  833. fprintf(stdout,"INFO: OR COMBINE 2 SETS OF TRANSPOSITION DATA TO FORM NEW TRANSPOSITION DATA,\n");
  834. fprintf(stdout,"INFO: PRODUCING A TIME/VAL BRKPNT TEXTFILE OUTPUT.\n");
  835. fprintf(stdout,"INFO: \n");
  836. fprintf(stdout,"INFO: Input files may be binary files, or text brkpnt files.\n");
  837. fprintf(stdout,"INFO: \n");
  838. fprintf(stdout,"INFO: DATAREDUCTION..is acceptable pitch error in brkpntfile data-reduction.\n");
  839. fprintf(stdout,"INFO: \n");
  840. break;
  841. case(TRNSF):
  842. fprintf(stdout,"INFO: TRANSPOSE SPECTRUM : BUT RETAIN ORIGINAL SPECTRAL ENVELOPE\n");
  843. fprintf(stdout,"INFO: \n");
  844. fprintf(stdout,"INFO: MODE names refer to the type of data which is to be used.\n");
  845. fprintf(stdout,"INFO: \n");
  846. fprintf(stdout,"INFO: MINFRQ...minimum frq, below which data is filtered out.\n");
  847. fprintf(stdout,"INFO: MAXFRQ...maximum frq, above which data is filtered out.\n");
  848. fprintf(stdout,"INFO: \n");
  849. break;
  850. case(TRNSP):
  851. fprintf(stdout,"INFO: TRANSPOSE SPECTRUM (SPECTRAL ENVELOPE ALSO MOVES)\n");
  852. fprintf(stdout,"INFO: \n");
  853. fprintf(stdout,"INFO: MODE names refer to the type of data which is to be used.\n");
  854. fprintf(stdout,"INFO: \n");
  855. fprintf(stdout,"INFO: MINFRQ...minimum frq, below which data is filtered out.\n");
  856. fprintf(stdout,"INFO: MAXFRQ...maximum frq, above which data is filtered out.\n");
  857. fprintf(stdout,"INFO: \n");
  858. break;
  859. case(FORMANTS):
  860. fprintf(stdout,"INFO: EXTRACT EVOLVING FORMANT ENVELOPE FROM AN ANALYSIS FILE.\n");
  861. fprintf(stdout,"INFO: \n");
  862. break;
  863. case(FORM):
  864. fprintf(stdout,"INFO: IMPOSE SPECTRAL ENVELOPE IN A FORMANTFILE\n");
  865. fprintf(stdout,"INFO: ON SPECTRUM IN AN ANALYSIS FILE.\n");
  866. fprintf(stdout,"INFO: \n");
  867. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  868. fprintf(stdout,"INFO: \n");
  869. fprintf(stdout,"INFO: REPLACE FORMANTS......New formants REPLACE existing formant envelope.\n");
  870. fprintf(stdout,"INFO: SUPERIMPOSE FORMANTS..New formants IMPOSED ON TOP OF existing formants.\n");
  871. fprintf(stdout,"INFO: \n");
  872. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  873. fprintf(stdout,"INFO: \n");
  874. fprintf(stdout,"INFO: LOW FRQ LIMIT...frq, below which spectrum is set to zero.\n");
  875. fprintf(stdout,"INFO: HIGH FRQ LIMIT..frq, above which spectrum is set to zero.\n");
  876. fprintf(stdout,"INFO: GAIN............adjustment to spectrum loudness (normally < 1.0).\n");
  877. fprintf(stdout,"INFO: \n");
  878. break;
  879. case(VOCODE):
  880. fprintf(stdout,"INFO: IMPOSE SPECTRAL ENVELOPE OF 2nd SOUND, ON 1st SOUND.\n");
  881. fprintf(stdout,"INFO: \n");
  882. fprintf(stdout,"INFO: LOW FRQ LIMIT...frq below which data is filtered out.\n");
  883. fprintf(stdout,"INFO: HIGH FRQ LIMIT..frq above which data is filtered out.\n");
  884. fprintf(stdout,"INFO: GAIN............adjustment to output level (normally < 1.0).\n");
  885. fprintf(stdout,"INFO: \n");
  886. break;
  887. case(FMNTSEE):
  888. fprintf(stdout,"INFO: CONVERT FORMANT DATA IN A BINARY FORMANTDATA FILE TO 'SNDFILE' FOR VIEWING.\n");
  889. fprintf(stdout,"INFO: \n");
  890. fprintf(stdout,"INFO: The resulting logarithmically scaled display indicates formant shapes,\n");
  891. fprintf(stdout,"INFO: but NOT the absolute amplitude values.\n");
  892. fprintf(stdout,"INFO: \n");
  893. fprintf(stdout,"INFO: DISPLAY FORMANTBAND DATA....displays information about formant banding used.\n");
  894. fprintf(stdout,"INFO: \n");
  895. fprintf(stdout,"INFO: WARNING: DO NOT ATTEMPT TO PLAY THE RESULTING 'SOUNDFILE'\n");
  896. fprintf(stdout,"INFO: \n");
  897. break;
  898. case(FORMSEE):
  899. fprintf(stdout,"INFO: EXTRACT FORMANTS FROM ANALFILE AND WRITE AS 'SNDFILE' FOR VIEWING.\n");
  900. fprintf(stdout,"INFO: \n");
  901. fprintf(stdout,"INFO: The resulting logarithmically scaled display indicates formant shapes,\n");
  902. fprintf(stdout,"INFO: but NOT the absolute amplitude values.\n");
  903. fprintf(stdout,"INFO: \n");
  904. fprintf(stdout,"INFO: DISPLAY IN SEMITONE BANDS does just that (Default: equal hz bands).\n");
  905. fprintf(stdout,"INFO: \n");
  906. fprintf(stdout,"INFO: WARNING: DO NOT ATTEMPT TO PLAY THE RESULTING 'SOUNDFILE'\n");
  907. fprintf(stdout,"INFO: \n");
  908. break;
  909. case(MAKE):
  910. fprintf(stdout,"INFO: GENERATE SPECTRUM FROM PITCH & FORMANT DATA ONLY.\n");
  911. fprintf(stdout,"INFO: \n");
  912. fprintf(stdout,"INFO: outfile is analysis file which must be resynthesized to hear.\n");
  913. fprintf(stdout,"INFO: \n");
  914. break;
  915. case(SUM):
  916. fprintf(stdout,"INFO: FIND SUM OF TWO SPECTRA.\n");
  917. fprintf(stdout,"INFO: \n");
  918. fprintf(stdout,"INFO: CROSSOVER is amount of 2nd spectrum added to 1st\n");
  919. fprintf(stdout,"INFO: \n");
  920. break;
  921. case(DIFF):
  922. fprintf(stdout,"INFO: FIND DIFFERENCE OF TWO SPECTRA.\n");
  923. fprintf(stdout,"INFO: \n");
  924. fprintf(stdout,"INFO: CROSSOVER is amount of 2nd spectrum subtracted from 1st.\n");
  925. fprintf(stdout,"INFO: \n");
  926. break;
  927. case(LEAF):
  928. fprintf(stdout,"INFO: INTERLEAVE WINDOWS FROM INFILES, LEAFSIZE WINDOWS PER LEAF.\n");
  929. fprintf(stdout,"INFO: \n");
  930. break;
  931. case(MAX):
  932. fprintf(stdout,"INFO: IN EACH CHANNEL, IN EACH WINDOW, TAKE MAX VAL AMONGST INPUT FILES.\n");
  933. fprintf(stdout,"INFO: \n");
  934. break;
  935. case(MEAN):
  936. fprintf(stdout,"INFO: GENERATE SPECTRAL 'MEAN' OF 2 SOUNDS.\n");
  937. fprintf(stdout,"INFO: \n");
  938. fprintf(stdout,"INFO: LOW FRQ LIMIT...... .of channels to average.\n");
  939. fprintf(stdout,"INFO: \n");
  940. fprintf(stdout,"INFO: HIGH FRQ LIMIT.......of channels to average.\n");
  941. fprintf(stdout,"INFO: \n");
  942. fprintf(stdout,"INFO: CHANNELS TO COMPARE..Number of significant chans to compare.\n");
  943. fprintf(stdout,"INFO: .....................Default: All within range.\n");
  944. fprintf(stdout,"INFO: \n");
  945. break;
  946. case(CROSS):
  947. fprintf(stdout,"INFO: REPLACE CHANNEL AMPLITUDES OF 1st FILE WITH THOSE OF 2nd.\n");
  948. fprintf(stdout,"INFO: \n");
  949. fprintf(stdout,"INFO: INTERPOLATION is degree of replacement.\n");
  950. fprintf(stdout,"INFO: \n");
  951. break;
  952. case(WINDOWCNT):
  953. fprintf(stdout,"INFO: RETURNS NUMBER OF ANALYSIS WINDOWS IN INFILE.\n");
  954. fprintf(stdout,"INFO: \n");
  955. break;
  956. case(CHANNEL):
  957. fprintf(stdout,"INFO: RETURNS CHANNEL NUMBER CORRESPONDING TO FREQUENCY GIVEN.\n");
  958. fprintf(stdout,"INFO: \n");
  959. break;
  960. case(FREQUENCY):
  961. fprintf(stdout,"INFO: RETURNS CENTRE FRQ OF CHANNEL SPECIFIED.\n");
  962. fprintf(stdout,"INFO: \n");
  963. break;
  964. case(LEVEL):
  965. fprintf(stdout,"INFO: CONVERTS (VARYING) LEVEL OF ANALFILE TO PSEUDO-SNDFILE\n");
  966. fprintf(stdout,"INFO: (1 WINDOW -> 1 SAMPLE)\n");
  967. fprintf(stdout,"INFO: \n");
  968. fprintf(stdout,"INFO: View with a sndfile display program. DO NOT ATTEMPT TO PLAY FILE!!\n");
  969. fprintf(stdout,"INFO: \n");
  970. break;
  971. case(OCTVU):
  972. fprintf(stdout,"INFO: DISPLAY TIMEVARYING AMPLITUDE OF SPECTRUM, WITHIN OCTAVE BANDS.\n");
  973. fprintf(stdout,"INFO: \n");
  974. fprintf(stdout,"INFO: TIMESTEP.........is timestep between viewing bands.\n");
  975. fprintf(stdout,"INFO: .................Band-energy is totalled over each timestep duration.\n");
  976. fprintf(stdout,"INFO: \n");
  977. fprintf(stdout,"INFO: FUNDAMENTAL FRQ..Bands centered on octave transpositions of fundamental.\n");
  978. fprintf(stdout,"INFO: \n");
  979. fprintf(stdout,"INFO: The reported values are RELATIVE levels only\n");
  980. fprintf(stdout,"INFO: and the lowest band includes all energy down to '0Hz'.\n");
  981. fprintf(stdout,"INFO: \n");
  982. fprintf(stdout,"INFO: OUTFILE is a text file\n");
  983. fprintf(stdout,"INFO: \n");
  984. break;
  985. case(PEAK):
  986. fprintf(stdout,"INFO: LOCATE TIME-VARYING ENERGY CENTRE OF SPECTRUM.\n");
  987. fprintf(stdout,"INFO: \n");
  988. fprintf(stdout,"INFO: LOW FRQ LIMIT..above which spectral search begins\n");
  989. fprintf(stdout,"INFO: TIME WINDOW....for energy averaging: in SECONDS\n");
  990. fprintf(stdout,"INFO: FRQ WINDOW.....for energy averaging: in SEMITONES\n");
  991. fprintf(stdout,"INFO: \n");
  992. fprintf(stdout,"INFO: OUTFILE is a text file of lines of data in form...\n");
  993. fprintf(stdout,"INFO: \n");
  994. fprintf(stdout,"INFO: WINDOW starttime endtime : PEB lofrq TO hifrq'\n");
  995. fprintf(stdout,"INFO: \n");
  996. fprintf(stdout,"INFO: (where 'PEB' means PEAK ENERGY BAND)\n");
  997. fprintf(stdout,"INFO: \n");
  998. break;
  999. case(REPORT):
  1000. fprintf(stdout,"INFO: REPORT ON LOCATION OF FREQUENCY PEAKS IN EVOLVING SPECTRUM,\n");
  1001. fprintf(stdout,"INFO: \n");
  1002. fprintf(stdout,"INFO: PEAKS TO FIND.......(max) number of peaks to find.\n");
  1003. fprintf(stdout,"INFO: LOW FRQ LIMIT.......bottom frequency to start peak search.\n");
  1004. fprintf(stdout,"INFO: HIGH FRQ LIMIT......top frequency to stop peak search.\n");
  1005. fprintf(stdout,"INFO: WINDOWS TO AVERAGE..number of windows over which peaks averaged.\n");
  1006. fprintf(stdout,"INFO: \n");
  1007. fprintf(stdout,"INFO: OUTFILE is a textfile\n");
  1008. fprintf(stdout,"INFO: \n");
  1009. break;
  1010. case(PRINT):
  1011. fprintf(stdout,"INFO: PRINT DATA IN ANALYSIS FILE AS TEXT TO FILE.\n");
  1012. fprintf(stdout,"INFO: \n");
  1013. fprintf(stdout,"INFO: TIME.......in file at which printout begins.\n");
  1014. fprintf(stdout,"INFO: WINDOWCNT..number of windows to print.\n");
  1015. fprintf(stdout,"INFO: \n");
  1016. fprintf(stdout,"INFO: Outfile is a textfile.\n");
  1017. fprintf(stdout,"INFO: \n");
  1018. fprintf(stdout,"INFO: WARNING: using more than a few windows will generate a huge textfile.\n");
  1019. fprintf(stdout,"INFO: \n");
  1020. break;
  1021. case(P_INFO):
  1022. fprintf(stdout,"INFO: DISPLAY INFORMATION ABOUT PITCHDATA IN PITCHFILE.\n");
  1023. fprintf(stdout,"INFO: \n");
  1024. fprintf(stdout,"INFO: Finds mean pitch, max and min pitch (with timings), as Hz and MIDI.\n");
  1025. fprintf(stdout,"INFO: And displays total range, in octaves and semitones.\n");
  1026. fprintf(stdout,"INFO: \n");
  1027. break;
  1028. case(P_ZEROS):
  1029. fprintf(stdout,"INFO: SHOWS WHETHER PITCHFILE CONTAINS UNINTERPOLATED ZEROS (UNPITCHED WINDOWS).\n");
  1030. fprintf(stdout,"INFO: \n");
  1031. break;
  1032. case(P_SEE):
  1033. fprintf(stdout,"INFO: CONVERT BINARY PITCHFILE OR TRANSPOSITION-FILE TO PSEUDO-SNDFILE, TO VIEW.\n");
  1034. fprintf(stdout,"INFO: \n");
  1035. fprintf(stdout,"INFO: SEE PITCH\n");
  1036. fprintf(stdout,"INFO: \n");
  1037. fprintf(stdout,"INFO: ........SCALE FACTOR multiplies pitch vals, for ease of viewing.\n");
  1038. fprintf(stdout,"INFO: ........Pitch data scaled by (e.g.) 100 can be read directly from 'sndfile'\n");
  1039. fprintf(stdout,"INFO: ........(Remembering to divide numeric values by 100).\n");
  1040. fprintf(stdout,"INFO: \n");
  1041. fprintf(stdout,"INFO: SEE TRANSPOSITION\n");
  1042. fprintf(stdout,"INFO: \n");
  1043. fprintf(stdout,"INFO: ........Transposition data is automatically scaled to half max range,\n");
  1044. fprintf(stdout,"INFO: ........And displayed in log format\n");
  1045. fprintf(stdout,"INFO: ........giving a schematic idea ONLY, of transposition data.\n");
  1046. fprintf(stdout,"INFO: \n");
  1047. fprintf(stdout,"INFO: View with a sndfile display program. DO NOT ATTEMPT TO PLAY FILE!!\n");
  1048. fprintf(stdout,"INFO: \n");
  1049. break;
  1050. case(P_HEAR):
  1051. fprintf(stdout,"INFO: CONVERT BINARY PITCHFILE TO ANALYSIS TESTTONE FILE.\n");
  1052. fprintf(stdout,"INFO: (RESYNTHESISE TO HEAR PITCH).\n");
  1053. fprintf(stdout,"INFO: \n");
  1054. break;
  1055. case(P_WRITE):
  1056. fprintf(stdout,"INFO: CONVERT A BINARY PITCH-DATAFILE TO A TIME/FRQ BRKPNT TEXTFILE.\n");
  1057. fprintf(stdout,"INFO: \n");
  1058. fprintf(stdout,"INFO: DATA REDUCTION acceptable pitch error in brkpntfile data-reduction.\n");
  1059. fprintf(stdout,"INFO: \n");
  1060. break;
  1061. case(DISTORT):
  1062. fprintf(stdout,"INFO: MODIFY SHAPE OF 'WAVECYCLES'\n");
  1063. fprintf(stdout,"INFO: \n");
  1064. fprintf(stdout,"INFO: Works on MONO files only\n");
  1065. fprintf(stdout,"INFO: \n");
  1066. break;
  1067. case(DISTORT_ENV):
  1068. fprintf(stdout,"INFO: IMPOSE ENVELOPE OVER EACH GROUP OF cyclecnt 'WAVECYCLES'\n");
  1069. fprintf(stdout,"INFO: \n");
  1070. fprintf(stdout,"INFO: CYCLE-GROUP COUNT....is number of wavecycles under a single envelope.\n");
  1071. fprintf(stdout,"INFO: \n");
  1072. fprintf(stdout,"INFO: RISE-DECAY EXPONENT..is exponent for envelope rise or decay:\n");
  1073. fprintf(stdout,"INFO: .....................If OMMITED envelope rise/decay is linear.\n");
  1074. fprintf(stdout,"INFO: \n");
  1075. fprintf(stdout,"INFO: TROUGHING............is trough of envelope (0-1: default 0).\n");
  1076. fprintf(stdout,"INFO: \n");
  1077. fprintf(stdout,"INFO: in USER-DEFINED MODE\n");
  1078. fprintf(stdout,"INFO: \n");
  1079. fprintf(stdout,"INFO: Required data is a textfile of time/val(0-1) pairs defining an envelope,\n");
  1080. fprintf(stdout,"INFO: where time units are arbitrary\n");
  1081. fprintf(stdout,"INFO: as the envelope is stretched to each cycle(set) duration.\n");
  1082. fprintf(stdout,"INFO: \n");
  1083. fprintf(stdout,"INFO: Works on MONO files only\n");
  1084. fprintf(stdout,"INFO: \n");
  1085. break;
  1086. case(DISTORT_AVG):
  1087. fprintf(stdout,"INFO: AVERAGE THE WAVESHAPE OVER N 'WAVECYCLES'\n");
  1088. fprintf(stdout,"INFO: \n");
  1089. fprintf(stdout,"INFO: CYCLE-GROUP COUNT..is number of cycles to average over ( > 1)\n");
  1090. fprintf(stdout,"INFO: MAX WAVELEN........max permissible wavelength in seconds.\n");
  1091. fprintf(stdout,"INFO: SKIPCYCLES:........number of wavecycles to skip at start of file\n");
  1092. fprintf(stdout,"INFO: \n");
  1093. fprintf(stdout,"INFO: Works on MONO files only\n");
  1094. fprintf(stdout,"INFO: \n");
  1095. break;
  1096. case(DISTORT_OMT):
  1097. fprintf(stdout,"INFO: OMIT A OUT OF EVERY B 'WAVECYCLES' REPLACING THEM BY SILENCE\n");
  1098. fprintf(stdout,"INFO: B van vary in time, but cannot be > A (!)\n");
  1099. fprintf(stdout,"INFO: \n");
  1100. fprintf(stdout,"INFO: Works on MONO files only\n");
  1101. fprintf(stdout,"INFO: \n");
  1102. break;
  1103. case(DISTORT_MLT):
  1104. fprintf(stdout,"INFO: DISTORTION BY MULTIPLYING WAVECYCLE FREQUENCY.\n");
  1105. fprintf(stdout,"INFO: \n");
  1106. fprintf(stdout,"INFO: try SMOOTHED flag if glitches appear.\n");
  1107. fprintf(stdout,"INFO: \n");
  1108. fprintf(stdout,"INFO: Works on MONO files only\n");
  1109. fprintf(stdout,"INFO: \n");
  1110. break;
  1111. case(DISTORT_DIV):
  1112. fprintf(stdout,"INFO: DISTORTION BY DIVIDING WAVECYCLE FREQUENCY.\n");
  1113. fprintf(stdout,"INFO: \n");
  1114. fprintf(stdout,"INFO: N = divider (integer only: range 2-16)\n");
  1115. fprintf(stdout,"INFO: INTERPOLATED........slower, but cleaner.\n");
  1116. fprintf(stdout,"INFO: \n");
  1117. fprintf(stdout,"INFO: Works on MONO files only\n");
  1118. fprintf(stdout,"INFO: \n");
  1119. break;
  1120. case(DISTORT_HRM):
  1121. fprintf(stdout,"INFO: HARMONIC DISTORTION BY SUPERIMPOSING 'HARMONICS' ONTO 'WAVECYCLES'.\n");
  1122. fprintf(stdout,"INFO: \n");
  1123. fprintf(stdout,"INFO: Required data is a textfile containing harmonic_no/amplitude pairs.\n");
  1124. fprintf(stdout,"INFO: where amplitude of src sound is taken to be 1.0\n");
  1125. fprintf(stdout,"INFO: \n");
  1126. fprintf(stdout,"INFO: PRE_ATTENUATION.....is applied to input sound before processing.\n");
  1127. fprintf(stdout,"INFO: \n");
  1128. fprintf(stdout,"INFO: Works on MONO files only\n");
  1129. fprintf(stdout,"INFO: \n");
  1130. break;
  1131. case(DISTORT_FRC):
  1132. fprintf(stdout,"INFO: SUPERIMPOSE MINIATURE COPIES OF SRC 'WAVECYCLES' ONTO THEMSELVES.\n");
  1133. fprintf(stdout,"INFO: \n");
  1134. fprintf(stdout,"INFO: SCALING FACTOR.....(integer) division of scale of src wave.\n");
  1135. fprintf(stdout,"INFO: RELATIVE LOUDNESS..loudness of scaled component, relative to src (1.0).\n");
  1136. fprintf(stdout,"INFO: PRE_ATTENUATION....applied to input sound before processing.\n");
  1137. fprintf(stdout,"INFO: \n");
  1138. fprintf(stdout,"INFO: Works on MONO files only\n");
  1139. fprintf(stdout,"INFO: \n");
  1140. break;
  1141. case(DISTORT_REV):
  1142. fprintf(stdout,"INFO: CYCLE_REVERSAL DISTORTION.'WAVECYCLES' REVERSED IN GROUPS.\n");
  1143. fprintf(stdout,"INFO: \n");
  1144. fprintf(stdout,"INFO: CYCLE-GROUP COUNT...Number of cycles (>0) in reversed groups.\n");
  1145. fprintf(stdout,"INFO: \n");
  1146. fprintf(stdout,"INFO: Works on MONO files only\n");
  1147. fprintf(stdout,"INFO: \n");
  1148. break;
  1149. case(DISTORT_SHUF):
  1150. fprintf(stdout,"INFO: DISTORTION BY SHUFFLING 'WAVECYCLES'\n");
  1151. fprintf(stdout,"INFO: \n");
  1152. fprintf(stdout,"INFO: Required data is 2 strings of letters, separated by a '-' or ':'\n");
  1153. fprintf(stdout,"INFO: The first string is the DOMAIN, and the 2nd, the IMAGE.\n");
  1154. fprintf(stdout,"INFO: e.g. 'abc-abbabcc'\n");
  1155. fprintf(stdout,"INFO: \n");
  1156. fprintf(stdout,"INFO: DOMAIN.\n");
  1157. fprintf(stdout,"INFO: \n");
  1158. fprintf(stdout,"INFO: Letters represent group of consecutive wavecycles.\n");
  1159. fprintf(stdout,"INFO: e.g. 'abcd'\n");
  1160. fprintf(stdout,"INFO: \n");
  1161. fprintf(stdout,"INFO: IMAGE.\n");
  1162. fprintf(stdout,"INFO: \n");
  1163. fprintf(stdout,"INFO: any permutation of, or selection from, the domain letters.\n");
  1164. fprintf(stdout,"INFO: (domain letters may be omitted or repeated in the image string).\n");
  1165. fprintf(stdout,"INFO: e.g. 'aaaaaaadaaa'\n");
  1166. fprintf(stdout,"INFO: \n");
  1167. fprintf(stdout,"INFO: CYCLE-GROUP COUNT..(integer) number of wavecycles in groups to operate on.\n");
  1168. fprintf(stdout,"INFO: SKIP CYCLES .......(integer) number of wavecycles to skip at start of file\n");
  1169. fprintf(stdout,"INFO: \n");
  1170. fprintf(stdout,"INFO: Works on MONO files only\n");
  1171. fprintf(stdout,"INFO: \n");
  1172. break;
  1173. case(DISTORT_RPT):
  1174. fprintf(stdout,"INFO: TIMESTRETCH FILE BY REPEATING 'WAVECYCLES'\n");
  1175. fprintf(stdout,"INFO: \n");
  1176. fprintf(stdout,"INFO: MULTIPLIER:..........(integer) number of times each wavecycle(grp) repeats.\n");
  1177. fprintf(stdout,"INFO: CYCLE-GROUP COUNT:...(integer) number wavecycles in repeated groups.\n");
  1178. fprintf(stdout,"INFO: SKIP CYCLES:.........(integer) number of wavecycles to skip at start of file\n");
  1179. fprintf(stdout,"INFO: \n");
  1180. fprintf(stdout,"INFO: Works on MONO files only\n");
  1181. fprintf(stdout,"INFO: \n");
  1182. break;
  1183. case(DISTORT_RPT2):
  1184. fprintf(stdout,"INFO: REPEAT 'WAVECYCLES' THEN SKIP CYCLES TO AVOID TIMESTRETCHING FILE\n");
  1185. fprintf(stdout,"INFO: \n");
  1186. fprintf(stdout,"INFO: MULTIPLIER:..........(integer) number of times each wavecycle(grp) repeats.\n");
  1187. fprintf(stdout,"INFO: CYCLE-GROUP COUNT:...(integer) number wavecycles in repeated groups.\n");
  1188. fprintf(stdout,"INFO: SKIP CYCLES:.........(integer) number of wavecycles to skip at start of file\n");
  1189. fprintf(stdout,"INFO: \n");
  1190. fprintf(stdout,"INFO: Works on MONO files only\n");
  1191. fprintf(stdout,"INFO: \n");
  1192. break;
  1193. case(DISTORT_RPTFL):
  1194. fprintf(stdout,"INFO: TIMESTRETCH FILE BY REPEATING 'WAVECYCLES' ABOVE A CERTAIN WAVELENGTH\n");
  1195. fprintf(stdout,"INFO: \n");
  1196. fprintf(stdout,"INFO: MULTIPLIER:..........(integer) number of times each wavecycle(grp) repeats.\n");
  1197. fprintf(stdout,"INFO: CYCLE-GROUP COUNT:...(integer) number wavecycles in repeated groups.\n");
  1198. fprintf(stdout,"INFO: SKIP CYCLES:.........(integer) number of wavecycles to skip at start of file\n");
  1199. fprintf(stdout,"INFO: HIGH FRQ LIMIT:.......Frequency below which wavecycles are counted.\n");
  1200. fprintf(stdout,"INFO: \n");
  1201. fprintf(stdout,"INFO: Works on MONO files only\n");
  1202. fprintf(stdout,"INFO: \n");
  1203. break;
  1204. case(DISTORT_INTP):
  1205. fprintf(stdout,"INFO: TIMESTRETCH FILE BY REPEATING 'WAVECYCLES' & INTERPOLATING BETWEEN THEM.\n");
  1206. fprintf(stdout,"INFO: \n");
  1207. fprintf(stdout,"INFO: MULTIPLIER: (integer) is number of times each wavecycle repeats.\n");
  1208. fprintf(stdout,"INFO: SKIPCYCLES: (integer) is number of wavecycles to skip at start of file\n");
  1209. fprintf(stdout,"INFO: \n");
  1210. fprintf(stdout,"INFO: Works on MONO files only\n");
  1211. fprintf(stdout,"INFO: \n");
  1212. break;
  1213. case(DISTORT_DEL):
  1214. fprintf(stdout,"INFO: TIMECONTRACT FILE BY DELETING 'WAVECYCLES'\n");
  1215. fprintf(stdout,"INFO: \n");
  1216. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  1217. fprintf(stdout,"INFO: \n");
  1218. fprintf(stdout,"INFO: IN GIVEN ORDER:..1 in CYCLECNT wavecycle(group)s retained\n");
  1219. fprintf(stdout,"INFO: RETAIN LOUDEST:..Strongest 1 in CYCLECNT wavecycle(group)s retained\n");
  1220. fprintf(stdout,"INFO: DELETE WEAKEST:..Weakest 1 in CYCLECNT wavecycle(group)s deleted\n");
  1221. fprintf(stdout,"INFO: \n");
  1222. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  1223. fprintf(stdout,"INFO: \n");
  1224. fprintf(stdout,"INFO: CYCLE-GROUP COUNT..(integer) number of wavecycles in deleted groups.\n");
  1225. fprintf(stdout,"INFO: SKIPCYCLES:........(integer) number of wavecycles to skip at start of file\n");
  1226. fprintf(stdout,"INFO: \n");
  1227. fprintf(stdout,"INFO: Works on MONO files only\n");
  1228. fprintf(stdout,"INFO: \n");
  1229. break;
  1230. case(DISTORT_RPL):
  1231. fprintf(stdout,"INFO: STRONGEST WAVECYCLE, IN EACH WAVECYCLE GROUP, REPLACES OTHERS\n");
  1232. fprintf(stdout,"INFO: \n");
  1233. fprintf(stdout,"INFO: CYCLE-GROUP COUNT..(integer) number of wavecycles in group of replacements.\n");
  1234. fprintf(stdout,"INFO: SKIP CYCLES........(integer) number of wavecycles to skip at start of file\n");
  1235. fprintf(stdout,"INFO: \n");
  1236. fprintf(stdout,"INFO: Works on MONO files only\n");
  1237. fprintf(stdout,"INFO: \n");
  1238. break;
  1239. case(DISTORT_TEL):
  1240. fprintf(stdout,"INFO: TIMECONTRACT SOUND BY TELESCOPING cyclecnt 'WAVECYCLES' TO 1\n");
  1241. fprintf(stdout,"INFO: \n");
  1242. fprintf(stdout,"INFO: CYCLE-GROUP COUNT....sizeof group to telescope.\n");
  1243. fprintf(stdout,"INFO: SKIP CYCLES..........(integer) number of wavecycles to skip at start of file\n");
  1244. fprintf(stdout,"INFO: TO AVERAGE CYCLELEN..telescopes to average cyclelen in group.(Default: telescope to longest.)\n");
  1245. fprintf(stdout,"INFO: \n");
  1246. fprintf(stdout,"INFO: Works on MONO files only\n");
  1247. fprintf(stdout,"INFO: \n");
  1248. break;
  1249. case(DISTORT_FLT):
  1250. fprintf(stdout,"INFO: TIMECONTRACT SOUND BY FILTERING OUT 'WAVECYCLES'\n");
  1251. fprintf(stdout,"INFO: EXCLUDED BY FRQ LIMITS\n");
  1252. fprintf(stdout,"INFO: \n");
  1253. fprintf(stdout,"INFO: SKIP CYCLES.....(integer) number of wavecycles to skip at start of file\n");
  1254. fprintf(stdout,"INFO: \n");
  1255. fprintf(stdout,"INFO: N.B. timevarying freq1, freq2 may not cross each other, nor be equal.\n");
  1256. fprintf(stdout,"INFO: \n");
  1257. fprintf(stdout,"INFO: Works on MONO files only\n");
  1258. fprintf(stdout,"INFO: \n");
  1259. break;
  1260. case(DISTORT_INT):
  1261. fprintf(stdout,"INFO: TIME-DOMAIN INTERACTION OF SOUNDS.\n");
  1262. fprintf(stdout,"INFO: \n");
  1263. fprintf(stdout,"INFO: MODES-------------------------------------------------------\n");
  1264. fprintf(stdout,"INFO: \n");
  1265. fprintf(stdout,"INFO: INTERLEAVE..wavecycles from the two infiles are interleaved.\n");
  1266. fprintf(stdout,"INFO: RESIZE......wavecycle-lengths of 1st file are imposed on wavecycles of 2nd\n");
  1267. fprintf(stdout,"INFO: \n");
  1268. fprintf(stdout,"INFO: Works on MONO files only\n");
  1269. fprintf(stdout,"INFO: \n");
  1270. break;
  1271. case(DISTORT_CYCLECNT):
  1272. fprintf(stdout,"INFO: COUNT 'WAVECYCLES' IN SNDFILE.\n");
  1273. fprintf(stdout,"INFO: \n");
  1274. fprintf(stdout,"INFO: Works on MONO files only\n");
  1275. fprintf(stdout,"INFO: \n");
  1276. break;
  1277. case(DISTORT_PCH):
  1278. fprintf(stdout,"INFO: PITCHWARP 'WAVECYCLES' OF SOUND.\n");
  1279. fprintf(stdout,"INFO: \n");
  1280. fprintf(stdout,"INFO: SKIP CYCLES....(integer) number of wavecycles to skip at start of file\n");
  1281. fprintf(stdout,"INFO: \n");
  1282. fprintf(stdout,"INFO: Works on MONO files only\n");
  1283. fprintf(stdout,"INFO: \n");
  1284. break;
  1285. case(DISTORT_OVERLOAD):
  1286. fprintf(stdout,"INFO: CLIP THE SOUND AND ADD DISTORTION WAVEFORM OVER THE CLIPPED PORTIONS.\n");
  1287. fprintf(stdout,"INFO: \n");
  1288. fprintf(stdout,"INFO: MODES-------------------------------------------------------\n");
  1289. fprintf(stdout,"INFO: \n");
  1290. fprintf(stdout,"INFO: NOISE.........peaks of signal replaced by noise.\n");
  1291. fprintf(stdout,"INFO: WAVEFORM......peaks of signal replaced by signal of given frequency.\n");
  1292. fprintf(stdout,"INFO: \n");
  1293. fprintf(stdout,"INFO: GATE LEVEL WHERE SIGNAL IS CLIPPED....level at which signal is clipped\n");
  1294. fprintf(stdout,"INFO: DEPTH OF DISTORTION GLAZE....depth of distortion pattern imposed on clipped portions.\n");
  1295. fprintf(stdout,"INFO: FREQUENCY OF DISTORT SIGNAL...(mode WAVEFORM only) frequency of distortion signal.\n");
  1296. fprintf(stdout,"INFO: \n");
  1297. fprintf(stdout,"INFO: Works on MONO files only\n");
  1298. fprintf(stdout,"INFO: \n");
  1299. break;
  1300. case(DISTORT_PULSED):
  1301. fprintf(stdout,"INFO: IMPOSE AN IMPULSE STREAM OVER INPUT SOUND, OR OVER A CYCLING SEGMENT OF THAT SOUND.\n");
  1302. fprintf(stdout,"INFO: \n");
  1303. fprintf(stdout,"INFO: MODES-------------------------------------------------------\n");
  1304. fprintf(stdout,"INFO: \n");
  1305. fprintf(stdout,"INFO: IMPOSE....impose impulse stream on the input sound.\n");
  1306. fprintf(stdout,"INFO: SYNTH......select a specified duration of wavecycles from the input src, at a specified time,\n");
  1307. fprintf(stdout,"INFO: and use as a looped sound source on which the impulses are imposed.\n");
  1308. fprintf(stdout,"INFO: SYNTH2.....the same, but specify starttime as a samplecnt,\n");
  1309. fprintf(stdout,"INFO: and select a specified NUMBER of wavecycles.\n");
  1310. fprintf(stdout,"INFO: \n");
  1311. fprintf(stdout,"INFO: PARAMETERS-------------------------------------------------------\n");
  1312. fprintf(stdout,"INFO: \n");
  1313. fprintf(stdout,"INFO: IMPULSE ENVELOPE......... ...a breakpoint file describing the envelope shape of the impulse.\n");
  1314. fprintf(stdout,"INFO: whatever time units used will be scaled to the duration of the impulses.\n");
  1315. fprintf(stdout,"INFO: PULSE STREAM START-TIME IN SRC SOUND ...time in src sound where impulses begin.\n");
  1316. fprintf(stdout,"INFO: DURATION OF IMPULSE STREAM.............time for which impulses persist.\n");
  1317. fprintf(stdout,"INFO: FREQUENCY OF IMPULSES (HZ).............frequency of the impulses\n");
  1318. fprintf(stdout,"INFO: RANDOMISATION OF FREQUENCY OF IMPULSES........max amount of semitone wander.\n");
  1319. fprintf(stdout,"INFO: of the impulse are randomised, from impulse to impulse.\n");
  1320. fprintf(stdout,"INFO: RANDOMISATION OF TIME CONTOUR OF AN IMPULSE........time-positions of amplitude peaks & troughs\n");
  1321. fprintf(stdout,"INFO: of the impulse are randomised, from impulse to impulse.\n");
  1322. fprintf(stdout,"INFO: RANDOMISATION_OF_AMPLITUDE_CONTOUR_OF_AN_IMPULSE....shape created by amplitude peaks & troughs\n");
  1323. fprintf(stdout,"INFO: of the impulse is randomised, from impulse to impulse.\n");
  1324. fprintf(stdout,"INFO: DURATION (or NUMBER) OF WAVECYCLES TO GRAB AS SOUND SRC INSIDE IMPULSES......(SYNTHESIS MODES ONLY)\n");
  1325. fprintf(stdout,"INFO: at the specified starttime, wavecycles are chosen from src sound,\n");
  1326. fprintf(stdout,"INFO: and used as the 'waveform' on which the impulses are imposed\n");
  1327. fprintf(stdout,"INFO: SEMITONE TRANSPOSITION CONTOUR OF SOUND INSIDE EACH IMPULSE.....\n");
  1328. fprintf(stdout,"INFO: within each impulse, the sound material is pitchwarped, using the semitone contour defined here.\n");
  1329. fprintf(stdout,"INFO: MAX SEMITONE RANGE OF RANDOMISATION OF TRANSPOSITION CONTOUR............\n");
  1330. fprintf(stdout,"INFO: within each impulse, the transposition contour is itself randomised, from impulse to impulse.\n");
  1331. fprintf(stdout,"INFO: KEEP START OF SRC BEFORE IMPULSES BEGIN ... if impulses begin at a time beyond start of src sound,\n");
  1332. fprintf(stdout,"INFO: the opening unpulsed segment of the sound is retained in the output.\n");
  1333. fprintf(stdout,"INFO: KEEP END OF SRC AFTER IMPULSES FINISH ... if impulses end at a time before end of src sound,\n");
  1334. fprintf(stdout,"INFO: the closing unpulsed segment of the sound is retained in the output.\n");
  1335. fprintf(stdout,"INFO: \n");
  1336. fprintf(stdout,"INFO: Works on MONO files only\n");
  1337. fprintf(stdout,"INFO: \n");
  1338. break;
  1339. case(ZIGZAG):
  1340. fprintf(stdout,"INFO: READ BACK AND FORTH INSIDE SOUNDFILE.\n");
  1341. fprintf(stdout,"INFO: \n");
  1342. fprintf(stdout,"INFO: In mode USER SPECIFIED\n");
  1343. fprintf(stdout,"INFO: Required data is textfile containing sequence of times to zigzag between.\n");
  1344. fprintf(stdout,"INFO: Each step-between-times must be > (3 * splicelen).\n");
  1345. fprintf(stdout,"INFO: Successive zigsteps moving in same (time-)direction are concatenated.\n");
  1346. fprintf(stdout,"INFO: \n");
  1347. fprintf(stdout,"INFO: RANDOM SEED..a number to generate a replicable random sequence. (>0)\n");
  1348. fprintf(stdout,"INFO: .............enter same number on next program run, to get same outfile.\n");
  1349. fprintf(stdout,"INFO: .............(Default: (0) random sequence is different every time).\n");
  1350. fprintf(stdout,"INFO: \n");
  1351. break;
  1352. case(LOOP):
  1353. fprintf(stdout,"INFO: LOOP INSIDE SOUNDFILE.\n");
  1354. fprintf(stdout,"INFO: \n");
  1355. fprintf(stdout,"INFO: SEARCHFIELD........makes step advance irregular, within timeframe of SEARCHFIELD.\n");
  1356. fprintf(stdout,"INFO: \n");
  1357. fprintf(stdout,"INFO: FROM INFILE START..flag forces outfile to play from beginning of infile\n");
  1358. fprintf(stdout,"INFO: ...................(even if looping doesn't begin there).\n");
  1359. fprintf(stdout,"INFO: \n");
  1360. break;
  1361. case(SCRAMBLE):
  1362. fprintf(stdout,"INFO: SCRAMBLE THE SOUND BY CUTTING RANDOMLY AND REORGANISING CUT CHUNKS RANDOMLY\n");
  1363. fprintf(stdout,"INFO: \n");
  1364. fprintf(stdout,"INFO: MODES---------------------------------------------------------------------\n");
  1365. fprintf(stdout,"INFO: \n");
  1366. fprintf(stdout,"INFO: COMPLETELY RANDOM........Random chunks cut from file, and spliced end to end.\n");
  1367. fprintf(stdout,"INFO: \n");
  1368. fprintf(stdout,"INFO: SCRAMBLE SRC:THEN AGAIN..Whole file is cut into random chunks, and these rearranged\n");
  1369. fprintf(stdout,"INFO: .........................then this process is repeated differently.. and again..etc\n");
  1370. fprintf(stdout,"INFO: \n");
  1371. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------------\n");
  1372. fprintf(stdout,"INFO: \n");
  1373. fprintf(stdout,"INFO: MIN CHUNKLEN.........minimum chunklen to cut.\n");
  1374. fprintf(stdout,"INFO: \n");
  1375. fprintf(stdout,"INFO: MAX CHUNKLEN.........maximum chunklen to cut.\n");
  1376. fprintf(stdout,"INFO: \n");
  1377. fprintf(stdout,"INFO: CHUNK LENGTH.........average chunklen to cut.\n");
  1378. fprintf(stdout,"INFO: \n");
  1379. fprintf(stdout,"INFO: SCATTER COEFFICIENT..Randomisation of chunk lengths.\n");
  1380. fprintf(stdout,"INFO: \n");
  1381. fprintf(stdout,"INFO: SEED VALUE...........same seed-number producea identical output on rerun\n");
  1382. fprintf(stdout,"INFO: .....................(Default: (0) random sequence is different every time).\n");
  1383. fprintf(stdout,"INFO: \n");
  1384. fprintf(stdout,"INFO: RUN FROM SND START:..wherever first randomly located chunk is\n");
  1385. fprintf(stdout,"INFO: .....................outfile plays up to its start before scrambling.\n");
  1386. fprintf(stdout,"INFO: \n");
  1387. fprintf(stdout,"INFO: RUN TO SND END:......wherever last randomly located chunk is\n");
  1388. fprintf(stdout,"INFO: .....................outfile plays on to end of src sound.\n");
  1389. fprintf(stdout,"INFO: \n");
  1390. break;
  1391. case(ITERATE):
  1392. fprintf(stdout,"INFO: ITERATE AN INPUT SOUND IN A FLUID MANNER\n");
  1393. fprintf(stdout,"INFO: \n");
  1394. fprintf(stdout,"INFO: **** WARNING: Do NOT use with large files. ****\n");
  1395. fprintf(stdout,"INFO: \n");
  1396. fprintf(stdout,"INFO: DELAY..................(average) delay between iterations. Default:infile dur.\n");
  1397. fprintf(stdout,"INFO: \n");
  1398. fprintf(stdout,"INFO: PITCH SCATTER..........max of random pitchshift of each iteration: semitones\n");
  1399. fprintf(stdout,"INFO: \n");
  1400. fprintf(stdout,"INFO: AMPLITUDE SCATTER......max of random amp-reduction on each iteration.\n");
  1401. fprintf(stdout,"INFO: \n");
  1402. fprintf(stdout,"INFO: PROGRESSIVE FADE.......(average) amplitude fade beween iterations.\n");
  1403. fprintf(stdout,"INFO: \n");
  1404. fprintf(stdout,"INFO: OVERALL GAIN...........(special) value 0, gives best guess for no distortion.\n");
  1405. fprintf(stdout,"INFO: \n");
  1406. fprintf(stdout,"INFO: SEED RANDOM GENERATOR..same number produces identical output on rerun,\n");
  1407. fprintf(stdout,"INFO: \n");
  1408. break;
  1409. case(ITERATE_EXTEND):
  1410. fprintf(stdout,"INFO: EXTEND A SOUND BY FREEZING A SPECIFIED PART OF IT, BY FLUID ITERATION\n");
  1411. fprintf(stdout,"INFO: \n");
  1412. fprintf(stdout,"INFO: **** WARNING: Do NOT use with large files. ****\n");
  1413. fprintf(stdout,"INFO: \n");
  1414. fprintf(stdout,"INFO: MODES----------------------------------------------------------------\n");
  1415. fprintf(stdout,"INFO: \n");
  1416. fprintf(stdout,"INFO: 1) Specify (minimum) duration of output.\n");
  1417. fprintf(stdout,"INFO: 2) Specify number of repetitions in extended segment.\n");
  1418. fprintf(stdout,"INFO: \n");
  1419. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------------\n");
  1420. fprintf(stdout,"INFO: \n");
  1421. fprintf(stdout,"INFO: TIME WHEN ITERATED SEGMENT ENDS\n");
  1422. fprintf(stdout,"INFO: if there is portion of original sound beyond the segment to be extended,\n");
  1423. fprintf(stdout,"INFO: output duration will be greater than this parameter value.\n");
  1424. fprintf(stdout,"INFO: \n");
  1425. fprintf(stdout,"INFO: DELAY..................(average) delay between iterations. Default:infile dur.\n");
  1426. fprintf(stdout,"INFO: \n");
  1427. fprintf(stdout,"INFO: PITCH SCATTER..........max of random pitchshift of each iteration: semitones\n");
  1428. fprintf(stdout,"INFO: \n");
  1429. fprintf(stdout,"INFO: AMPLITUDE SCATTER......max of random amp-reduction on each iteration.\n");
  1430. fprintf(stdout,"INFO: \n");
  1431. fprintf(stdout,"INFO: START OF TIME FREEZE...time at which freezing iteration begins.\n");
  1432. fprintf(stdout,"INFO: \n");
  1433. fprintf(stdout,"INFO: END OF TIME FREEZE.....time at which freezing iteration ends.\n");
  1434. fprintf(stdout,"INFO: \n");
  1435. fprintf(stdout,"INFO: GAIN OF FROZEN SEGMENT.....multiplies output level of frozen segment.\n");
  1436. fprintf(stdout,"INFO: \n");
  1437. fprintf(stdout,"INFO: SEED RANDOM GENERATOR..same number produces identical output on rerun,\n");
  1438. fprintf(stdout,"INFO: \n");
  1439. break;
  1440. case(DRUNKWALK):
  1441. fprintf(stdout,"INFO: DRUNKEN-WALK THROUGH INPUT SOUND\n");
  1442. fprintf(stdout,"INFO: \n");
  1443. fprintf(stdout,"INFO: In mode SOBER MOMENTS input sound is read soberly at holds.\n");
  1444. fprintf(stdout,"INFO: \n");
  1445. fprintf(stdout,"INFO: LOCUS............Time in src around which drunkwalk happens(secs) CAN MOVE THRO SRC\n");
  1446. fprintf(stdout,"INFO: \n");
  1447. fprintf(stdout,"INFO: AMBITUS..........(half)width of region from within which sound-segments read.(secs)\n");
  1448. fprintf(stdout,"INFO: \n");
  1449. fprintf(stdout,"INFO: STEP.............Max length of (random) step between segment-reads.\n");
  1450. fprintf(stdout,"INFO: .................(always WITHIN ambitus: automatically adjusted where too large)\n");
  1451. fprintf(stdout,"INFO: \n");
  1452. fprintf(stdout,"INFO: CLOCKTICK........Time between segment reads = (average) segment duration.\n");
  1453. fprintf(stdout,"INFO: \n");
  1454. fprintf(stdout,"INFO: SEGMENT OVERLAY..Mutual overlap of segments in output.\n");
  1455. fprintf(stdout,"INFO: \n");
  1456. fprintf(stdout,"INFO: SEED VALUE...... Any set value gives reproducible output.\n");
  1457. fprintf(stdout,"INFO: \n");
  1458. break;
  1459. case(EQ):
  1460. fprintf(stdout,"INFO: CUT OR BOOST, ABOVE, BELOW OR AROUND A GIVEN FRQ\n");
  1461. fprintf(stdout,"INFO: \n");
  1462. fprintf(stdout,"INFO: BWIDTH.... filter bandwidth in Hz\n");
  1463. fprintf(stdout,"INFO: BOOST/CUT..is the boost or cut, in dB\n");
  1464. fprintf(stdout,"INFO: FREQ.......is the filter frequency in Hz\n");
  1465. fprintf(stdout,"INFO: PRESCALE...scales the INPUT to the filter.\n");
  1466. fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
  1467. fprintf(stdout,"INFO: \n");
  1468. break;
  1469. case(LPHP):
  1470. fprintf(stdout,"INFO: FIXED LOW PASS OR HIGH PASS FILTER.\n");
  1471. fprintf(stdout,"INFO: \n");
  1472. fprintf(stdout,"INFO: ATTENUATION..Gain reduction of filter, in dB.\n");
  1473. fprintf(stdout,"INFO: .............Greater attenuation, sharper filter, but longer to calculate.\n");
  1474. fprintf(stdout,"INFO: \n");
  1475. fprintf(stdout,"INFO: PASS-BAND....last pitch to be passed by the filter.\n");
  1476. fprintf(stdout,"INFO: \n");
  1477. fprintf(stdout,"INFO: STOP-BAND....first pitch to be stopped by the filter.\n");
  1478. fprintf(stdout,"INFO: .............If stop-band is above pass-band, this is a lopass filter.\n");
  1479. fprintf(stdout,"INFO: .............If stop-band is below pass-band, this is a hipass filter.\n");
  1480. fprintf(stdout,"INFO: \n");
  1481. fprintf(stdout,"INFO: PRESCALE.....Prescale input level: Avoid overflows.\n");
  1482. fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
  1483. fprintf(stdout,"INFO: \n");
  1484. break;
  1485. case(FSTATVAR):
  1486. fprintf(stdout,"INFO: LOPASS, HIGH-PASS, BANDPASS, OR NOTCH FILTER WITH VARIABLE FRQ\n");
  1487. fprintf(stdout,"INFO: \n");
  1488. fprintf(stdout,"INFO: ACUITY.....acuity of filter: Smaller vals give tighter filter.\n");
  1489. fprintf(stdout,"INFO: \n");
  1490. fprintf(stdout,"INFO: GAIN.......overall gain on output: Rule of thumb:\n");
  1491. fprintf(stdout,"INFO: ...........if acuity = (1/3)to-power-n: gain = (2/3)-to-power-n\n");
  1492. fprintf(stdout,"INFO: \n");
  1493. fprintf(stdout,"INFO: FREQUENCY..frq of filter\n");
  1494. fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
  1495. fprintf(stdout,"INFO: \n");
  1496. break;
  1497. case(FLTBANKN):
  1498. fprintf(stdout,"INFO: BANK OF FILTERS, WITH TIME-VARIABLE Q\n");
  1499. fprintf(stdout,"INFO: \n");
  1500. fprintf(stdout,"INFO: Q..................Q (tightness) of filters.\n");
  1501. fprintf(stdout,"INFO: GAIN...............overall gain.\n");
  1502. fprintf(stdout,"INFO: LOW FRQ............lofrq limit of filter bank.\n");
  1503. fprintf(stdout,"INFO: HIGH FRQ...........hifrq limit of filter bank.\n");
  1504. fprintf(stdout,"INFO: FRQ RANDOMISATION..Random scatter of filter frqs.\n");
  1505. fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
  1506. fprintf(stdout,"INFO: \n");
  1507. break;
  1508. case(FLTBANKC):
  1509. fprintf(stdout,"INFO: GENERATE A LIST OF FREQUENCIES FOR USE AS A FILTERBANK\n");
  1510. fprintf(stdout,"INFO: \n");
  1511. fprintf(stdout,"INFO: You can add your own amplitudes to the textfile & use if with USERBANK\n");
  1512. fprintf(stdout,"INFO: \n");
  1513. fprintf(stdout,"INFO: LOW FRQ............lofrq limit of filter bank.\n");
  1514. fprintf(stdout,"INFO: HIGH FRQ...........hifrq limit of filter bank.\n");
  1515. fprintf(stdout,"INFO: FRQ RANDOMISATION..Random scatter of filter frqs.\n");
  1516. fprintf(stdout,"INFO: \n");
  1517. break;
  1518. case(FLTBANKU):
  1519. fprintf(stdout,"INFO: USER-DEFINED FILTERBANK,WITH TIME-VARIABLE Q\n");
  1520. fprintf(stdout,"INFO: \n");
  1521. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  1522. fprintf(stdout,"INFO: \n");
  1523. fprintf(stdout,"INFO: BANDS AS FRQ (HZ):..Filter-pitches as frq in Hz.\n");
  1524. fprintf(stdout,"INFO: BANDS AS MIDI:......Filter-pitches as MIDI values.\n");
  1525. fprintf(stdout,"INFO: \n");
  1526. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  1527. fprintf(stdout,"INFO: \n");
  1528. fprintf(stdout,"INFO: Filter data is a file with Pitch & Amp of filters\n");
  1529. fprintf(stdout,"INFO: (paired, one pair on each line).\n");
  1530. fprintf(stdout,"INFO: where amplitude may be expressed in decibels or as a +ve number,\n");
  1531. fprintf(stdout,"INFO: and comment-lines (starting with ';') may be used.\n");
  1532. fprintf(stdout,"INFO: \n");
  1533. fprintf(stdout,"INFO: Q:........Q (tightness) of filter\n");
  1534. fprintf(stdout,"INFO: GAIN......overall gain on output.\n");
  1535. fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
  1536. fprintf(stdout,"INFO: \n");
  1537. break;
  1538. case(FLTBANKV):
  1539. fprintf(stdout,"INFO: USER-DEFINED TIME_VARYING FILTERBANK,WITH TIME-VARIABLE Q\n");
  1540. fprintf(stdout,"INFO: \n");
  1541. fprintf(stdout,"INFO: REQUIRED DATAFILE-------------------------------------------------------\n");
  1542. fprintf(stdout,"INFO: \n");
  1543. fprintf(stdout,"INFO: a textfile with lines of data for filter bands at successive times\n");
  1544. fprintf(stdout,"INFO: \n");
  1545. fprintf(stdout,"INFO: Each line contains the following items\n");
  1546. fprintf(stdout,"INFO: \n");
  1547. fprintf(stdout,"INFO: Time Pitch1 Amp1 [Pitch2 Amp2 etc....].\n");
  1548. fprintf(stdout,"INFO: \n");
  1549. fprintf(stdout,"INFO: Where pitch and Amp values must be paired: and any number of pairs can be used in a line,\n");
  1550. fprintf(stdout,"INFO: BUT each line must have SAME number of pairs on it.\n");
  1551. fprintf(stdout,"INFO: (To eliminate a band in any line(s), set its amplitude to 0.0).\n");
  1552. fprintf(stdout,"INFO: Time values (in secs) must be in ascending order (and >=0.0)\n");
  1553. fprintf(stdout,"INFO: Pitch vals may be EITHER frq, OR MIDI, depending on Mode.\n");
  1554. fprintf(stdout,"INFO: Amp values may be numeric, or dB values (e.g. -4.1dB).\n");
  1555. fprintf(stdout,"INFO: and comment-lines may be used: start these with ';'.\n");
  1556. fprintf(stdout,"INFO: \n");
  1557. fprintf(stdout,"INFO: PARAMETERS---------------------------------------------------------------\n");
  1558. fprintf(stdout,"INFO: \n");
  1559. fprintf(stdout,"INFO: Q....................Q (tightness) of filter.\n");
  1560. fprintf(stdout,"INFO: GAIN.................overall gain.\n");
  1561. fprintf(stdout,"INFO: NUMBER OF HARMONICS..No of harmonics (of each pitch) to use: Default 1.\n");
  1562. fprintf(stdout,"INFO: .....................Very high harmonics of high pitches may be too high to calculate. (check with Max Harmonic button)\n");
  1563. fprintf(stdout,"INFO: .....................No-of-pitches times no-of-harmonics determines program speed.\n");
  1564. fprintf(stdout,"INFO: ROLL OFF.............Level drop (in dB) from one harmonic to next.\n");
  1565. fprintf(stdout,"INFO: DECAY TAIL...........Time allowed for filter resonance to decay,once source sound has finished.\n");
  1566. fprintf(stdout,"INFO: DOUBLE FILTERING.....More sharply defined filter frequencies.\n");
  1567. fprintf(stdout,"INFO: DROP OUT ON OVERFLOW.The filter is designed to adjust its internal level to prevent numerical overflow from\n");
  1568. fprintf(stdout,"INFO: .....................causing runaway distortion. If you are concerned to avoid any overflows at all,\n");
  1569. fprintf(stdout,"INFO: .....................setting this flag will cause the filter to stop calculating if any overflow is detected.\n");
  1570. fprintf(stdout,"INFO: .....................The filter gain can then be turned down, and the filter launched again.\n");
  1571. break;
  1572. case(FLTBANKV2):
  1573. fprintf(stdout,"INFO: USER-DEFINED TIME_VARYING FILTERBANK,WITH TIME-VARIABLE Q AND PARTIALS\n");
  1574. fprintf(stdout,"INFO: \n");
  1575. fprintf(stdout,"INFO: REQUIRED DATAFILE-------------------------------------------------------\n");
  1576. fprintf(stdout,"INFO: \n");
  1577. fprintf(stdout,"INFO: a textfile with lines of data for filter bands at successive times & for partials similarly\n");
  1578. fprintf(stdout,"INFO: \n");
  1579. fprintf(stdout,"INFO: FIRST set of lines contain the following items\n");
  1580. fprintf(stdout,"INFO: \n");
  1581. fprintf(stdout,"INFO: Time Pitch1 Amp1 [Pitch2 Amp2 etc....].\n");
  1582. fprintf(stdout,"INFO: \n");
  1583. fprintf(stdout,"INFO: Where pitch and Amp values must be paired: and any number of pairs can be used in a line,\n");
  1584. fprintf(stdout,"INFO: BUT each line must have SAME number of pairs on it.\n");
  1585. fprintf(stdout,"INFO: (To eliminate a band in any line(s), set its amplitude to 0.0).\n");
  1586. fprintf(stdout,"INFO: Time values (in secs) must be in ascending order (and >=0.0)\n");
  1587. fprintf(stdout,"INFO: Pitch vals may be EITHER frq, OR MIDI, depending on Mode.\n");
  1588. fprintf(stdout,"INFO: Amp values must be numeric.\n");
  1589. fprintf(stdout,"INFO: and comment-lines may be used: start these with ';'.\n");
  1590. fprintf(stdout,"INFO: \n");
  1591. fprintf(stdout,"INFO: There must then be a SEPARATING LINE starting with a '#' sign\n");
  1592. fprintf(stdout,"INFO: \n");
  1593. fprintf(stdout,"INFO: SECOND set of lines contain the following items\n");
  1594. fprintf(stdout,"INFO: \n");
  1595. fprintf(stdout,"INFO: Time: PartialNo1 Amp1 [PartialNo2 Amp2 etc....].\n");
  1596. fprintf(stdout,"INFO: \n");
  1597. fprintf(stdout,"INFO: Where partial numbers and Amp values must be paired: and any number of pairs can be used in a line,\n");
  1598. fprintf(stdout,"INFO: BUT each line must have SAME number of pairs on it.\n");
  1599. fprintf(stdout,"INFO: (To eliminate a band in any line(s), set its amplitude to 0.0).\n");
  1600. fprintf(stdout,"INFO: Time values (in secs) must be in ascending order (and >=0.0)\n");
  1601. fprintf(stdout,"INFO: Partial numbers can be fractional but must be >= 1.0\n");
  1602. fprintf(stdout,"INFO: Amp values may be numeric.\n");
  1603. fprintf(stdout,"INFO: \n");
  1604. fprintf(stdout,"INFO: The first time value in each line set MUST BE ZERO.\n");
  1605. fprintf(stdout,"INFO: \n");
  1606. fprintf(stdout,"INFO: PARAMETERS---------------------------------------------------------------\n");
  1607. fprintf(stdout,"INFO: \n");
  1608. fprintf(stdout,"INFO: Q....................Q (tightness) of filter.\n");
  1609. fprintf(stdout,"INFO: GAIN.................overall gain.\n");
  1610. fprintf(stdout,"INFO: DECAY TAIL...........Time allowed for filter resonance to decay,once source sound has finished.\n");
  1611. fprintf(stdout,"INFO: DOUBLE FILTERING.....More sharply defined filter frequencies.\n");
  1612. break;
  1613. case(FLTITER):
  1614. fprintf(stdout,"INFO: ITERATE SOUND, WITH CUMULATIVE FILTERING BY A FILTERBANK.\n");
  1615. fprintf(stdout,"INFO: \n");
  1616. fprintf(stdout,"INFO: Required data is a textfile with Pitch & Amp of filters\n");
  1617. fprintf(stdout,"INFO: (paired, one pair on each line).\n");
  1618. fprintf(stdout,"INFO: Pitch, as Hz or MIDI.\n");
  1619. fprintf(stdout,"INFO: Amp, can be entered as dB vals or numerically.\n" );
  1620. fprintf(stdout,"INFO: \n");
  1621. fprintf(stdout,"INFO: Q.......................Q (tightness) of filter.\n");
  1622. fprintf(stdout,"INFO: \n");
  1623. fprintf(stdout,"INFO: GAIN....................overrall gain in filtering process.\n");
  1624. fprintf(stdout,"INFO: \n");
  1625. fprintf(stdout,"INFO: DELAY...................(average) delay between iterations (secs).\n");
  1626. fprintf(stdout,"INFO: \n");
  1627. fprintf(stdout,"INFO: OUTFILE DURATION........(min) duration of output file (>infile duration).\n");
  1628. fprintf(stdout,"INFO: \n");
  1629. fprintf(stdout,"INFO: PRESCALE................gain on the INPUT to the filtering process.\n");
  1630. fprintf(stdout,"INFO:.........................If 0.0, Program automatically divides input level by\n");
  1631. fprintf(stdout,"INFO:.........................the max number of sound overlays occuring in process.\n");
  1632. fprintf(stdout,"INFO: \n");
  1633. fprintf(stdout,"INFO: MAX PITCH SHIFT.........max pitchshift of any segment: (fractions of) semitones\n");
  1634. fprintf(stdout,"INFO: \n");
  1635. fprintf(stdout,"INFO: MAX LOUDNESS SHIFT......max amplitude reduction of any segment. (numeric)\n");
  1636. fprintf(stdout,"INFO: \n");
  1637. fprintf(stdout,"INFO: PITCH NOT INTERPOLATED..during pitch shift: (fast but dirty).\n");
  1638. fprintf(stdout,"INFO: \n");
  1639. fprintf(stdout,"INFO: EXPONENTIAL DECAY...... each seg gets quieter before next enters.\n");
  1640. fprintf(stdout,"INFO: \n");
  1641. fprintf(stdout,"INFO: NO NORMALISATION........segs may grow or fall in level quickly.\n");
  1642. fprintf(stdout,"INFO: \n");
  1643. break;
  1644. case(FLTSWEEP):
  1645. fprintf(stdout,"INFO: FILTER WHOSE FOCUS-FREQUENCY SWEEPS OVER A RANGE OF FREQUENCIES\n");
  1646. fprintf(stdout,"INFO: \n");
  1647. fprintf(stdout,"INFO: ACUITY......Smaller vals give tighter filter.\n");
  1648. fprintf(stdout,"INFO: \n");
  1649. fprintf(stdout,"INFO: GAIN........overall gain on output: Rule of thumb:\n");
  1650. fprintf(stdout,"INFO: ............if acuity = (1/3)to-power-n: gain = (2/3)-to-power-n\n");
  1651. fprintf(stdout,"INFO: \n");
  1652. fprintf(stdout,"INFO: LOW FRQ.....lowest frq to sweep to.\n");
  1653. fprintf(stdout,"INFO: \n");
  1654. fprintf(stdout,"INFO: HIGH FRQ....highest frq to sweep to.\n");
  1655. fprintf(stdout,"INFO: \n");
  1656. fprintf(stdout,"INFO: SWEEP FRQ...frq of the sweep itself.\n");
  1657. fprintf(stdout,"INFO: \n");
  1658. fprintf(stdout,"INFO: PHASE.......start of sweep: Range(0-1)\n");
  1659. fprintf(stdout,"INFO: ............e.g. to sweep once over range,\n");
  1660. fprintf(stdout,"INFO: ............set sweepfrq to infiledur/2 (default)\n");
  1661. fprintf(stdout,"INFO: ............and set phase to 0 (upsweep) or .5(downsweep)\n");
  1662. fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
  1663. fprintf(stdout,"INFO: \n");
  1664. break;
  1665. case(ALLPASS):
  1666. fprintf(stdout,"INFO: PHASESHIFT SOUND, OR PRODUCE 'PHASING' EFFECT\n");
  1667. fprintf(stdout,"INFO: \n");
  1668. fprintf(stdout,"INFO: GAIN................ In mode PHASING EFFECT,\n");
  1669. fprintf(stdout,"INFO: .....................effect increases as gain increases from -1\n");
  1670. fprintf(stdout,"INFO: .....................BUT a gain of 1.0 will produce complete phase cancellation\n");
  1671. fprintf(stdout,"INFO: .....................and the output signal will be zero.\n");
  1672. fprintf(stdout,"INFO: \n");
  1673. fprintf(stdout,"INFO: PRESCALE.............gain on the INPUT to the filtering process.\n");
  1674. fprintf(stdout,"INFO: DECAY TAIL...........time allowed for filter resonance to decay,once source sound has finished.\n");
  1675. fprintf(stdout,"INFO: \n");
  1676. fprintf(stdout,"INFO: LINEAR INTERP DELAY..(default: logarithmic interp of changing delay vals)\n");
  1677. fprintf(stdout,"INFO: \n");
  1678. break;
  1679. case(GRAIN_COUNT):
  1680. fprintf(stdout,"INFO: COUNT GRAINS FOUND IN A SOUND (AT GIVEN GATE & MINHOLE VALUES)\n");
  1681. fprintf(stdout,"INFO: \n");
  1682. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1683. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1684. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1685. fprintf(stdout,"INFO: \n");
  1686. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1687. fprintf(stdout,"INFO: \n");
  1688. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1689. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1690. fprintf(stdout,"INFO: \n");
  1691. break;
  1692. case(GRAIN_OMIT):
  1693. fprintf(stdout,"INFO: OMIT A PROPORTION OF GRAINS FROM GRAINY-SOUND\n");
  1694. fprintf(stdout,"INFO: \n");
  1695. fprintf(stdout,"INFO: GRAINS TO KEEP...... .number of grains to keep from each set of 'out_of' grains\n");
  1696. fprintf(stdout,"INFO: ......................may vary over time, but must not exceed 'out_of'.\n");
  1697. fprintf(stdout,"INFO: \n");
  1698. fprintf(stdout,"INFO: OUT OF THIS MANY.....'keep' grains kept, from each 'out_of' grains set\n");
  1699. fprintf(stdout,"INFO: \n");
  1700. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1701. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1702. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1703. fprintf(stdout,"INFO: \n");
  1704. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1705. fprintf(stdout,"INFO: \n");
  1706. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1707. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1708. fprintf(stdout,"INFO: \n");
  1709. break;
  1710. case(GRAIN_DUPLICATE):
  1711. fprintf(stdout,"INFO: DUPLICATE GRAINS IN GRAINY-SOUND\n");
  1712. fprintf(stdout,"INFO: \n");
  1713. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1714. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1715. fprintf(stdout,"INFO: GATE LEVEL...........required signal level for grain to be seen.\n");
  1716. fprintf(stdout,"INFO: \n");
  1717. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1718. fprintf(stdout,"INFO: \n");
  1719. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1720. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1721. fprintf(stdout,"INFO: \n");
  1722. break;
  1723. case(GRAIN_REORDER):
  1724. fprintf(stdout,"INFO: REORDER GRAINS IN GRAINY-SOUND\n");
  1725. fprintf(stdout,"INFO: \n");
  1726. fprintf(stdout,"INFO: Required data is a string such as 'adb:c' or 'adb-c'\n");
  1727. fprintf(stdout,"INFO: indicating how grains are to be reordered.\n");
  1728. fprintf(stdout,"INFO: The example means use grains 1 (a), 4 (d) and 2 (b) in sequence,\n");
  1729. fprintf(stdout,"INFO: then begin this grain-jumping pattern again, BUT start at grain3 (c):\n");
  1730. fprintf(stdout,"INFO: Then continue to advance in this fashion until no grains left in infile.\n");
  1731. fprintf(stdout,"INFO: The ':' (or '-') is obligatory.\n" );
  1732. fprintf(stdout,"INFO: \n");
  1733. fprintf(stdout,"INFO: \n");
  1734. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1735. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1736. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1737. fprintf(stdout,"INFO: \n");
  1738. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1739. fprintf(stdout,"INFO: \n");
  1740. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1741. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1742. fprintf(stdout,"INFO: \n");
  1743. break;
  1744. case(GRAIN_REPITCH):
  1745. fprintf(stdout,"INFO: REPITCH GRAINS IN GRAINY-SOUND\n");
  1746. fprintf(stdout,"INFO: \n");
  1747. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  1748. fprintf(stdout,"INFO: \n");
  1749. fprintf(stdout,"INFO: NO GRAIN REPEATS..Lengthen or shorten each grain in turn, without repeating any grains:\n");
  1750. fprintf(stdout,"INFO: ..................on reaching end of stretch list, cycle back to its start.\n");
  1751. fprintf(stdout,"INFO: \n");
  1752. fprintf(stdout,"INFO: REPEAT EACH GRAIN Play grain at each new length, before proceeding to next grain.\n");
  1753. fprintf(stdout,"INFO: \n");
  1754. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  1755. fprintf(stdout,"INFO: \n");
  1756. fprintf(stdout,"INFO: Required data is textfile listing transpositions as (+ve or -ve) semitone shifts.\n");
  1757. fprintf(stdout,"INFO: \n");
  1758. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1759. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1760. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1761. fprintf(stdout,"INFO: \n");
  1762. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1763. fprintf(stdout,"INFO: \n");
  1764. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1765. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1766. fprintf(stdout,"INFO: \n");
  1767. break;
  1768. case(GRAIN_RERHYTHM):
  1769. fprintf(stdout,"INFO: CHANGE RHYTHM OF GRAINS IN GRAINY-SOUND\n");
  1770. fprintf(stdout,"INFO: \n");
  1771. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  1772. fprintf(stdout,"INFO: \n");
  1773. fprintf(stdout,"INFO: NO GRAIN REPEATS..Lengthen or shorten each grain in turn, without repeating any grains:\n");
  1774. fprintf(stdout,"INFO: ..................on reaching end of stretch list, cycle back to its start.\n");
  1775. fprintf(stdout,"INFO: \n");
  1776. fprintf(stdout,"INFO: REPEAT EACH GRAIN Play grain at each new length, before proceeding to next grain.\n");
  1777. fprintf(stdout,"INFO: \n");
  1778. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  1779. fprintf(stdout,"INFO: \n");
  1780. fprintf(stdout,"INFO: Required data is a textfile listing duration-multipliers.\n");
  1781. fprintf(stdout,"INFO: if any inter-grain time reduced below MINGRAINTIME\n");
  1782. fprintf(stdout,"INFO: it will be set to MINGRAINTIME.\n" );
  1783. fprintf(stdout,"INFO: \n");
  1784. fprintf(stdout,"INFO: \n");
  1785. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1786. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1787. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1788. fprintf(stdout,"INFO: \n");
  1789. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1790. fprintf(stdout,"INFO: \n");
  1791. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1792. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1793. fprintf(stdout,"INFO: \n");
  1794. break;
  1795. case(GRAIN_REMOTIF):
  1796. fprintf(stdout,"INFO: CHANGE PITCH AND RHYTHM OF GRAINS IN GRAINY-SOUND\n");
  1797. fprintf(stdout,"INFO: \n");
  1798. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  1799. fprintf(stdout,"INFO: \n");
  1800. fprintf(stdout,"INFO: NO GRAIN REPEATS..Lengthen or shorten each grain in turn, without repeating any grains:\n");
  1801. fprintf(stdout,"INFO: ..................on reaching end of stretch list, cycle back to its start.\n");
  1802. fprintf(stdout,"INFO: \n");
  1803. fprintf(stdout,"INFO: REPEAT EACH GRAIN Play grain at each new length, before proceeding to next grain.\n");
  1804. fprintf(stdout,"INFO: \n");
  1805. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  1806. fprintf(stdout,"INFO: \n");
  1807. fprintf(stdout,"INFO: Required data is a textfile containing transposition-timemultiplier PAIRS.\n");
  1808. fprintf(stdout,"INFO: Transpositions are (+ve or -ve) semitone shifts.\n");
  1809. fprintf(stdout,"INFO: Time-multipliers change the grain duration.\n");
  1810. fprintf(stdout,"INFO: if any inter-grain time reduced below MINGRAINTIME\n");
  1811. fprintf(stdout,"INFO: it will be set to MINGRAINTIME.\n" );
  1812. fprintf(stdout,"INFO: \n");
  1813. fprintf(stdout,"INFO: \n");
  1814. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1815. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1816. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1817. fprintf(stdout,"INFO: \n");
  1818. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1819. fprintf(stdout,"INFO: \n");
  1820. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1821. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1822. fprintf(stdout,"INFO: \n");
  1823. break;
  1824. case(GRAIN_TIMEWARP):
  1825. fprintf(stdout,"INFO: STRETCH (OR SHRINK) DURATION OF GRAINY-SOUND\n");
  1826. fprintf(stdout,"INFO: WITHOUT STRETCHING GRAINS THEMSELVES\n");
  1827. fprintf(stdout,"INFO: \n");
  1828. fprintf(stdout,"INFO: TIMESTRETCH-RATIO.....is degree of stretching/shrinking of intergrain time.\n");
  1829. fprintf(stdout,"INFO: ......................a value of 2 doubles the intergrain time.\n");
  1830. fprintf(stdout,"INFO: ......................a value of .5 halves the intergrain time.\n");
  1831. fprintf(stdout,"INFO: ......................if any inter-grain time reduced below a certain MINGRAINTIME,\n");
  1832. fprintf(stdout,"INFO: ......................it will be set to MINGRAINTIME.\n" );
  1833. fprintf(stdout,"INFO: \n");
  1834. fprintf(stdout,"INFO: \n");
  1835. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1836. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1837. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1838. fprintf(stdout,"INFO: \n");
  1839. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1840. fprintf(stdout,"INFO: \n");
  1841. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1842. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1843. fprintf(stdout,"INFO: \n");
  1844. break;
  1845. case(GRAIN_REVERSE):
  1846. fprintf(stdout,"INFO: REVERSE ORDER OF GRAINS IN A GRAINY-SOUND\n");
  1847. fprintf(stdout,"INFO: WITHOUT REVERSING GRAINS THEMSELVES\n");
  1848. fprintf(stdout,"INFO: \n");
  1849. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1850. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1851. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1852. fprintf(stdout,"INFO: \n");
  1853. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1854. fprintf(stdout,"INFO: \n");
  1855. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1856. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1857. fprintf(stdout,"INFO: \n");
  1858. break;
  1859. case(GRAIN_GET):
  1860. fprintf(stdout,"INFO: LOCATE TIMINGS OF GRAIN-ONSETS IN A GRAINY-SOUND\n");
  1861. fprintf(stdout,"INFO: \n");
  1862. fprintf(stdout,"INFO: OUT-TEXTFILE will contain a list of grain-onset timings, in seconds.\n");
  1863. fprintf(stdout,"INFO: \n");
  1864. fprintf(stdout,"INFO: \n");
  1865. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1866. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1867. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1868. fprintf(stdout,"INFO: \n");
  1869. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1870. fprintf(stdout,"INFO: \n");
  1871. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1872. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1873. fprintf(stdout,"INFO: \n");
  1874. break;
  1875. case(GRAIN_POSITION):
  1876. fprintf(stdout,"INFO: REPOSITION GRAIN-ONSETS IN A GRAINY-SOUND\n");
  1877. fprintf(stdout,"INFO: \n");
  1878. fprintf(stdout,"INFO: Required data is a textfile containing a list of grain-onset timings, in seconds.\n");
  1879. fprintf(stdout,"INFO: (Which might be obtained with GRAIN GET)\n");
  1880. fprintf(stdout,"INFO: if any inter-grain time reduced below MINGRAINTIME\n");
  1881. fprintf(stdout,"INFO: it will be set to MINGRAINTIME.\n" );
  1882. fprintf(stdout,"INFO: \n");
  1883. fprintf(stdout,"INFO: \n");
  1884. fprintf(stdout,"INFO: GRAINTIME OFFSET......added to ALL grain timings.\n");
  1885. fprintf(stdout,"INFO: \n");
  1886. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1887. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1888. fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
  1889. fprintf(stdout,"INFO: \n");
  1890. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
  1891. fprintf(stdout,"INFO: \n");
  1892. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
  1893. fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
  1894. fprintf(stdout,"INFO: \n");
  1895. break;
  1896. case(GRAIN_ALIGN):
  1897. fprintf(stdout,"INFO: SYNCHRONISE GRAIN-ONSETS IN 2nd GRAINY-SOUND\n");
  1898. fprintf(stdout,"INFO: WITH THOSE IN THE 1st.\n");
  1899. fprintf(stdout,"INFO: \n");
  1900. fprintf(stdout,"INFO: 1st infile provides grain-onset times.\n");
  1901. fprintf(stdout,"INFO: 2nd infile provides the actual grains to be retimed.\n");
  1902. fprintf(stdout,"INFO: \n");
  1903. fprintf(stdout,"INFO: \n");
  1904. fprintf(stdout,"INFO: GRAINTIME OFFSET.........added to ALL output grain timings.\n");
  1905. fprintf(stdout,"INFO: \n");
  1906. fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
  1907. fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
  1908. fprintf(stdout,"INFO: GATE LEVEL...............required signal level for grain to be seen.\n");
  1909. fprintf(stdout,"INFO: \n");
  1910. fprintf(stdout,"INFO: GATE LEVEL FOR 2nd FILE..is separate gate for file 2.\n");
  1911. fprintf(stdout,"INFO: \n");
  1912. fprintf(stdout,"INFO: MIN GRAIN-OFF TIME.......min duration of inter-grain holes.\n");
  1913. fprintf(stdout,"INFO: \n");
  1914. fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE.....track signal level, with this windowsize (secs)\n");
  1915. fprintf(stdout,"INFO: .........................0 value turns off tracking.\n");
  1916. fprintf(stdout,"INFO: \n");
  1917. break;
  1918. case(MIX):
  1919. fprintf(stdout,"INFO: MIX SOUNDS AS INSTRUCTED IN A MIXFILE\n");
  1920. fprintf(stdout,"INFO: \n");
  1921. fprintf(stdout,"INFO: MIXING STARTTIME...starttime in mix (to start mixing later than zero).\n");
  1922. fprintf(stdout,"INFO: MIXING ENDTIME.....endtime in mix (to stop mix before its true end).\n");
  1923. fprintf(stdout,"INFO: \n");
  1924. fprintf(stdout,"INFO: Note that the START and END params intended for mix TESTING purposes only.\n");
  1925. fprintf(stdout,"INFO: If you want to keep output from such a testmix, you should TOPNTAIL it.\n");
  1926. fprintf(stdout,"INFO: \n");
  1927. fprintf(stdout,"INFO: ATTENUATION.......reduce the mix level, if necessary.\n");
  1928. fprintf(stdout,"INFO: \n");
  1929. fprintf(stdout,"INFO: ALTERNATIVE MIX....slower,but may avoid clipping in special circumstances.\n");
  1930. fprintf(stdout,"INFO: \n");
  1931. break;
  1932. case(MIXTEST):
  1933. fprintf(stdout,"INFO: TEST THE SYNTAX OF A MIXFILE\n");
  1934. fprintf(stdout,"INFO: \n");
  1935. break;
  1936. case(MIXMAX):
  1937. fprintf(stdout,"INFO: TEST THE MAXIMUM LEVEL OF A MIX, DEFINED IN A MIXFILE\n");
  1938. fprintf(stdout,"INFO: AND SUGGEST A GAIN FACTOR TO AVOID OVERLOAD, IF NECESSARY\n");
  1939. fprintf(stdout,"INFO: \n");
  1940. fprintf(stdout,"INFO: MIXING STARTTIME..starttime in mix (to start mixing later than zero).\n");
  1941. fprintf(stdout,"INFO: MIXING ENDTIME....endtime in mix (to stop mix before its true end).\n");
  1942. fprintf(stdout,"INFO: OUTTEXTFILE.......stores clipping locations (& maxlevel, in mode MAXLEVEL & CLIPTIMES).\n");
  1943. fprintf(stdout,"INFO: \n");
  1944. fprintf(stdout,"INFO: You can alter the overall level of a mix with 'SUBMIX ATTENUATE'.\n");
  1945. fprintf(stdout,"INFO: \n");
  1946. break;
  1947. case(MIXFORMAT):
  1948. fprintf(stdout,"INFO: MIXFILES CONSIST OF LINES WITH ONE OF THE FOLLOWING FORMATS\n");
  1949. fprintf(stdout,"INFO: \n");
  1950. fprintf(stdout,"INFO: sndname starttime_in_mix chans level\n");
  1951. fprintf(stdout,"INFO: sndname starttime_in_mix 1 level pan\n");
  1952. fprintf(stdout,"INFO: sndname starttime_in_mix 2 leftlevel leftpan rightlevel rightpan\n");
  1953. fprintf(stdout,"INFO: \n");
  1954. fprintf(stdout,"INFO: SNDNAME....name of MONO or STEREO sndfile: ALL MUST HAVE SAME SAMPLING RATE.\n");
  1955. fprintf(stdout,"INFO: \n");
  1956. fprintf(stdout,"INFO: CHANS......number of channels in this soundfile (1 or 2 ONLY)\n");
  1957. fprintf(stdout,"INFO: \n");
  1958. fprintf(stdout,"INFO: LEVEL......loudness, as number (1 = unity gain) or dB (0dB = unity gain)\n" );
  1959. fprintf(stdout,"INFO: ...........Mono & stereo files MAY have SINGLE level param (NO pan data).\n");
  1960. fprintf(stdout,"INFO: ...........In this case, MONO files in STEREO mixes are panned centrally.\n");
  1961. fprintf(stdout,"INFO: ...........OTHERWISE....\n");
  1962. fprintf(stdout,"INFO: ...........MONO files MUST have 1 level & 1 pan parameter (ONLY).\n");
  1963. fprintf(stdout,"INFO: ...........STEREO files MUST have 2 level & 2 pan params(1 for each channel)\n");
  1964. fprintf(stdout,"INFO: \n");
  1965. fprintf(stdout,"INFO: PAN........is spatial positioning of file (or file channel) in output mix.\n");
  1966. fprintf(stdout,"INFO: ...........-1 Hard Left : 0 Centre : 1 Hard Right\n");
  1967. fprintf(stdout,"INFO: ...........< -1 hard left & attenuated : > 1 hard right & attenuated.\n");
  1968. fprintf(stdout,"INFO: \n");
  1969. fprintf(stdout,"INFO: \n");
  1970. fprintf(stdout,"INFO: ALSO\n");
  1971. fprintf(stdout,"INFO: \n");
  1972. fprintf(stdout,"INFO: 1) The mixfile list need NOT be in starttime order.\n");
  1973. fprintf(stdout,"INFO: \n");
  1974. fprintf(stdout,"INFO: 2) Silence at start of mix IGNORED.(splice on afterwards if needed).\n");
  1975. fprintf(stdout,"INFO: \n");
  1976. fprintf(stdout,"INFO: 3) With exclusively mono inputs, with NO pan information, OR \n");
  1977. fprintf(stdout,"INFO: when ALL panned hard left, or ALL hard right, output is MONO.\n");
  1978. fprintf(stdout,"INFO: All other situations produce stereo output.\n");
  1979. fprintf(stdout,"INFO: \n");
  1980. fprintf(stdout,"INFO: TAKE CARE WHEN PANNING BOTH CHANNELS OF A STEREO FILE.\n");
  1981. fprintf(stdout,"INFO: 4) The channel contributions sum, so e.g. if both channels are\n");
  1982. fprintf(stdout,"INFO: panned to same position without attenuation, overload possible.\n");
  1983. fprintf(stdout,"INFO: \n");
  1984. fprintf(stdout,"INFO: 5) You may test for max level in your mix output with SUBMIX GETLEVEL.\n");
  1985. fprintf(stdout,"INFO: Reduce the mixfile level, if necessary, using SUBMIX ATTENUATE.\n");
  1986. fprintf(stdout,"INFO: \n");
  1987. fprintf(stdout,"INFO: 6) You may put comment lines in mixfiles : Start such line with a ';'\n");
  1988. fprintf(stdout,"INFO: Blank lines are ignored.\n");
  1989. fprintf(stdout,"INFO: \n");
  1990. break;
  1991. case(MIXDUMMY):
  1992. fprintf(stdout,"INFO: CONVERT A LIST OF SNDFILES INTO A BASIC MIXFILE (FOR EDITING)\n");
  1993. fprintf(stdout,"INFO: \n");
  1994. break;
  1995. case(MIX_ON_GRID):
  1996. fprintf(stdout,"INFO: CONVERT A LIST OF SNDFILES INTO A BASIC MIXFILE (FOR EDITING) ON A GRID OF TIMES\n");
  1997. fprintf(stdout,"INFO: \n");
  1998. fprintf(stdout,"INFO: MIX GRID .... is a list of times (in ascending order) at which sounds are to be placed.\n");
  1999. fprintf(stdout,"INFO: ................ OR a list where times-to-be-used are marked by 'x' (before time, with no space)\n");
  2000. fprintf(stdout,"INFO: ................ to indicate which grid points are to be used for successive input sounds.\n");
  2001. fprintf(stdout,"INFO: \n");
  2002. fprintf(stdout,"INFO: ................ The number of (marked) times must be equal to the number of input sounds.\n");
  2003. fprintf(stdout,"INFO: \n");
  2004. fprintf(stdout,"INFO: ................ Times may be followed (on the same line only) by comments e.g. grid numbering.\n");
  2005. fprintf(stdout,"INFO: \n");
  2006. break;
  2007. case(AUTOMIX):
  2008. fprintf(stdout,"INFO: MIX SEVERAL MONO OR STEREO FILES USING A TIME-CHANGING BALANCE-FUNCTION\n");
  2009. fprintf(stdout,"INFO: \n");
  2010. fprintf(stdout,"INFO: MIX BALANCE FUNCTION .... is a list of value sets.\n");
  2011. fprintf(stdout,"INFO: \n");
  2012. fprintf(stdout,"INFO: .....Each set consists of a time, followed by the RELATIVE level of each file in the mix, at that time.\n");
  2013. fprintf(stdout,"INFO: \n");
  2014. fprintf(stdout,"INFO: .....The values WITHIN A LINE are used to set the RELATIVE levels of the sounds at that time.\n");
  2015. fprintf(stdout,"INFO: .....Whatever set of numbers you use, THESE ARE SCALED so the total set of levels used adds up to 1.0.\n");
  2016. fprintf(stdout,"INFO: .....(This means that if all signals are at max level, the output will never exceed max level:\n");
  2017. fprintf(stdout,"INFO: \n");
  2018. fprintf(stdout,"INFO: .....YOU CANNOT USE THIS DATA TO VARY THE OVERALL LEVEL FROM LINE TO LINE.\n");
  2019. fprintf(stdout,"INFO: .....and, in particular, the values cannot ALL be zero.\n");
  2020. fprintf(stdout,"INFO: \n");
  2021. fprintf(stdout,"INFO: .....(Apply an envelope function (with ENVEL) to change the overall level of the mix output sound).\n");
  2022. fprintf(stdout,"INFO: \n");
  2023. fprintf(stdout,"INFO: MIX ENVELOPE FUNCTION ....Defines (possibly time-varying) gain to be apply to output AFTER BALANCING.\n");
  2024. fprintf(stdout,"INFO: \n");
  2025. break;
  2026. case(MIXTWARP):
  2027. fprintf(stdout,"INFO: TIMEWARP THE DATA IN A MIXFILE\n");
  2028. fprintf(stdout,"INFO: \n");
  2029. fprintf(stdout,"INFO: START LINE...mixfile-line at which warping begins (default: 1st in file)\n");
  2030. fprintf(stdout,"INFO: END LINE.....mixfile-line at which warping ends (default: last in file).\n");
  2031. fprintf(stdout,"INFO: \n");
  2032. fprintf(stdout,"INFO: SORT ENTRY TIMES sorts mixfile so lines are in time-order of entry.\n");
  2033. fprintf(stdout,"INFO: REVERSE TIMING PATTERN: e.g. rit. of sound entries becomes an accel.\n");
  2034. fprintf(stdout,"INFO: REVERSE TIMING & NAMES e.g. rit starting from file A to file Z becomes accel from file Z to A.\n");
  2035. fprintf(stdout,"INFO: FREEZE TIMEGAPS all timegap between sound entries become same as FIRST timegap.\n");
  2036. fprintf(stdout,"INFO: FREEZE TIMEGAPS & NAMES ditto, and all files take firstfile name.\n");
  2037. fprintf(stdout,"INFO: SCATTER ENTRY TIMES in intervals between original entry times. SCATTER is degree of scattering, from none to max, Range(0-1).\n");
  2038. fprintf(stdout,"INFO: SHUFFLE UP ENTRY TIMES shuffle times in file forward by time DISPLACEMENT secs (e.g from a specified line).\n");
  2039. fprintf(stdout,"INFO: ADD TO TIMEGAPS add fixed val PARAMETER secs, to timegaps between sounds.\n");
  2040. fprintf(stdout,"INFO: \n");
  2041. fprintf(stdout,"INFO: THE CREATE & ENLARGE MODES\n");
  2042. fprintf(stdout,"INFO: \n");
  2043. fprintf(stdout,"INFO: If the parameter value is X, then\n");
  2044. fprintf(stdout,"INFO: \n");
  2045. fprintf(stdout,"INFO: CREATE FIXED TIMEGAPS 1..between all sounds,timegap = X secs\n");
  2046. fprintf(stdout,"INFO: CREATE FIXED TIMEGAPS 2..startval+X,startval+2X etc\n");
  2047. fprintf(stdout,"INFO: CREATE FIXED TIMEGAPS 3..startval*X startval*2X etc\n");
  2048. fprintf(stdout,"INFO: CREATE FIXED TIMEGAPS 4..startval*X startval*X*X etc\n");
  2049. fprintf(stdout,"INFO: ENLARGE TIMEGAPS 1.......multiply them by X.\n");
  2050. fprintf(stdout,"INFO: ENLARGE TIMEGAPS 2.......by +X, +2X,+3X etc\n");
  2051. fprintf(stdout,"INFO: ENLARGE TIMEGAPS 3.......by *X *2X *3X\n");
  2052. fprintf(stdout,"INFO: ENLARGE TIMEGAPS 4.......by *X, *X*X, *X*X*X etc. (CARE!!)\n");
  2053. fprintf(stdout,"INFO: \n");
  2054. break;
  2055. case(MIXSHUFL):
  2056. fprintf(stdout,"INFO: SHUFFLE THE DATA IN A MIXFILE\n");
  2057. fprintf(stdout,"INFO: \n");
  2058. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2059. fprintf(stdout,"INFO: \n");
  2060. fprintf(stdout,"INFO: 1) DUPLICATE LINES\n");
  2061. fprintf(stdout,"INFO: \n");
  2062. fprintf(stdout,"INFO: 2) REVERSE ORDER FILENAMES\n");
  2063. fprintf(stdout,"INFO: \n");
  2064. fprintf(stdout,"INFO: 3) SCATTER ORDER FILENAMES\n");
  2065. fprintf(stdout,"INFO: \n");
  2066. fprintf(stdout,"INFO: 4) FIRST FILENAME TO ALL.....and hence first sound in all lines.\n");
  2067. fprintf(stdout,"INFO: \n");
  2068. fprintf(stdout,"INFO: 5) OMIT LINES................(closing up timegaps appropriately).\n");
  2069. fprintf(stdout,"INFO: \n");
  2070. fprintf(stdout,"INFO: 6) OMIT ALTERNATE LINES......(closing up timegaps appropriately).\n");
  2071. fprintf(stdout,"INFO: .............................In modes 5 & 6 mix must be in correct time-order.\n");
  2072. fprintf(stdout,"INFO: .............................mixfiles can be time-ordered using timewarp mode 1\n");
  2073. fprintf(stdout,"INFO: \n");
  2074. fprintf(stdout,"INFO: 1) DUPL LINES, NEW FILENAME..duplicate each line with new sound, newname.\n");
  2075. fprintf(stdout,"INFO: .............................Program checks 'newname' is compatible sndfile,BUT\n");
  2076. fprintf(stdout,"INFO: .............................NO SNDNAME CHECK turns OFF this checking.\n");
  2077. fprintf(stdout,"INFO: \n");
  2078. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  2079. fprintf(stdout,"INFO: \n");
  2080. fprintf(stdout,"INFO: START LINE..line at which shuffling begins (default: 1st in file)\n");
  2081. fprintf(stdout,"INFO: END LINE....line at which shuffling ends (default: last in file).\n");
  2082. fprintf(stdout,"INFO: \n");
  2083. break;
  2084. case(MIXGAIN):
  2085. fprintf(stdout,"INFO: ALTER THE OVERALL LEVEL OF A MIXFILE.\n");
  2086. fprintf(stdout,"INFO: \n");
  2087. fprintf(stdout,"INFO: START LINE..line at which attenuation begins (default: 1st in file)\n");
  2088. fprintf(stdout,"INFO: END LINE....line at which attenuation ends (default: last in file).\n");
  2089. fprintf(stdout,"INFO: GAINVAL.....must be > 0.0\n");
  2090. fprintf(stdout,"INFO: \n");
  2091. fprintf(stdout,"INFO: You can test the overall level of a mix with 'SUBMIX GETLEVEL'\n");
  2092. fprintf(stdout,"INFO: \n");
  2093. break;
  2094. case(MIXSWARP):
  2095. fprintf(stdout,"INFO: ALTER THE SPATIAL DISTRIBUTION OF A MIXFILE.\n");
  2096. fprintf(stdout,"INFO: \n");
  2097. fprintf(stdout,"INFO: THE FOLLOWING MODES ARE TO BE UNDERSTOOD THUS----------------------\n");
  2098. fprintf(stdout,"INFO: \n");
  2099. fprintf(stdout,"INFO: SCATTER ALTERNATING..gives random positions but alternating\n");
  2100. fprintf(stdout,"INFO: .....................to left/right of centre of spatial range specified.\n");
  2101. fprintf(stdout,"INFO: \n");
  2102. fprintf(stdout,"INFO: TWIST WHOLE MIX......Invert stereo in alternate lines of mixfile.\n");
  2103. fprintf(stdout,"INFO: .....................(Can be used to avoid clipping).\n");
  2104. fprintf(stdout,"INFO: \n");
  2105. fprintf(stdout,"INFO: TWIST A LINE.........Invert stereo in specified line of mixfile.\n");
  2106. fprintf(stdout,"INFO: \n");
  2107. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  2108. fprintf(stdout,"INFO: \n");
  2109. fprintf(stdout,"INFO: START LINE...........line at which warping begins (default: 1st in file)\n");
  2110. fprintf(stdout,"INFO: END LINE.............line at which warping ends (default: last in file).\n");
  2111. fprintf(stdout,"INFO: \n");
  2112. break;
  2113. case(MIXSYNC):
  2114. fprintf(stdout,"INFO: SYNCHRONISE SOUNDFILES IN A MIXFILE,\n");
  2115. fprintf(stdout,"INFO: OR GENERATE SUCH A MIXFILE FROM A LIST OF SNDFILES.\n");
  2116. fprintf(stdout,"INFO: \n");
  2117. fprintf(stdout,"INFO: INTEXTFILE......is list of sndfiles OR an existing mixfile.\n");
  2118. fprintf(stdout,"INFO: \n");
  2119. break;
  2120. case(MIXSYNCATT):
  2121. fprintf(stdout,"INFO: SYNCHRONISE ATTACKS OF SOUNDFILES, IN A MIXFILE,\n");
  2122. fprintf(stdout,"INFO: OR GENERATE SUCH A MIXFILE FROM A LIST OF SNDFILES.\n");
  2123. fprintf(stdout,"INFO: \n");
  2124. fprintf(stdout,"INFO: Input file is a list of sndfiles OR an existing mixfile.\n");
  2125. fprintf(stdout,"INFO: \n");
  2126. fprintf(stdout,"INFO: With a sndfilelist (only), each sndname MAY be followed by 2 times,\n");
  2127. fprintf(stdout,"INFO: which delimit the search area for the sound's attack.\n");
  2128. fprintf(stdout,"INFO: \n");
  2129. fprintf(stdout,"INFO: WINDOW DIVIDER..is factor shortening window which scans for the attack.\n");
  2130. fprintf(stdout,"INFO: ................It can be 2,4,8,16, or 32 ONLY.\n");
  2131. fprintf(stdout,"INFO: POWER METHOD....finds peak-power segment, before locating its max sample.\n");
  2132. fprintf(stdout,"INFO: ................Default: program looks purely for maxsample.\n");
  2133. fprintf(stdout,"INFO: \n");
  2134. fprintf(stdout,"INFO: The program estimates output levels required to prevent clipping,\n");
  2135. fprintf(stdout,"INFO: But estimate may be over-cautiously low: adjust with 'SUBMIX ATTENUATE'.\n");
  2136. fprintf(stdout,"INFO: \n");
  2137. break;
  2138. case(MIXTWO):
  2139. fprintf(stdout,"INFO: QUICK MIX OF 2 SNDFILES (HAVING SAME NUMBER OF CHANNELS)\n");
  2140. fprintf(stdout,"INFO: \n");
  2141. fprintf(stdout,"INFO: STAGGER FILE2 ENTRY..2nd file enters, 'stagger' secs after first.\n");
  2142. fprintf(stdout,"INFO: SKIP INTO 2ND FILE...by 'skip' secs, before starting to mix.\n");
  2143. fprintf(stdout,"INFO: AMPLITUDE SKEW.......1st sound has 'skew' times more gain than 2nd.\n");
  2144. fprintf(stdout,"INFO: START MIX AT.........Start the mix at the time specified.\n");
  2145. fprintf(stdout,"INFO: CUT OFF MIX AT.......Stop the mix at the time specified.\n");
  2146. fprintf(stdout,"INFO: \n");
  2147. fprintf(stdout,"INFO: Both files are halved in level\n");
  2148. fprintf(stdout,"INFO: \n");
  2149. break;
  2150. case(MIXMANY):
  2151. fprintf(stdout,"INFO: QUICK MIX OF SEVERAL SNDFILES (HAVING SAME NUMBER OF CHANNELS)\n");
  2152. fprintf(stdout,"INFO: \n");
  2153. break;
  2154. case(MIXBALANCE):
  2155. fprintf(stdout,"INFO: MIX BETWEEN 2 SNDFILES USING A BALANCE FUNCTION.\n");
  2156. fprintf(stdout,"INFO: \n");
  2157. fprintf(stdout,"INFO: \n");
  2158. fprintf(stdout,"INFO: BALANCE FUNCTION...Describes the relative level of the two sounds.\n");
  2159. fprintf(stdout,"INFO: ............................File 1 level is multiplied by the balance value.\n");
  2160. fprintf(stdout,"INFO: ............................File 2 level is multiplied by (1.0 minus the balance value).\n");
  2161. fprintf(stdout,"INFO: START OF MIX....\n");
  2162. fprintf(stdout,"INFO: END OF MIX......Use these to make just part of the mix.\n");
  2163. fprintf(stdout,"INFO: \n");
  2164. break;
  2165. case(MIXCROSS):
  2166. fprintf(stdout,"INFO: QUICK CROSSFADE BETWEEN SNDFILES (WITH SAME NUMBER OF CHANNELS).\n");
  2167. fprintf(stdout,"INFO: \n");
  2168. fprintf(stdout,"INFO: Crossfade is from sndfile1 towards sndfile2.\n");
  2169. fprintf(stdout,"INFO: \n");
  2170. fprintf(stdout,"INFO: \n");
  2171. fprintf(stdout,"INFO: STAGGER FILE2 ENTRY..2nd file starts 'stagger' secs. after 1st.\n");
  2172. fprintf(stdout,"INFO: \n");
  2173. fprintf(stdout,"INFO: CROSSFADE SKEW.......f 1, cosinusoidal-crossfade is normal.\n");
  2174. fprintf(stdout,"INFO: .....................below 1, cosin-fade begins rapidly then slows.\n");
  2175. fprintf(stdout,"INFO: .....................above 1, cosin-fade begins slowly, then speeds up.\n");
  2176. fprintf(stdout,"INFO: \n");
  2177. fprintf(stdout,"INFO: \n");
  2178. fprintf(stdout,"INFO: Stagger approximated in c. hundredths of a sec. For more precise stagger,\n" );
  2179. fprintf(stdout,"INFO: splice silence to start of sndfile2 & use stagger 0 (or use SUBMIX MIX).\n");
  2180. fprintf(stdout,"INFO: \n");
  2181. fprintf(stdout,"INFO: (Only spectral morphing will create true morph between 2 sounds).\n");
  2182. fprintf(stdout,"INFO: \n");
  2183. break;
  2184. case(MIXINTERL):
  2185. fprintf(stdout,"INFO: INTERLEAVE MONO FILES TO MAKE MULTICHANNEL OUTFILE.\n");
  2186. fprintf(stdout,"INFO: \n");
  2187. fprintf(stdout,"INFO: First sndfile goes to left channel of stereo, (or channel 1 of 4), etc.\n");
  2188. fprintf(stdout,"INFO: \n");
  2189. break;
  2190. case(MIXINBETWEEN):
  2191. fprintf(stdout,"INFO: GENERATE A SET OF SOUNDS IN-BETWEEN THE 2 INPUT SOUNDS\n");
  2192. fprintf(stdout,"INFO: THROUGH WEIGHTED MIXES OF THE INPUT SOUNDS,\n");
  2193. fprintf(stdout,"INFO: FROM MOSTLY SOUND1 TO MOSTLY SOUND2.\n");
  2194. fprintf(stdout,"INFO: \n");
  2195. fprintf(stdout,"INFO: Required data is your GENERIC name for the output sndfiles.\n");
  2196. fprintf(stdout,"INFO: \n");
  2197. fprintf(stdout,"INFO: New soundfiles will be called name001 name002 etc\n");
  2198. fprintf(stdout,"INFO: \n");
  2199. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2200. fprintf(stdout,"INFO: \n");
  2201. fprintf(stdout,"INFO: AUTOMATIC......program generates amplitude ratios for the new sounds automatically\n");
  2202. fprintf(stdout,"INFO: ...............and FILES BETWEEN is number of inbetween outfiles to produce.\n");
  2203. fprintf(stdout,"INFO: \n");
  2204. fprintf(stdout,"INFO: MIXING RATIOS..Mixing Ratios is a ratio, or a list of ratios in a textfile.\n");
  2205. fprintf(stdout,"INFO: ...............These are the level of file2 RELATIVE to file 1,for each new outfile,\n");
  2206. fprintf(stdout,"INFO: ...............as FRACTIONS (Range 0-1)\n");
  2207. fprintf(stdout,"INFO: \n");
  2208. fprintf(stdout,"INFO: Ensure NONE of the files to be created already exists!!\n");
  2209. fprintf(stdout,"INFO: \n");
  2210. break;
  2211. case(ENV_CREATE):
  2212. fprintf(stdout,"INFO: CREATE AN ENVELOPE.\n");
  2213. fprintf(stdout,"INFO: \n");
  2214. fprintf(stdout,"INFO: In mode BINARY OUTPUT....If you specify starttime > 0,\n");
  2215. fprintf(stdout,"INFO: .........................envelope values from 0 to starttime hold your startlevel.\n");
  2216. fprintf(stdout,"INFO: \n");
  2217. fprintf(stdout,"INFO: In mode TEXTFILE OUTPUT..File starts at time you specify.\n");
  2218. fprintf(stdout,"INFO: \n");
  2219. fprintf(stdout,"INFO: Required Data is a textfile with the following format:\n");
  2220. fprintf(stdout,"INFO: \n");
  2221. fprintf(stdout,"INFO: time [e]level time [e]level ......\n");
  2222. fprintf(stdout,"INFO: \n");
  2223. fprintf(stdout,"INFO: where time-level pairs can be repeated as often as desired.\n");
  2224. fprintf(stdout,"INFO: Level is a number between 0 and 1, or a dB value between -96 and 0\n");
  2225. fprintf(stdout,"INFO: (you must write 'dB' if you want dB).\n");
  2226. fprintf(stdout,"INFO: \n");
  2227. fprintf(stdout,"INFO: If preceded by an 'e', envelope rises[falls] exponentially to that level.\n");
  2228. fprintf(stdout,"INFO: Default is linear rise[fall].\n");
  2229. fprintf(stdout,"INFO: \n");
  2230. fprintf(stdout,"INFO: Times are in seconds, must increase through the file,\n");
  2231. fprintf(stdout,"INFO: and be separated by a minimum amount to accomodate splices\n");
  2232. fprintf(stdout,"INFO: \n");
  2233. break;
  2234. case(ENV_EXTRACT):
  2235. fprintf(stdout,"INFO: EXTRACT ENVELOPE FROM AN INPUT SOUNDFILE.\n");
  2236. fprintf(stdout,"INFO: \n");
  2237. fprintf(stdout,"INFO: DATA REDUCTION determines quantity v. accuracy of data written to brkfile\n");
  2238. fprintf(stdout,"INFO: \n");
  2239. break;
  2240. case(ENV_PROPOR):
  2241. fprintf(stdout,"INFO: IMPOSE ENVELOPE, PROPORTIONALLY, ON AN INPUT SOUNDFILE.\n");
  2242. fprintf(stdout,"INFO: \n");
  2243. fprintf(stdout,"INFO: ENVELOPE IN TEXTFILE (envelope level values 0 - 32767)\n");
  2244. fprintf(stdout,"INFO: the time values are scaled to run from time 0 to the duration of the soundfile.\n");
  2245. fprintf(stdout,"INFO: \n");
  2246. break;
  2247. case(ENV_IMPOSE):
  2248. fprintf(stdout,"INFO: IMPOSE AN ENVELOPE ON AN INPUT SOUNDFILE.\n");
  2249. fprintf(stdout,"INFO: \n");
  2250. fprintf(stdout,"INFO: ABOUT THE MODES----------------------------------------------------\n");
  2251. fprintf(stdout,"INFO: \n");
  2252. fprintf(stdout,"INFO: ENV FROM OTHER SNDFILE\n");
  2253. fprintf(stdout,"INFO: ENV IN BINARY FILE......In these modes the whole sndfile is enveloped.\n");
  2254. fprintf(stdout,"INFO: \n");
  2255. fprintf(stdout,"INFO: ENV IN TEXTFILE\n");
  2256. fprintf(stdout,"INFO: ENV IN DB TEXTFILE......In these modes, brkpnt may start (and end) at any time in file,\n");
  2257. fprintf(stdout,"INFO: ........................effectively editing it. Must have at least 2 brkpnt pairs.\n");
  2258. fprintf(stdout,"INFO: \n");
  2259. break;
  2260. case(ENV_REPLACE):
  2261. fprintf(stdout,"INFO: REPLACE THE EXISTING ENVELOPE OF AN INPUT SOUNDFILE\n");
  2262. fprintf(stdout,"INFO: WITH A DIFFERENT ENVELOPE.\n");
  2263. fprintf(stdout,"INFO: \n");
  2264. fprintf(stdout,"INFO: In all cases, the entire sndfile is enveloped\n");
  2265. fprintf(stdout,"INFO: \n");
  2266. fprintf(stdout,"INFO: Especially useful for restoring the amplitude contour of a sound\n");
  2267. fprintf(stdout,"INFO: after filtering with time-varying Q-value.\n");
  2268. fprintf(stdout,"INFO: \n");
  2269. break;
  2270. case(ENV_BRKTOENV):
  2271. fprintf(stdout,"INFO: CONVERT A (TEXT) BRKPNT ENVELOPE TO A BINARY ENVELOPE FILE.\n");
  2272. fprintf(stdout,"INFO: \n");
  2273. fprintf(stdout,"INFO: If brkpnt starttime > zero, new envelope will start from zero,\n");
  2274. fprintf(stdout,"INFO: holding the brktable startval as far as first brktable time.\n");
  2275. fprintf(stdout,"INFO: \n");
  2276. break;
  2277. case(ENV_ENVTOBRK):
  2278. fprintf(stdout,"INFO: CONVERT A BINARY ENVELOPE FILE TO A (TEXT) BRKPNT ENVELOPE.\n");
  2279. fprintf(stdout,"INFO: \n");
  2280. fprintf(stdout,"INFO: DATA REDUCTION determines quantity v. accuracy of data written to brkfile\n");
  2281. fprintf(stdout,"INFO: \n");
  2282. break;
  2283. case(ENV_ENVTODBBRK):
  2284. fprintf(stdout,"INFO: CONVERT BINARY ENVELOPE FILE TO (TEXT) BRKPNT ENVELOPE WITH dB VALUES.\n");
  2285. fprintf(stdout,"INFO: \n");
  2286. fprintf(stdout,"INFO: DATA REDUCTION determines quantity v. accuracy of data written to brkfile\n");
  2287. fprintf(stdout,"INFO: \n");
  2288. break;
  2289. case(ENV_DOVETAILING):
  2290. fprintf(stdout,"INFO: DOVETAIL SNDFILE BY ENVELOPING THE START AND END OF IT.\n");
  2291. fprintf(stdout,"INFO: \n");
  2292. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2293. fprintf(stdout,"INFO: \n");
  2294. fprintf(stdout,"INFO: STANDARD linear or exponential fades\n");
  2295. fprintf(stdout,"INFO: DOUBLE STRENGTH doubly exponential fades\n");
  2296. fprintf(stdout,"INFO: \n");
  2297. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  2298. fprintf(stdout,"INFO: \n");
  2299. fprintf(stdout,"INFO: INFADE-DUR.......is duration of start-of-file fade-in.\n");
  2300. fprintf(stdout,"INFO: \n");
  2301. fprintf(stdout,"INFO: OUTFADE-DUR......is duration of end-of-file fade-out.\n");
  2302. fprintf(stdout,"INFO: .................Infade-dur and Outfade-dur must not overlap each another.\n");
  2303. fprintf(stdout,"INFO: \n");
  2304. fprintf(stdout,"INFO: INFADE LINEAR....sets start fade to be linear: (default: exponential fade).\n");
  2305. fprintf(stdout,"INFO: \n");
  2306. fprintf(stdout,"INFO: OUTFADE LINEAR....sets end fade to be linear: (default: exponential fade).\n");
  2307. fprintf(stdout,"INFO: \n");
  2308. fprintf(stdout,"INFO: TIME TYPE ........ 0 takes param values in SECONDS: (default)\n");
  2309. fprintf(stdout,"INFO: 1 takes param values in SAMPLES:\n");
  2310. fprintf(stdout,"INFO: 2 takes param values in GROUPED_SAMPLES:\n");
  2311. fprintf(stdout,"INFO: (e.g. in stereo, each sample-pair counts as 1 item)\n");
  2312. fprintf(stdout,"INFO: \n");
  2313. break;
  2314. case(ENV_CURTAILING):
  2315. fprintf(stdout,"INFO: CURTAIL SNDFILE BY FADING TO ZERO AT SOME TIME WITHIN IT.\n");
  2316. fprintf(stdout,"INFO: \n");
  2317. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2318. fprintf(stdout,"INFO: \n");
  2319. fprintf(stdout,"INFO: START AND END : Give start and end times of fade.\n");
  2320. fprintf(stdout,"INFO: START AND DUR : Give start time of fade, and its duration.\n");
  2321. fprintf(stdout,"INFO: START OF FADE TO END : Give start time of fade only (fade proceeds to end of file).\n");
  2322. fprintf(stdout,"INFO: \n");
  2323. fprintf(stdout,"INFO: The other modes are similar, with more pronounced fades...\n");
  2324. fprintf(stdout,"INFO: START AND END, DOUBLE STRENGTH\n");
  2325. fprintf(stdout,"INFO: START AND DUR, DOUBLE STRENGTH\n");
  2326. fprintf(stdout,"INFO: START OF FADE TO END, DOUBLE STRENGTH\n");
  2327. fprintf(stdout,"INFO: \n");
  2328. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  2329. fprintf(stdout,"INFO: \n");
  2330. fprintf(stdout,"INFO: LINEAR FADE...sets fade to be linear: (default: exponential fade).\n");
  2331. fprintf(stdout,"INFO: \n");
  2332. fprintf(stdout,"INFO: TIME TYPE ........ 0 takes param values in SECONDS: (default)\n");
  2333. fprintf(stdout,"INFO: 1 takes param values in SAMPLES:\n");
  2334. fprintf(stdout,"INFO: 2 takes param values in GROUPED_SAMPLES:\n");
  2335. fprintf(stdout,"INFO: (e.g. in stereo, each sample-pair counts as 1 item)\n");
  2336. break;
  2337. case(ENV_WARPING):
  2338. case(ENV_RESHAPING):
  2339. case(ENV_REPLOTTING):
  2340. switch(process) {
  2341. case(ENV_WARPING):
  2342. fprintf(stdout,"INFO: MODIFY THE ENVELOPE OF A SOUNFILE\n");
  2343. fprintf(stdout,"INFO: \n");
  2344. break;
  2345. case(ENV_RESHAPING):
  2346. fprintf(stdout,"INFO: MODIFY THE ENVELOPE OF A BINARY ENVELOPE FILE\n");
  2347. fprintf(stdout,"INFO: \n");
  2348. break;
  2349. case(ENV_REPLOTTING):
  2350. fprintf(stdout,"INFO: MODIFY THE ENVELOPE OF A (TEXT) BRKPNT ENVELOPE FILE\n");
  2351. fprintf(stdout,"INFO: \n");
  2352. break;
  2353. }
  2354. fprintf(stdout,"INFO: --------------------------- MODES ----------------------------\n");
  2355. fprintf(stdout,"INFO: \n");
  2356. fprintf(stdout,"INFO: NORMALISE----------------------------------------------------\n");
  2357. fprintf(stdout,"INFO: \n");
  2358. fprintf(stdout,"INFO: Expand envelope so that highest point has max possible value.\n");
  2359. fprintf(stdout,"INFO: \n");
  2360. fprintf(stdout,"INFO: TIME-REVERSE-------------------------------------------------\n");
  2361. fprintf(stdout,"INFO: \n");
  2362. fprintf(stdout,"INFO: Reverse the timing of the envelope.\n");
  2363. fprintf(stdout,"INFO: \n");
  2364. fprintf(stdout,"INFO: EXAGGERATE---------------------------------------------------\n");
  2365. fprintf(stdout,"INFO: \n");
  2366. fprintf(stdout,"INFO: Exaggerate the envelope contour.\n");
  2367. fprintf(stdout,"INFO: Exaggeration less than 1, Low envelope vals boosted\n");
  2368. fprintf(stdout,"INFO: Exaggeration greater than 1, High envelope vals boosted.\n");
  2369. fprintf(stdout,"INFO: Value 1, gives no change.\n");
  2370. fprintf(stdout,"INFO: \n");
  2371. fprintf(stdout,"INFO: ATTENUATE----------------------------------------------------\n");
  2372. fprintf(stdout,"INFO: \n");
  2373. fprintf(stdout,"INFO: Change level of envelope by the specified multiplier.\n");
  2374. fprintf(stdout,"INFO: \n");
  2375. fprintf(stdout,"INFO: LIFT ALL-----------------------------------------------------\n");
  2376. fprintf(stdout,"INFO: \n");
  2377. fprintf(stdout,"INFO: Lift entire envelope level by the specified amount.\n");
  2378. fprintf(stdout,"INFO: \n");
  2379. fprintf(stdout,"INFO: TIME-STRETCH-------------------------------------------------\n");
  2380. fprintf(stdout,"INFO: \n");
  2381. fprintf(stdout,"INFO: Timestretch the envelope by the specified multiplier.\n");
  2382. fprintf(stdout,"INFO: Note that a timestretch of less than 1 timeshrinks the envelope.\n");
  2383. fprintf(stdout,"INFO: \n");
  2384. fprintf(stdout,"INFO: FLATTEN------------------------------------------------------\n");
  2385. fprintf(stdout,"INFO: \n");
  2386. fprintf(stdout,"INFO: Flatten envelope contour.\n");
  2387. fprintf(stdout,"INFO: \n");
  2388. fprintf(stdout,"INFO: GATE---------------------------------------------------------\n");
  2389. fprintf(stdout,"INFO: \n");
  2390. fprintf(stdout,"INFO: Envelope values below the gate value are set to zero.\n");
  2391. fprintf(stdout,"INFO: Smoothing zeroes low-level envelope chunks less than 'smoothing' windows long.\n");
  2392. fprintf(stdout,"INFO: A value of zero turns off the smoothing effect.\n");
  2393. fprintf(stdout,"INFO: \n");
  2394. fprintf(stdout,"INFO: INVERT-------------------------------------------------------\n");
  2395. fprintf(stdout,"INFO: \n");
  2396. fprintf(stdout,"INFO: Levels below Gate-level are set to zero. All other levels,\n");
  2397. fprintf(stdout,"INFO: above & below Mirror value, are inverted to other side of mirror.\n");
  2398. fprintf(stdout,"INFO: \n");
  2399. fprintf(stdout,"INFO: LIMIT--------------------------------------------------------\n");
  2400. fprintf(stdout,"INFO: \n");
  2401. fprintf(stdout,"INFO: Levels above Threshold value squeezed down so envelope maxamp becomes Limit.\n");
  2402. fprintf(stdout,"INFO: \n");
  2403. fprintf(stdout,"INFO: CORRUGATE----------------------------------------------------\n");
  2404. fprintf(stdout,"INFO: \n");
  2405. fprintf(stdout,"INFO: Take all troughs in the envelope to zero.\n");
  2406. fprintf(stdout,"INFO: \n");
  2407. fprintf(stdout,"INFO: EXPAND-------------------------------------------------------\n");
  2408. fprintf(stdout,"INFO: \n");
  2409. fprintf(stdout,"INFO: Levels below Gate are set to zero. Other levels squeezed upwards\n");
  2410. fprintf(stdout,"INFO: so minimum level becomes Threshold value.\n");
  2411. fprintf(stdout,"INFO: Smoothing zeroes low-level envelope chunks less than 'smoothing' windows long.\n");
  2412. fprintf(stdout,"INFO: \n");
  2413. fprintf(stdout,"INFO: TRIGGER BURSTS-----------------------------------------------\n");
  2414. fprintf(stdout,"INFO: \n");
  2415. fprintf(stdout,"INFO: Create a new envelope of sudden on-bursts, from existing envelope,\n");
  2416. fprintf(stdout,"INFO: triggered by the rate of rise of the current envelope.\n");
  2417. fprintf(stdout,"INFO: \n");
  2418. fprintf(stdout,"INFO: Data file is a breakpoint envelope for the (triggered) bursts themselves.\n");
  2419. fprintf(stdout,"INFO: To trigger, average-level must be greater than Gate level,\n");
  2420. fprintf(stdout,"INFO: loudness-step must be greater than Min Trigger Level-rise,\n");
  2421. fprintf(stdout,"INFO: and it must have duration less than Max Trigger Duration\n");
  2422. fprintf(stdout,"INFO: \n");
  2423. fprintf(stdout,"INFO: TO CEILING---------------------------------------------------\n");
  2424. fprintf(stdout,"INFO: \n");
  2425. fprintf(stdout,"INFO: Force envelope up to its maximum level, everywhere.\n");
  2426. fprintf(stdout,"INFO: \n");
  2427. fprintf(stdout,"INFO: DUCKED-------------------------------------------------------\n");
  2428. fprintf(stdout,"INFO: \n");
  2429. fprintf(stdout,"INFO: Create ducking envelope from existing envelope.\n");
  2430. fprintf(stdout,"INFO: This can be used to create an envelope to apply to another sound\n");
  2431. fprintf(stdout,"INFO: which is to be mixed with the original sound.\n");
  2432. fprintf(stdout,"INFO: With Envelope WARPING:\n");
  2433. fprintf(stdout,"INFO: When input envelope exceeds Threshold, output envelope is reduced\n");
  2434. fprintf(stdout,"INFO: to Gate level. Elsewhere it is unchanged.\n");
  2435. fprintf(stdout,"INFO: With Envelope RESHAPING or REPLOTTING:\n");
  2436. fprintf(stdout,"INFO: When input envelope exceeds Threshold, output envelope takes\n");
  2437. fprintf(stdout,"INFO: Gate level. Elsewhere it gives unity gain.\n");
  2438. fprintf(stdout,"INFO: \n");
  2439. fprintf(stdout,"INFO: COUNT PEAKS ----------------------------------------------------\n");
  2440. fprintf(stdout,"INFO: \n");
  2441. fprintf(stdout,"INFO: Count peaks in the envelope.\n");
  2442. fprintf(stdout,"INFO: \n");
  2443. break;
  2444. case(ENV_DBBRKTOENV):
  2445. fprintf(stdout,"INFO: CONVERT (TEXT) BRKPNT FILE WITH dB VALS TO BINARY ENVELOPE FILE\n");
  2446. fprintf(stdout,"INFO: \n");
  2447. break;
  2448. case(ENV_DBBRKTOBRK):
  2449. fprintf(stdout,"INFO: CONVERT (TEXT) BRKPNT FILE WITH dB VALS TO GAIN VALS (0-1)\n");
  2450. fprintf(stdout,"INFO: \n");
  2451. break;
  2452. case(ENV_BRKTODBBRK):
  2453. fprintf(stdout,"INFO: CONVERT A (TEXT) BRKPNT FILE WITH GAIN (0-1) VALS TO dB VALS\n");
  2454. fprintf(stdout,"INFO: \n");
  2455. break;
  2456. case(ENV_SWELL):
  2457. fprintf(stdout,"INFO: CAUSE SOUND TO FADE IN TO AND OUT FROM A PEAK MOMENT\n");
  2458. fprintf(stdout,"INFO: \n");
  2459. fprintf(stdout,"INFO: LINEAR FADE causes fades in and out to be linear: (default exponential).\n");
  2460. fprintf(stdout,"INFO: \n");
  2461. break;
  2462. case(ENV_ATTACK):
  2463. fprintf(stdout,"INFO: EMPHASIZE THE ATTACK OF A SOUND\n");
  2464. fprintf(stdout,"INFO: \n");
  2465. fprintf(stdout,"INFO: GAIN................Amplification of attack point.\n");
  2466. fprintf(stdout,"INFO: ....................For strong attack,\n");
  2467. fprintf(stdout,"INFO: ....................reduce overall level of src before processing.\n");
  2468. fprintf(stdout,"INFO: \n");
  2469. fprintf(stdout,"INFO: ATTACK ONSET DUR....Attack onset duration (MS).\n");
  2470. fprintf(stdout,"INFO: \n");
  2471. fprintf(stdout,"INFO: ATTACK DECAY DUR....Attack decay duration (MS).\n");
  2472. fprintf(stdout,"INFO: \n");
  2473. fprintf(stdout,"INFO: LINEAR SLOPES.......sets fades to be linear (default exponential).\n");
  2474. fprintf(stdout,"INFO: \n");
  2475. fprintf(stdout,"INFO: and in various MODES\n");
  2476. fprintf(stdout,"INFO: \n");
  2477. fprintf(stdout,"INFO: GATE LEVEL..........Level for attack point to be recognised.\n");
  2478. fprintf(stdout,"INFO: \n");
  2479. fprintf(stdout,"INFO: APPROX ATTACK TIME..Approx time in sound of attack point,in secs.\n");
  2480. fprintf(stdout,"INFO: \n");
  2481. fprintf(stdout,"INFO: EXACT ATTACK TIME...Exact time in sound of attack point,in secs.\n");
  2482. fprintf(stdout,"INFO: \n");
  2483. break;
  2484. case(ENV_PLUCK):
  2485. fprintf(stdout,"INFO: PLUCK START OF SOUND (MONO FILES ONLY)\n");
  2486. fprintf(stdout,"INFO: \n");
  2487. fprintf(stdout,"INFO: STARTSAMP..Sample, in src sound, at which pluck will END:\n");
  2488. fprintf(stdout,"INFO: ...........must be a sample AT A ZERO_CROSSING...\n");
  2489. fprintf(stdout,"INFO: \n");
  2490. fprintf(stdout,"INFO: WAVELEN....no of (absolute) samples in pluck wavelen: \n");
  2491. fprintf(stdout,"INFO: ...........set to same as src_signal's wavelen immediately after STARTSAMP\n");
  2492. fprintf(stdout,"INFO: \n");
  2493. fprintf(stdout,"INFO: ATKCYCLES..no of wavecycles in pluck-attack.\n");
  2494. fprintf(stdout,"INFO: \n");
  2495. fprintf(stdout,"INFO: DECAYRATE..rate of decay of the pluck_attack.\n");
  2496. fprintf(stdout,"INFO: \n");
  2497. break;
  2498. case(ENV_TREMOL):
  2499. fprintf(stdout,"INFO: TREMOLO A SOUND\n");
  2500. fprintf(stdout,"INFO: \n");
  2501. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2502. fprintf(stdout,"INFO: \n");
  2503. fprintf(stdout,"INFO: FRQWISE....Interpolate linearly between frqs in any frq brktable (default).\n");
  2504. fprintf(stdout,"INFO: PITCHWISE..Interpolate logarithmically (like pitch). (Care with zero frqs).\n");
  2505. fprintf(stdout,"INFO: \n");
  2506. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  2507. fprintf(stdout,"INFO: \n");
  2508. fprintf(stdout,"INFO: TREMOLO FREQUENCY..is frequency of the tremolo vibration itself.\n");
  2509. fprintf(stdout,"INFO: TREMOLO DEPTH......amplitude depth of tremolo.\n");
  2510. fprintf(stdout,"INFO: OVERALL GAIN.......Overall signal gain, or envelope.\n");
  2511. fprintf(stdout,"INFO: \n");
  2512. break;
  2513. case(SIMPLE_TEX):
  2514. case(GROUPS):
  2515. case(DECORATED):
  2516. case(PREDECOR):
  2517. case(POSTDECOR):
  2518. case(ORNATE):
  2519. case(PREORNATE):
  2520. case(POSTORNATE):
  2521. case(MOTIFS):
  2522. case(MOTIFSIN):
  2523. case(TIMED):
  2524. case(TGROUPS):
  2525. case(TMOTIFS):
  2526. case(TMOTIFSIN):
  2527. fprintf(stdout,"INFO: TEXTURE MADE FROM ONE OR SEVERAL INPUT SOUND FILES\n");
  2528. fprintf(stdout,"INFO: \n");
  2529. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2530. fprintf(stdout,"INFO: TYPES OF TEXTURE--------------------------------------------------------------\n");
  2531. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2532. fprintf(stdout,"INFO: \n");
  2533. fprintf(stdout,"INFO: Texture can be SIMPLE,GROUPED,DECORATED,PREDECORATED,POSTDECORATED,\n");
  2534. fprintf(stdout,"INFO: ORNATE,PREORNATE,POSTORNATE, or made up of MOTIFS\n");
  2535. fprintf(stdout,"INFO: OR\n");
  2536. fprintf(stdout,"INFO: a texture where sound-entries are SPECIFICALLY TIMED\n");
  2537. fprintf(stdout,"INFO: and either simple,grouped, or made from motifs.\n");
  2538. fprintf(stdout,"INFO: \n");
  2539. fprintf(stdout,"INFO: ORNAMENTS & MOTIFS........have user-specified pitch-shapes.\n");
  2540. fprintf(stdout,"INFO: DECORATIONS & GROUPS......have random pitch-shapes.\n");
  2541. fprintf(stdout,"INFO: DECORATIONS & ORNAMENTS...decorate the user-specified pitch-sequence.\n");
  2542. fprintf(stdout,"INFO: \n");
  2543. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2544. fprintf(stdout,"INFO: HARMONIC TYPES OF TEXTURE------------------------------------------------------\n");
  2545. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2546. fprintf(stdout,"INFO: \n");
  2547. fprintf(stdout,"INFO: Textures are specified WITHIN A (possibly varying) RANGE OF PITCHES\n");
  2548. fprintf(stdout,"INFO: and within that range, the chosen pitches may be\n");
  2549. fprintf(stdout,"INFO: entirely RANDOM, on a HARMONIC SET (using pitches given),\n");
  2550. fprintf(stdout,"INFO: on a HARMONIC FIELD (uses 8va transpositions of pitches given),\n");
  2551. fprintf(stdout,"INFO: or on HARMONIC SETS, OR FIELDS, WHICH CHANGE THROUGH TIME.\n");
  2552. fprintf(stdout,"INFO: \n");
  2553. fprintf(stdout,"INFO: First note (only) of motifs are guaranateed to be on a harmonic set(field) note\n");
  2554. fprintf(stdout,"INFO: except in MOTIFS IN HF, where motifs notes are forced onto set (field) notes.\n");
  2555. fprintf(stdout,"INFO: \n");
  2556. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2557. fprintf(stdout,"INFO: PARAMETERS FOR TEXTURE---------------------------------------------------------\n");
  2558. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2559. fprintf(stdout,"INFO: \n");
  2560. fprintf(stdout,"INFO: (** starred items CANNOT vay in time)\n");
  2561. fprintf(stdout,"INFO: \n");
  2562. fprintf(stdout,"INFO: OUTPUT DURATION...........**.(min) duration of outfile\n");
  2563. fprintf(stdout,"INFO: \n");
  2564. fprintf(stdout,"INFO: ----------------------------- TIMING PARAMETERS -----------------------------\n");
  2565. fprintf(stdout,"INFO: \n");
  2566. fprintf(stdout,"INFO: EVENT PACKING ...............(average) time between event onsets.\n");
  2567. fprintf(stdout,"INFO: SKIPTIME BETWEEN GROUP,MOTIF ONSETS..(average) time between group,motif onsets.\n");
  2568. fprintf(stdout,"INFO: EVENT SCATTER................randomisation of event, group or motif onsets.\n");
  2569. fprintf(stdout,"INFO: PAUSE BEFORE LINE REPEATS....time between last event of line & start of repetition.\n");
  2570. fprintf(stdout,"INFO: TIME GRID UNIT...............minstep(MS) quantised timegrid (for event starttimes)\n");
  2571. fprintf(stdout,"INFO: TIME GRID FOR NOTEGROUPS.....a timegrid (MS) applying WITHIN groups (for grouped textures)\n");
  2572. fprintf(stdout,"INFO: \n");
  2573. fprintf(stdout,"INFO: ----------------------------- SOUND PARAMETERS -----------------------------\n");
  2574. fprintf(stdout,"INFO: \n");
  2575. fprintf(stdout,"INFO: 1ST SND-IN-LIST TO USE,LAST..1st,last snd to use,from listed input sounds.\n");
  2576. fprintf(stdout,"INFO: \n");
  2577. fprintf(stdout,"INFO: ----------------------------- LOUDNESS PARAMETERS -----------------------------\n");
  2578. fprintf(stdout,"INFO: \n");
  2579. fprintf(stdout,"INFO: MIN EVENT GAIN, MAX..........min & max level of input events\n");
  2580. fprintf(stdout,"INFO: MIN EVENT SUSTAIN, MAX.......min & max sustain-time of events.\n");
  2581. fprintf(stdout,"INFO: OVERALL ATTENUATION..........overall attenuation of the output\n");
  2582. fprintf(stdout,"INFO: \n");
  2583. fprintf(stdout,"INFO: and for grouped textures\n");
  2584. fprintf(stdout,"INFO: \n");
  2585. fprintf(stdout,"INFO: GROUP AMPLITUDE CHANGE.......amplitude change within grouped-events\n");
  2586. fprintf(stdout,"INFO: GROUP AMPCONTOUR TYPE.....**.amplitude contour within grouped-events\n");
  2587. fprintf(stdout,"INFO: \n");
  2588. fprintf(stdout,"INFO: ----------------------------- PITCH PARAMETERS -----------------------------\n");
  2589. fprintf(stdout,"INFO: \n");
  2590. fprintf(stdout,"INFO: MIN PITCH, MAX...............min & max pitch(MIDI): (gives transposition of input)\n");
  2591. fprintf(stdout,"INFO: \n");
  2592. fprintf(stdout,"INFO: ----------------------------- SPATIAL PARAMETERS -----------------------------\n");
  2593. fprintf(stdout,"INFO: \n");
  2594. fprintf(stdout,"INFO: NB: If STEREO source files are USED, SPATIALISATION parameters are IGNORED\n");
  2595. fprintf(stdout,"INFO: \n");
  2596. fprintf(stdout,"INFO: SPATIAL POSITION.............centre of output sound-image.\n");
  2597. fprintf(stdout,"INFO: SPATIAL SPREAD...............spatial-spread of texture events.\n");
  2598. fprintf(stdout,"INFO: \n");
  2599. fprintf(stdout,"INFO: and for grouped textures\n");
  2600. fprintf(stdout,"INFO: \n");
  2601. fprintf(stdout,"INFO: GROUP SPATIALISATION TYPE.**.spatialisation of event within groups\n");
  2602. fprintf(stdout,"INFO: GROUP SPATIALISATION RANGE...spatial range within event-groups\n");
  2603. fprintf(stdout,"INFO: \n");
  2604. fprintf(stdout,"INFO: ----------------------------- OTHER GROUP PARAMETERS -----------------------------\n");
  2605. fprintf(stdout,"INFO: \n");
  2606. fprintf(stdout,"INFO: MIN GROUP-PACKING-TIME,MAX...smallest,largest number of events in groups\n");
  2607. fprintf(stdout,"INFO: MIN GROUP PITCHRANGE, MAX....min,max pitchrange, in semitones, of events in groups\n");
  2608. fprintf(stdout,"INFO: MIN HFIELD NOTES RANGE,MAX...min,max number of hfield-notes range in groups\n");
  2609. fprintf(stdout,"INFO: MIN MOTIF-DUR-MULTIPLIER,MAX min,max multiplier of input duration of motif\n");
  2610. fprintf(stdout,"INFO: PITCH CENTRING............**.how decor pitches centre on line pitches\n");
  2611. fprintf(stdout,"INFO: FIXED TIMESTEP IN GROUP......notes in a group run at a fixed tempo.\n");
  2612. fprintf(stdout,"INFO: FIXED NOTE-SUSTAIN IN MOTIFS all notes in motif have same sustain-time as first.\n");
  2613. fprintf(stdout,"INFO: SCATTER DECOR INSTRS.........orns not confined to instr of ornd-note.\n");
  2614. fprintf(stdout,"INFO: DECORS TO HIGHEST NOTE.......orns on highest note of any chord: default,1st note\n");
  2615. fprintf(stdout,"INFO: DECORS ON EVERY NOTE.........ornaments on all notes of any chord.\n");
  2616. fprintf(stdout,"INFO: DISCARD ORIGINAL LINE........after decoration\n");
  2617. fprintf(stdout,"INFO: \n");
  2618. fprintf(stdout,"INFO: ----------------------------- OTHER PARAMETERS -----------------------------\n");
  2619. fprintf(stdout,"INFO: \n");
  2620. fprintf(stdout,"INFO: SEED.........................same seed-number: reproducible output (0: not so)\n");
  2621. fprintf(stdout,"INFO: PLAY ALL OF INSOUND..........always play whole input-sound (ignoring dur vals).\n");
  2622. fprintf(stdout,"INFO: PLAY FILES CYCLICALLY........play sounds in input order (always uses ALL input sounds).\n");
  2623. fprintf(stdout,"INFO: RANDOMLY PERMUTE EACH CYCLE..permute order of sounds, in each complete cycle.\n");
  2624. fprintf(stdout,"INFO: \n");
  2625. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2626. fprintf(stdout,"INFO: SOME SPECIAL PARAMETER VALUES---------------------------------------------------\n");
  2627. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2628. fprintf(stdout,"INFO: \n");
  2629. fprintf(stdout,"INFO: GROUP SPATIALISATION TYPE VALUES\n");
  2630. fprintf(stdout,"INFO: \n");
  2631. fprintf(stdout,"INFO: 0:still.................1:scattered(default)........2:towards-texture-centre\n");
  2632. fprintf(stdout,"INFO: 3:away-from-centre......4:follow-texmotion..........5:contrary-to-motion\n");
  2633. fprintf(stdout,"INFO: \n");
  2634. fprintf(stdout,"INFO: 4 & 5 only function if spatial position varies in time..\n");
  2635. fprintf(stdout,"INFO: \n");
  2636. fprintf(stdout,"INFO: GROUP AMPCONTOUR TYPE VALUES\n");
  2637. fprintf(stdout,"INFO: \n");
  2638. fprintf(stdout,"INFO: 0:mixed(default)\n");
  2639. fprintf(stdout,"INFO: 1:cresc..............2:flat...............3:decresc..............4:cresc_or_flat\n");
  2640. fprintf(stdout,"INFO: 5:cresc_or_decresc...6:decresc_or_flat....[7:directed_to_event....8:directed_or_flat]\n");
  2641. fprintf(stdout,"INFO: \n");
  2642. fprintf(stdout,"INFO: PITCH CENTRING VALUES\n");
  2643. fprintf(stdout,"INFO: \n");
  2644. fprintf(stdout,"INFO: how decoration pitches centre on decorated line pitches\n");
  2645. fprintf(stdout,"INFO: \n");
  2646. fprintf(stdout,"INFO: 0: centred(default)\n");
  2647. fprintf(stdout,"INFO: 1: above.................2: below...............3: centred_and_above\n");
  2648. fprintf(stdout,"INFO: 4: centred_and_below.....5: above_and_below.....6: all_types\n");
  2649. fprintf(stdout,"INFO: \n");
  2650. fprintf(stdout,"INFO: In all cases except 0, pitchrange shifts to tally with line pitch\n");
  2651. fprintf(stdout,"INFO: \n");
  2652. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2653. fprintf(stdout,"INFO: NOTEDATA IS A TEXTFILE CONTAINING-----------------------------------------------\n");
  2654. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2655. fprintf(stdout,"INFO: \n");
  2656. fprintf(stdout,"INFO: LINE 1: list of (possibly fictional) MIDI pitch of each input snd.\n");
  2657. fprintf(stdout,"INFO: \n");
  2658. fprintf(stdout,"INFO: Then, where motifs, or event timings, or harmonic sets (fields) are required,\n");
  2659. fprintf(stdout,"INFO: or a pitchline is required for ornamenting or decorating..\n");
  2660. fprintf(stdout,"INFO: each subsequent group of lines specifies a NOTELIST\n");
  2661. fprintf(stdout,"INFO: \n");
  2662. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2663. fprintf(stdout,"INFO: NOTELISTS MUST BE IN THIS ORDER-------------------------------------------------\n");
  2664. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2665. fprintf(stdout,"INFO: \n");
  2666. fprintf(stdout,"INFO: Notelist of notes in any timing set\n");
  2667. fprintf(stdout,"INFO: Notelist of notes in any line TO BE ornamented or decorated\n");
  2668. fprintf(stdout,"INFO: Notelist of notes in any harmonic set(s) or field(s) specified.\n");
  2669. fprintf(stdout,"INFO: Notelist(s) of notes in any ornament(s) or motif(s) specified.\n");
  2670. fprintf(stdout,"INFO: \n");
  2671. fprintf(stdout,"INFO: For more than one harmonic set (field),\n");
  2672. fprintf(stdout,"INFO: data should specify chords, placed at appropriate times (see below).\n");
  2673. fprintf(stdout,"INFO: \n");
  2674. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2675. fprintf(stdout,"INFO: NOTELISTS HAVE THE FOLLOWING FORMAT---------------------------------------------\n");
  2676. fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
  2677. fprintf(stdout,"INFO: \n");
  2678. fprintf(stdout,"INFO: first line: #N\n");
  2679. fprintf(stdout,"INFO: other lines: time(SECS) infile_no pitch(MIDI) amp(MIDI) dur(SECS)\n");
  2680. fprintf(stdout,"INFO: \n");
  2681. fprintf(stdout,"INFO: where N = number of notes (and therefore lines) in notelist to follow,\n");
  2682. fprintf(stdout,"INFO: and times in notelist must never decrease.\n");
  2683. fprintf(stdout,"INFO: \n");
  2684. break;
  2685. case(MOD_LOUDNESS):
  2686. fprintf(stdout,"INFO: ADJUST LOUDNESS OF A SOUNDFILE\n");
  2687. fprintf(stdout,"INFO: \n");
  2688. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2689. fprintf(stdout,"INFO: \n");
  2690. fprintf(stdout,"INFO: GAIN:.............adjust level by factor GAIN.\n");
  2691. fprintf(stdout,"INFO: GAINdB:...........adjust level by factor GAIN dB.\n");
  2692. fprintf(stdout,"INFO: NORMALISE:.. .....force level (if necessary) to given value.\n");
  2693. fprintf(stdout,"INFO: FORCE LEVEL:......force level to given value.\n");
  2694. fprintf(stdout,"INFO: BALANCE:..........force max level of file1 to max level of file 2.\n");
  2695. fprintf(stdout,"INFO: INVERT PHASE:...Invert phase of file.\n");
  2696. fprintf(stdout,"INFO: LOUDEST:..........Find loudest sound, and its level.\n");
  2697. fprintf(stdout,"INFO: EQUALISE:..........Force level of all sounds to that of loudest.\n");
  2698. fprintf(stdout,"INFO: PROPORTIONAL:......adjust level following envelope, which is stretched to match duration of infile.\n");
  2699. fprintf(stdout,"INFO: PROPORTIONAL dB:...adjust level following dB envelope, which is stretched to match duration of infile.\n");
  2700. fprintf(stdout,"INFO: \n");
  2701. break;
  2702. case(MOD_SPACE):
  2703. fprintf(stdout,"INFO: CREATE OR ALTER DISTRIBUTION OF SOUND IN STEREO SPACE.\n");
  2704. fprintf(stdout,"INFO: \n");
  2705. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2706. fprintf(stdout,"INFO: \n");
  2707. fprintf(stdout,"INFO: PAN:.........Position or move mono sound in a stereo field.\n");
  2708. fprintf(stdout,"INFO: .............-1 Hard Left : 0 Centre : 1 Hard Right\n");
  2709. fprintf(stdout,"INFO: .............< -1 hard left & attenuated : > 1 hard right & attenuated.\n");
  2710. fprintf(stdout,"INFO: .............Prescale reduces input level to avoid clipping.\n");
  2711. fprintf(stdout,"INFO: \n");
  2712. fprintf(stdout,"INFO: MIRROR:......Invert stereo positions in a stereo file.\n");
  2713. fprintf(stdout,"INFO: \n");
  2714. fprintf(stdout,"INFO: MIRROR PAN:..Invert stereo positions in a pan data file.\n");
  2715. fprintf(stdout,"INFO: \n");
  2716. fprintf(stdout,"INFO: NARROW:......Narrow the stereo image of a sound.\n");
  2717. fprintf(stdout,"INFO: ............. 1 leaves stereo image as it is.\n");
  2718. fprintf(stdout,"INFO: ............. .5 narrows stereo image by half.\n");
  2719. fprintf(stdout,"INFO: ............. 0 converts stereo image to mono.\n");
  2720. fprintf(stdout,"INFO: ............. -ve vals work similarly, but also invert stereo image.\n");
  2721. fprintf(stdout,"INFO: \n");
  2722. break;
  2723. case(SCALED_PAN):
  2724. fprintf(stdout,"INFO: DISTRIBUTE SOUND IN STEREO SPACE, WITH BREAKPOINT DATA TIME_SCALED TO SOUNDFILE DURATION.\n");
  2725. fprintf(stdout,"INFO: \n");
  2726. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  2727. fprintf(stdout,"INFO: \n");
  2728. fprintf(stdout,"INFO: PAN:.........-1 Hard Left : 0 Centre : 1 Hard Right\n");
  2729. fprintf(stdout,"INFO: .............< -1 hard left & attenuated : > 1 hard right & attenuated.\n");
  2730. fprintf(stdout,"INFO: PRESCALE .....reduces input level to avoid clipping.\n");
  2731. fprintf(stdout,"INFO: \n");
  2732. break;
  2733. case(SIN_TAB):
  2734. fprintf(stdout,"INFO: GENERATE A SINUSOIDALLY PANNING PAN-CONTROL FILE.\n");
  2735. fprintf(stdout,"INFO: \n");
  2736. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  2737. fprintf(stdout,"INFO: \n");
  2738. fprintf(stdout,"INFO: CYCLE LENGTH....is duration of one complete sinusoidal pan cycle\n");
  2739. fprintf(stdout,"INFO: PAN WIDTH.......is the width of the pan, from 0 to full width,1\n");
  2740. fprintf(stdout,"INFO: DURATION........is the duration of the output data file.\n");
  2741. fprintf(stdout,"INFO: QUANTISATION....is time step between successive space-positions specified in datafile.\n");
  2742. fprintf(stdout,"INFO: STARTPHASE......is the angular position at which the pan starts.\n");
  2743. fprintf(stdout,"INFO: 0 starts at centre and moves right.\n");
  2744. fprintf(stdout,"INFO: 90 starts at right.\n");
  2745. fprintf(stdout,"INFO: 180 starts at centre and moves left.\n");
  2746. fprintf(stdout,"INFO: 270 starts at left.\n");
  2747. fprintf(stdout,"INFO: \n");
  2748. fprintf(stdout,"INFO: CYCLE LENGTH and PAN WIDTH may vary over time\n");
  2749. fprintf(stdout,"INFO: \n");
  2750. break;
  2751. case(MOD_PITCH):
  2752. fprintf(stdout,"INFO: CHANGE THE SPEED & PITCH OF THE SRC SOUND.\n");
  2753. fprintf(stdout,"INFO: \n");
  2754. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2755. fprintf(stdout,"INFO: \n");
  2756. fprintf(stdout,"INFO: 1) SPEED CHANGE...............also changing sound pitch.\n");
  2757. fprintf(stdout,"INFO: 2) SPEED CHANGE IN SEMITONES..speed shift given in semitones.\n");
  2758. fprintf(stdout,"INFO: 3) VARISPEED INFO.............see how outtimes relate to intimes.\n");
  2759. fprintf(stdout,"INFO: 4) VARISPEED SEMITONES INFO...see how outtimes relate to intimes.\n");
  2760. fprintf(stdout,"INFO: 5) ACCELERATE.................cause sound to accelerate.\n");
  2761. fprintf(stdout,"INFO: 6) VIBRATO....................add vibrato to sound.\n");
  2762. fprintf(stdout,"INFO: \n");
  2763. fprintf(stdout,"INFO: In MODES 1-4 brkpnt times are infiletimes, unless flagged as outfiletimes.\n");
  2764. fprintf(stdout,"INFO: \n");
  2765. fprintf(stdout,"INFO: In MODE 5....Acceleration is multiplication of speed reached at goaltime.\n");
  2766. fprintf(stdout,"INFO: .............If infile not exhausted by goaltime, outfile continues to accelerate.\n");
  2767. fprintf(stdout,"INFO: .............If infile finishes before goaltime, outfile won't reach accel val.\n");
  2768. fprintf(stdout,"INFO: ............ Starttime is time in input/output file at which acceleration begins.\n");
  2769. fprintf(stdout,"INFO: \n");
  2770. fprintf(stdout,"INFO: In MODE 6....Cycles-per-second is rate of vibrato shaking,\n");
  2771. fprintf(stdout,"INFO: .............and Depth is vibrato depth in (possibly fractional) semitones.\n");
  2772. fprintf(stdout,"INFO: \n");
  2773. break;
  2774. case(MOD_REVECHO):
  2775. fprintf(stdout,"INFO: CREATE ECHO OR REVERBERATION OR RESONANCE AROUND A SOUND.\n");
  2776. fprintf(stdout,"INFO: \n");
  2777. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2778. fprintf(stdout,"INFO: \n");
  2779. fprintf(stdout,"INFO: DELAY..........with feedback.\n");
  2780. fprintf(stdout,"INFO: VARYING DELAY..low frequency oscillator varying delay time.\n");
  2781. fprintf(stdout,"INFO: STADIUM ECHO...create echos like stadium P.A.\n");
  2782. fprintf(stdout,"INFO: \n");
  2783. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  2784. fprintf(stdout,"INFO: \n");
  2785. fprintf(stdout,"INFO: DELAYED SIGNAL IN MIX.....0 gives 'dry' result.\n");
  2786. fprintf(stdout,"INFO: \n");
  2787. fprintf(stdout,"INFO: FEEDBACK..................gives resonance related to delay time.\n");
  2788. fprintf(stdout,"INFO: \n");
  2789. fprintf(stdout,"INFO: LOFRQ MODULATION DEPTH....is the depth of delay-variation sweep.\n");
  2790. fprintf(stdout,"INFO: \n");
  2791. fprintf(stdout,"INFO: MODULATION FRQ............freq of sweep:\n");
  2792. fprintf(stdout,"INFO: ..........................-ve frqs give random sweeping.\n");
  2793. fprintf(stdout,"INFO: \n");
  2794. fprintf(stdout,"INFO: PHASE OF MODULATION.......determines where (high,low) sweep begins.\n");
  2795. fprintf(stdout,"INFO: \n");
  2796. fprintf(stdout,"INFO: DELAY OF MODULATION...... determines when sweep begins.\n");
  2797. fprintf(stdout,"INFO: \n");
  2798. fprintf(stdout,"INFO: LENGTH OF TAIL............to allow delayed signal to decay to zero.\n");
  2799. fprintf(stdout,"INFO: \n");
  2800. fprintf(stdout,"INFO: INPUT PRESCALING..........prescales input level, to avoid overload.\n");
  2801. fprintf(stdout,"INFO: \n");
  2802. fprintf(stdout,"INFO: RANDOM SEED...............Nonzero value gives reproducible output\n");
  2803. fprintf(stdout,"INFO: ..........................(with same seed) for random oscillations.\n");
  2804. fprintf(stdout,"INFO: \n");
  2805. fprintf(stdout,"INFO: INVERT DELAYED SIGNAL.....for phasing effects.\n");
  2806. fprintf(stdout,"INFO: \n");
  2807. fprintf(stdout,"INFO: ------------------ AND FOR STADIUM ---------------\n");
  2808. fprintf(stdout,"INFO: \n");
  2809. fprintf(stdout,"INFO: INPUT GAIN................Attenuates signal input to stadium.\n");
  2810. fprintf(stdout,"INFO: \n");
  2811. fprintf(stdout,"INFO: LEVEL LOSS WITH DISTANCE..across stadium.\n");
  2812. fprintf(stdout,"INFO: \n");
  2813. fprintf(stdout,"INFO: STADIUM SIZE MULTIPLIER...Multiplies average time between echos.\n");
  2814. fprintf(stdout,"INFO: ..........................(Default average echo time = 0.1 secs).\n");
  2815. fprintf(stdout,"INFO: \n");
  2816. fprintf(stdout,"INFO: NUMBER OF ECHOS...........Number of stadium echos produced.\n");
  2817. fprintf(stdout,"INFO: \n");
  2818. break;
  2819. case(MOD_RADICAL):
  2820. fprintf(stdout,"INFO: RADICAL CHANGES TO THE SOUND.\n");
  2821. fprintf(stdout,"INFO: \n");
  2822. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2823. fprintf(stdout,"INFO: \n");
  2824. fprintf(stdout,"INFO: REVERSE: Sound plays backwards.\n");
  2825. fprintf(stdout,"INFO: \n");
  2826. fprintf(stdout,"INFO: SHRED: Shred sound within its existing duration.\n");
  2827. fprintf(stdout,"INFO: \n");
  2828. fprintf(stdout,"INFO: NUMBER OF SHREDS. ...number of repeats of shredding process.\n");
  2829. fprintf(stdout,"INFO: AVERAGE CHUNKLENGTH..average length of chunks to cut & permute.\n");
  2830. fprintf(stdout,"INFO: CUT SCATTER..........randomisation of cuts (0 to K): default 1.\n");
  2831. fprintf(stdout,"INFO: .....................where K = total number of chunks (snd-duration/chunklen).\n");
  2832. fprintf(stdout,"INFO: .....................If scatter = 0: snd reordered without shredding.\n");
  2833. fprintf(stdout,"INFO: .....................NB: chunklen*scatter MUST be smaller than snd buffer.\n");
  2834. fprintf(stdout,"INFO: .....................NB2: If Input sound > internal buffer len,\n");
  2835. fprintf(stdout,"INFO: .....................each buffer of sound shredded independently.\n");
  2836. fprintf(stdout,"INFO: \n");
  2837. fprintf(stdout,"INFO: SCRUB: BACK & FORTH, AS IF HANDWINDING OVER A TAPE-HEAD.\n");
  2838. fprintf(stdout,"INFO: \n");
  2839. fprintf(stdout,"INFO: MINIMUM OUTPUT DURATION........min duration of outfile required.\n");
  2840. fprintf(stdout,"INFO: LOWEST DOWNWARD TRANSPOSITION..(semitones).\n");
  2841. fprintf(stdout,"INFO: HIGHEST UPWARD TRANSPOSITION...(semitones).\n");
  2842. fprintf(stdout,"INFO: SCRUBS START NO LATER THAN.....start before time 'start' secs.\n");
  2843. fprintf(stdout,"INFO: SRCUBS END NO EARLIER THAN.....end after time 'end' secs.\n");
  2844. fprintf(stdout,"INFO: \n");
  2845. fprintf(stdout,"INFO: LOSE RESOLUTION: CONVERT TO LOWER SRATE, OR BIT-RESOLUTION.\n");
  2846. fprintf(stdout,"INFO: \n");
  2847. fprintf(stdout,"INFO: BIT_RESOLUTION....range(1 - 16): default 16-bit.\n");
  2848. fprintf(stdout,"INFO: SRATE_DIVISION....range(1-256): default 1 (normal)\n");
  2849. fprintf(stdout,"INFO: entered svalue will be rounded to a power of 2.\n");
  2850. fprintf(stdout,"INFO: Works on MONO FILES ONLY.\n");
  2851. fprintf(stdout,"INFO: \n");
  2852. fprintf(stdout,"INFO: RING MODULATE AGAINST GIVEN FREQUENCY, CREATING SIDEBANDS.\n");
  2853. fprintf(stdout,"INFO: \n");
  2854. fprintf(stdout,"INFO: CROSS MODULATE TWO INFILES CREATING COMPLEX SIDEBANDS.\n");
  2855. fprintf(stdout,"INFO: \n");
  2856. break;
  2857. case(BRASSAGE):
  2858. fprintf(stdout,"INFO: GRANULAR RECONSTITUTION OF SOUNDFILE\n");
  2859. fprintf(stdout,"INFO: \n");
  2860. fprintf(stdout,"INFO: TIMESHRINK..............Speed of advance in infile, relative to outfile. (>=0)\n");
  2861. fprintf(stdout,"INFO: ........................Inverse of timestretch, (& permits infinite timestretch).\n");
  2862. fprintf(stdout,"INFO: \n");
  2863. fprintf(stdout,"INFO: DENSITY.................Amount of grain overlap (>0 : <1 leaves intergrain silence)\n");
  2864. fprintf(stdout,"INFO: ........................Extremely small values will cease to perform predictably.\n");
  2865. fprintf(stdout,"INFO: \n");
  2866. fprintf(stdout,"INFO: GRAINSIZE...............grainsize in MS (must be > 2 * splicelen)\n");
  2867. fprintf(stdout,"INFO: \n");
  2868. fprintf(stdout,"INFO: PITCHSHIFT..............is pitchshift of grains in +|- (fractions of) semitones.\n");
  2869. fprintf(stdout,"INFO: \n");
  2870. fprintf(stdout,"INFO: LOUDNESS RANGE..........is range of gain on grains.\n");
  2871. fprintf(stdout,"INFO: ........................Use only if amp is to vary (over range &/or through time)\n");
  2872. fprintf(stdout,"INFO: \n");
  2873. fprintf(stdout,"INFO: STARTSPLICE.............length of startsplices on grains,in MS.\n");
  2874. fprintf(stdout,"INFO: \n");
  2875. fprintf(stdout,"INFO: ENDSPLICE...............length of endsplices on grains,in MS.\n");
  2876. fprintf(stdout,"INFO: \n");
  2877. fprintf(stdout,"INFO: SPATIAL POSITION........stereo position in outputfile. 0=L,1=R.\n");
  2878. fprintf(stdout,"INFO: ........................Space flag on MULTICHANNEL input, mixes it to mono before acting.\n");
  2879. fprintf(stdout,"INFO: \n");
  2880. fprintf(stdout,"INFO: SEARCHRANGE.............for nextgrain, before current 'now' in infile (Default 0 MS).\n");
  2881. fprintf(stdout,"INFO: \n");
  2882. fprintf(stdout,"INFO: SCATTER.................Randomisation of grain position (Range 0-1).\n");
  2883. fprintf(stdout,"INFO: \n");
  2884. fprintf(stdout,"INFO: OUTPUT LENGTH...........max outfile length (if end of data not reached).\n");
  2885. fprintf(stdout,"INFO: ........................Set to ZERO (Default) for this parameter to be IGNORED.\n");
  2886. fprintf(stdout,"INFO: ........................BUT if TIMESHRINK is ANYWHERE 0: OUTLENGTH must be given.\n");
  2887. fprintf(stdout,"INFO: \n");
  2888. fprintf(stdout,"INFO: CHANNEL TO EXTRACT......Positive value is channel to extract, and process.\n");
  2889. fprintf(stdout,"INFO: ........................Zero (Default) processes all channels.\n");
  2890. fprintf(stdout,"INFO: ........................Negative values create spatialisation > stereo.\n");
  2891. fprintf(stdout,"INFO: ........................e.g. -5 creates a 5-channel spatialised output.\n");
  2892. fprintf(stdout,"INFO: ........................NB spatialisation only happens if \"spatial position\" is itself non-zero.\n");
  2893. fprintf(stdout,"INFO: \n");
  2894. fprintf(stdout,"INFO: PITCH NOT INTERPOLATED..No interpolation for transpose,(quick, dirty).\n");
  2895. fprintf(stdout,"INFO: \n");
  2896. fprintf(stdout,"INFO: \n");
  2897. fprintf(stdout,"INFO: TIMESHRINK LIMIT,\n");
  2898. fprintf(stdout,"INFO: DENSITY LIMIT, ETC..... allow range of values to be specified for any of these params.\n");
  2899. fprintf(stdout,"INFO: ........................e.g. With Density & Density Limit set\n");
  2900. fprintf(stdout,"INFO: ........................random density chosen between these values.\n");
  2901. fprintf(stdout,"INFO: ........................Density & Density Limit can THEMSELVES vary through time.\n");
  2902. fprintf(stdout,"INFO: \n");
  2903. break;
  2904. case(SAUSAGE):
  2905. fprintf(stdout,"INFO: GRANULAR RECONSTITUTION OF SEVERAL SOUNDFILES, SCRAMBLED TOGETHER.\n");
  2906. fprintf(stdout,"INFO: \n");
  2907. fprintf(stdout,"INFO: TIMESHRINK..............Speed of advance in infiles, relative to outfile. (>=0)\n");
  2908. fprintf(stdout,"INFO: ........................Inverse of timestretch, (& permits infinite timestretch).\n");
  2909. fprintf(stdout,"INFO: \n");
  2910. fprintf(stdout,"INFO: DENSITY.................Amount of grain overlap (>0 : <1 leaves intergrain silence)\n");
  2911. fprintf(stdout,"INFO: ........................Extremely small values will cease to perform predictably.\n");
  2912. fprintf(stdout,"INFO: \n");
  2913. fprintf(stdout,"INFO: GRAINSIZE...............grainsize in MS (must be > 2 * splicelen)\n");
  2914. fprintf(stdout,"INFO: \n");
  2915. fprintf(stdout,"INFO: PITCHSHIFT..............is pitchshift of grains in +|- (fractions of) semitones.\n");
  2916. fprintf(stdout,"INFO: \n");
  2917. fprintf(stdout,"INFO: LOUDNESS RANGE..........is range of gain on grains.\n");
  2918. fprintf(stdout,"INFO: ........................Use only if amp is to vary (over range &/or through time)\n");
  2919. fprintf(stdout,"INFO: \n");
  2920. fprintf(stdout,"INFO: STARTSPLICE.............length of startsplices on grains,in MS.\n");
  2921. fprintf(stdout,"INFO: \n");
  2922. fprintf(stdout,"INFO: ENDSPLICE...............length of endsplices on grains,in MS.\n");
  2923. fprintf(stdout,"INFO: \n");
  2924. fprintf(stdout,"INFO: SPATIAL POSITION........stereo position in outputfile. 0=L,1=R.\n");
  2925. fprintf(stdout,"INFO: ........................Space flag on MULTICHANNEL input, mixes it to mono before acting.\n");
  2926. fprintf(stdout,"INFO: \n");
  2927. fprintf(stdout,"INFO: SEARCHRANGE.............for nextgrain, before current 'now' in infile (Default 0 MS).\n");
  2928. fprintf(stdout,"INFO: \n");
  2929. fprintf(stdout,"INFO: SCATTER.................Randomisation of grain position (Range 0-1).\n");
  2930. fprintf(stdout,"INFO: \n");
  2931. fprintf(stdout,"INFO: OUTPUT LENGTH...........max outfile length (if end of data not reached).\n");
  2932. fprintf(stdout,"INFO: ........................Set to zero (Default) for this parameter to be ignored.\n");
  2933. fprintf(stdout,"INFO: ........................BUT if TIMESHRINK is ANYWHERE 0: OUTLENGTH must be given.\n");
  2934. fprintf(stdout,"INFO: \n");
  2935. fprintf(stdout,"INFO: CHANNEL TO EXTRACT......Causes process to work on just 1 specified channel\n");
  2936. fprintf(stdout,"INFO: ........................of a multichannel snd. Zero (Default) processes all channels.\n");
  2937. fprintf(stdout,"INFO: \n");
  2938. fprintf(stdout,"INFO: PITCH NOT INTERPOLATED..No interpolation for transpose,(quick, dirty).\n");
  2939. fprintf(stdout,"INFO: \n");
  2940. fprintf(stdout,"INFO: TIMESHRINK LIMIT,\n");
  2941. fprintf(stdout,"INFO: DENSITY LIMIT ETC.......allow range of values to be specified for any of these params.\n");
  2942. fprintf(stdout,"INFO: ........................e.g. With Density & Density Limit set\n");
  2943. fprintf(stdout,"INFO: ........................random density chosen between these values.\n");
  2944. fprintf(stdout,"INFO: ........................Density & Density Limit can THEMSELVES vary through time.\n");
  2945. fprintf(stdout,"INFO: \n");
  2946. break;
  2947. case(PVOC_ANAL):
  2948. fprintf(stdout,"INFO: CONVERT SOUNDFILE TO SPECTRAL FILE\n");
  2949. fprintf(stdout,"INFO: \n");
  2950. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2951. fprintf(stdout,"INFO: \n");
  2952. fprintf(stdout,"INFO: STANDARD ANALYSIS\n");
  2953. fprintf(stdout,"INFO: OUTPUT SPECTRAL ENVELOPE VALS ONLY\n");
  2954. fprintf(stdout,"INFO: OUTPUT SPECTRAL MAGNITUDE VALS ONLY\n");
  2955. fprintf(stdout,"INFO: \n");
  2956. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  2957. fprintf(stdout,"INFO: \n");
  2958. fprintf(stdout,"INFO: ANALYSIS POINTS..(2-32768 (power of 2)): default 1024\n");
  2959. fprintf(stdout,"INFO: .................More points give better freq resolution\n");
  2960. fprintf(stdout,"INFO: .................but worse time-resolution (e.g. rapidly changing spectrum).\n");
  2961. fprintf(stdout,"INFO: \n");
  2962. fprintf(stdout,"INFO: OVERLAP..........Filter overlap factor (1-4): default 3\n");
  2963. fprintf(stdout,"INFO: \n");
  2964. break;
  2965. case(PVOC_SYNTH):
  2966. fprintf(stdout,"INFO: CONVERT SPECTRAL FILE TO SOUNDFILE\n");
  2967. fprintf(stdout,"INFO: \n");
  2968. break;
  2969. case(PVOC_EXTRACT):
  2970. fprintf(stdout,"INFO: ANALYSE THEN RESYNTHESIZE SOUND WITH VARIOUS OPTIONS\n");
  2971. fprintf(stdout,"INFO: \n");
  2972. fprintf(stdout,"INFO: ANALYSIS POINTS......(2-32768 (power of 2)): default 1024\n");
  2973. fprintf(stdout,"INFO: .....................More points give better freq resolution\n");
  2974. fprintf(stdout,"INFO: .....................but worse time-resolution (e.g. rapidly changing spectrum).\n");
  2975. fprintf(stdout,"INFO: \n");
  2976. fprintf(stdout,"INFO: ANALWINDOW OVERLAP...Range (1-4): default 3\n");
  2977. fprintf(stdout,"INFO: \n");
  2978. fprintf(stdout,"INFO: SELECT A CHANNEL.....resynthesizes odd (1) or even (2) channels only\n");
  2979. fprintf(stdout,"INFO: \n");
  2980. fprintf(stdout,"INFO: BOTTOM RESYNTH CHAN..ignore analysis chans below this in resynth (default: 0)\n");
  2981. fprintf(stdout,"INFO: \n");
  2982. fprintf(stdout,"INFO: TOP RESYNTH CHANNEL..ignore chans above this in resynth (dflt: highest channel)\n");
  2983. fprintf(stdout,"INFO: .....................There is 1 channel for every 2 analysis points.\n");
  2984. fprintf(stdout,"INFO: .....................hence Top Resynth Channel should not be > ANALYSIS POINTS/2\n");
  2985. fprintf(stdout,"INFO: .....................To default to topmost channel, set it to ZERO.\n");
  2986. fprintf(stdout,"INFO: \n");
  2987. fprintf(stdout,"INFO: NB If no parameters are set, the output sound will be the same as the input.\n");
  2988. fprintf(stdout,"INFO: \n");
  2989. break;
  2990. case(EDIT_CUT):
  2991. fprintf(stdout,"INFO: CUT & KEEP A SEGMENT OF A SOUND.\n");
  2992. fprintf(stdout,"INFO: \n");
  2993. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  2994. fprintf(stdout,"INFO: \n");
  2995. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  2996. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  2997. fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
  2998. fprintf(stdout,"INFO: \n");
  2999. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3000. fprintf(stdout,"INFO: \n");
  3001. fprintf(stdout,"INFO: TIME OF STARTCUT..is time in infile where segment to keep begins.\n");
  3002. fprintf(stdout,"INFO: TIME OF ENDCUT....is time in infile where segment to keep ends.\n");
  3003. fprintf(stdout,"INFO: SPLICELEN.........splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
  3004. fprintf(stdout,"INFO: \n");
  3005. break;
  3006. case(STACK):
  3007. fprintf(stdout,"INFO: STACK TRANSPOSED COPIES OF A SOUND ON TOP OF ONE ANOTHER.\n");
  3008. fprintf(stdout,"INFO: \n");
  3009. fprintf(stdout,"INFO: PARAMETERS---------------------------------------------------------------\n");
  3010. fprintf(stdout,"INFO: \n");
  3011. fprintf(stdout,"INFO: TRANSPOSITION DATA transposition in semitones.\n");
  3012. fprintf(stdout,"INFO: ...................If numeric (e.g. N semitones) stack consists of original sound\n");
  3013. fprintf(stdout,"INFO: ...................plus original sound transposed by N, 2N, 3N etc\n");
  3014. fprintf(stdout,"INFO: ...................If data in a file, stack consists of copies of original source\n");
  3015. fprintf(stdout,"INFO: ...................transposed by the values in the file.\n");
  3016. fprintf(stdout,"INFO: NUMBER OF ITEMS....Number of (transposed) copies to mix.\n");
  3017. fprintf(stdout,"INFO: STACK LEAN.........How much louder is highest sound in stack than lowest sound\n");
  3018. fprintf(stdout,"INFO: ATTACK TIME........At what time (in the original file) should the copies be synchronised.\n");
  3019. fprintf(stdout,"INFO: OVERALL GAIN.......Overall gain applied to the output stack\n");
  3020. fprintf(stdout,"INFO: HOW MUCH OF OUTPUT.......What proportion of the output to generate\n");
  3021. fprintf(stdout,"INFO: (if less than 1.0, output will cut off abruptly (click)\n");
  3022. fprintf(stdout,"INFO: \n");
  3023. case(EDIT_CUTMANY):
  3024. fprintf(stdout,"INFO: CUT & KEEP SEVERAL SPECIFIED SEGMENTS OF A SOUND.\n");
  3025. fprintf(stdout,"INFO: \n");
  3026. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3027. fprintf(stdout,"INFO: \n");
  3028. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  3029. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  3030. fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
  3031. fprintf(stdout,"INFO: \n");
  3032. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3033. fprintf(stdout,"INFO: \n");
  3034. fprintf(stdout,"INFO: CUT TIMES.........Start and end times for each cut segment, in a file\n");
  3035. fprintf(stdout,"INFO: SPLICELEN.........splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
  3036. fprintf(stdout,"INFO: \n");
  3037. break;
  3038. case(EDIT_CUTEND):
  3039. fprintf(stdout,"INFO: CUT & KEEP END PORTION OF A SOUND.\n");
  3040. fprintf(stdout,"INFO: \n");
  3041. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3042. fprintf(stdout,"INFO: \n");
  3043. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  3044. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  3045. fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
  3046. fprintf(stdout,"INFO: \n");
  3047. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3048. fprintf(stdout,"INFO: \n");
  3049. fprintf(stdout,"INFO: LENGTH TO KEEP..ending at end of input sound.\n");
  3050. fprintf(stdout,"INFO: SPLICELEN.......splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
  3051. fprintf(stdout,"INFO: \n");
  3052. break;
  3053. case(EDIT_ZCUT):
  3054. fprintf(stdout,"INFO: CUT & KEEP SEGMENT OF MONO SOUND, CUTTING AT ZERO-CROSSINGS (NO SPLICES).\n");
  3055. fprintf(stdout,"INFO: \n");
  3056. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3057. fprintf(stdout,"INFO: \n");
  3058. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  3059. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  3060. fprintf(stdout,"INFO: \n");
  3061. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3062. fprintf(stdout,"INFO: \n");
  3063. fprintf(stdout,"INFO: TIME OF STARTCUT..(approx) time in infile where segment to keep begins.\n");
  3064. fprintf(stdout,"INFO: TIME OF ENDCUT....(approx) time in infile where segment to keep ends.\n");
  3065. fprintf(stdout,"INFO: \n");
  3066. break;
  3067. case(MANY_ZCUTS):
  3068. fprintf(stdout,"INFO: CUT & KEEP SEVERAL SEGMENT OF A MONO SOUND, CUTTING AT ZERO-CROSSINGS (NO SPLICES).\n");
  3069. fprintf(stdout,"INFO: \n");
  3070. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3071. fprintf(stdout,"INFO: \n");
  3072. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  3073. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  3074. fprintf(stdout,"INFO: \n");
  3075. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3076. fprintf(stdout,"INFO: \n");
  3077. fprintf(stdout,"INFO: CUT TIMES.........Start and end times for each cut segment, in a file.\n");
  3078. fprintf(stdout,"INFO: \n");
  3079. break;
  3080. case(EDIT_EXCISE):
  3081. fprintf(stdout,"INFO: DISCARD SPECIFIED CHUNK OF SOUND, CLOSING UP THE GAP.\n");
  3082. fprintf(stdout,"INFO: \n");
  3083. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3084. fprintf(stdout,"INFO: \n");
  3085. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  3086. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  3087. fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
  3088. fprintf(stdout,"INFO: \n");
  3089. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3090. fprintf(stdout,"INFO: \n");
  3091. fprintf(stdout,"INFO: TIME OF STARTCUT..starttime of excision.\n");
  3092. fprintf(stdout,"INFO: TIME OF ENDCUT....endtime of excision.\n");
  3093. fprintf(stdout,"INFO: SPLICELEN.........splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
  3094. fprintf(stdout,"INFO: \n");
  3095. break;
  3096. case(EDIT_EXCISEMANY):
  3097. fprintf(stdout,"INFO: DISCARD SPECIFIED CHUNKS OF A SOUND, CLOSING UP THE GAPS.\n");
  3098. fprintf(stdout,"INFO: \n");
  3099. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3100. fprintf(stdout,"INFO: \n");
  3101. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  3102. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  3103. fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
  3104. fprintf(stdout,"INFO: \n");
  3105. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3106. fprintf(stdout,"INFO: \n");
  3107. fprintf(stdout,"INFO: EXCISEFILE..is a texfile with (paired) start & end times of chunks\n");
  3108. fprintf(stdout,"INFO: ............to be removed. These must be in increasing time order.\n");
  3109. fprintf(stdout,"INFO: \n");
  3110. fprintf(stdout,"INFO: SPLICELEN...splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
  3111. fprintf(stdout,"INFO: \n");
  3112. break;
  3113. case(EDIT_INSERT):
  3114. fprintf(stdout,"INFO: INSERT A 2nd SOUND INTO AN EXISTING SOUND.\n");
  3115. fprintf(stdout,"INFO: \n");
  3116. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3117. fprintf(stdout,"INFO: \n");
  3118. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  3119. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  3120. fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
  3121. fprintf(stdout,"INFO: \n");
  3122. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3123. fprintf(stdout,"INFO: \n");
  3124. fprintf(stdout,"INFO: INSERTION TIME..where 2nd file inserted into 1st.\n");
  3125. fprintf(stdout,"INFO: \n");
  3126. fprintf(stdout,"INFO: SPLICELEN.......splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
  3127. fprintf(stdout,"INFO: \n");
  3128. fprintf(stdout,"INFO: INSERT LEVEL....gain multiplier on inserted file.\n");
  3129. fprintf(stdout,"INFO: \n");
  3130. fprintf(stdout,"INFO: OVERWRITE.......overwrite 1st file with inserted file.\n");
  3131. fprintf(stdout,"INFO: ................(default .. insertion pushes infile apart).\n");
  3132. fprintf(stdout,"INFO: \n");
  3133. break;
  3134. case(EDIT_INSERT2):
  3135. fprintf(stdout,"INFO: INSERT A 2nd SOUND INTO AN EXISTING SOUND, REPLACING A SEGEMNT OF THAT SOUND.\n");
  3136. fprintf(stdout,"INFO: \n");
  3137. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3138. fprintf(stdout,"INFO: \n");
  3139. fprintf(stdout,"INFO: INSERTION TIME..where 2nd file inserted into 1st.\n");
  3140. fprintf(stdout,"INFO: \n");
  3141. fprintf(stdout,"INFO: END TIME OF OVERWRITE..endtime of segment in 1st file to be overwritten by insertion.\n");
  3142. fprintf(stdout,"INFO: \n");
  3143. fprintf(stdout,"INFO: SPLICELEN.......splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
  3144. fprintf(stdout,"INFO: \n");
  3145. fprintf(stdout,"INFO: INSERT LEVEL....gain multiplier on inserted file.\n");
  3146. fprintf(stdout,"INFO: \n");
  3147. break;
  3148. case(EDIT_INSERTSIL):
  3149. fprintf(stdout,"INFO: INSERT SILENCE INTO AN EXISTING SOUND.\n");
  3150. fprintf(stdout,"INFO: \n");
  3151. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3152. fprintf(stdout,"INFO: \n");
  3153. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  3154. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  3155. fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
  3156. fprintf(stdout,"INFO: \n");
  3157. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3158. fprintf(stdout,"INFO: \n");
  3159. fprintf(stdout,"INFO: INSERTION TIME.......where silence inserted.\n");
  3160. fprintf(stdout,"INFO: \n");
  3161. fprintf(stdout,"INFO: DURATION OF SILENCE..duration of silence\n");
  3162. fprintf(stdout,"INFO: \n");
  3163. fprintf(stdout,"INFO: SPLICELEN............splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
  3164. fprintf(stdout,"INFO: \n");
  3165. fprintf(stdout,"INFO: OVERWRITE............overwrite infile with inserted silence.\n");
  3166. fprintf(stdout,"INFO: .....................(default .. insertion pushes infile apart).\n");
  3167. fprintf(stdout,"INFO: RETAIN TRAILING SILENCE....retain silence written over end of file.\n");
  3168. fprintf(stdout,"INFO: .....................(default .. rejects insertion of silence at end of file).\n");
  3169. fprintf(stdout,"INFO: \n");
  3170. break;
  3171. case(EDIT_JOIN):
  3172. fprintf(stdout,"INFO: JOIN FILES TOGETHER, ONE AFTER ANOTHER.\n");
  3173. fprintf(stdout,"INFO: \n");
  3174. fprintf(stdout,"INFO: SPLICE........duration of splices, in MS (default 15)\n");
  3175. fprintf(stdout,"INFO: SPLICE START..splices start of first file.\n");
  3176. fprintf(stdout,"INFO: SPLICE END....splices end of last file.\n");
  3177. fprintf(stdout,"INFO: \n");
  3178. break;
  3179. case(HOUSE_COPY):
  3180. fprintf(stdout,"INFO: PRODUCE COPIES OF THE INFILE\n");
  3181. fprintf(stdout,"INFO: \n");
  3182. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3183. fprintf(stdout,"INFO: \n");
  3184. fprintf(stdout,"INFO: COPY ONCE\n" );
  3185. fprintf(stdout,"INFO: \n");
  3186. fprintf(stdout,"INFO: COPY MANY\n");
  3187. fprintf(stdout,"INFO: \n");
  3188. fprintf(stdout,"INFO: NUMBER OF DUPLICATES....is number of copies to produce.\n");
  3189. fprintf(stdout,"INFO: \n");
  3190. fprintf(stdout,"INFO: IGNORE EXISTING COPIES..don't overwrite files with any of these names.\n");
  3191. fprintf(stdout,"INFO: ........................Otherwise process HALTS on discovering\n");
  3192. fprintf(stdout,"INFO: ........................a pre-existing file.\n");
  3193. fprintf(stdout,"INFO: \n");
  3194. break;
  3195. case(HOUSE_DEL):
  3196. fprintf(stdout,"INFO: DELETE EXISTING COPIES OF A FILE\n");
  3197. fprintf(stdout,"INFO: \n");
  3198. fprintf(stdout,"INFO: If you specify the generic name 'xx',\n");
  3199. fprintf(stdout,"INFO: Deletes any files having names xxN, where N is an integer.\n");
  3200. fprintf(stdout,"INFO: \n");
  3201. fprintf(stdout,"INFO: CARE: No checks are made that these ARE COPIES of file xx!!\n");
  3202. fprintf(stdout,"INFO: \n");
  3203. fprintf(stdout,"INFO: SEARCH FOR ALL COPIES...Program checks all names in numbered sequence.\n");
  3204. fprintf(stdout,"INFO: ........................Without this flag, once a numbered file is missing,\n");
  3205. fprintf(stdout,"INFO: ........................program checks for %d more named files before halting.\n",COPYDEL_OVERMAX);
  3206. fprintf(stdout,"INFO: ........................With flag, program searches for all possible\n");
  3207. fprintf(stdout,"INFO: ........................duplicate filenames. This may take some time.\n");
  3208. fprintf(stdout,"INFO: \n");
  3209. break;
  3210. case(HOUSE_CHANS):
  3211. fprintf(stdout,"INFO: EXTRACT OR CONVERT CHANNELS OF SOUNDFILE.\n");
  3212. fprintf(stdout,"INFO: \n");
  3213. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3214. fprintf(stdout,"INFO: \n");
  3215. fprintf(stdout,"INFO: EXTRACT A CHANNEL\n");
  3216. fprintf(stdout,"INFO: ..........CHANNEL TO GET is channel to extract\n" );
  3217. fprintf(stdout,"INFO: \n");
  3218. fprintf(stdout,"INFO: EXTRACT ALL CHANNELS\n");
  3219. fprintf(stdout,"INFO: \n");
  3220. fprintf(stdout,"INFO: ZERO ONE CHANNEL\n");
  3221. fprintf(stdout,"INFO: ..........CHANNEL TO ZERO is channel to set to zero.\n" );
  3222. fprintf(stdout,"INFO: ..........mono file goes to just one side of stereo outfile.\n");
  3223. fprintf(stdout,"INFO: ..........stereo file has one channel zeroed out.\n");
  3224. fprintf(stdout,"INFO: \n");
  3225. fprintf(stdout,"INFO: STEREO TO MONO\n");
  3226. fprintf(stdout,"INFO: ..........INVERT CHANNEL2 PHASE: inverts channel 2 phase before mixing.\n" );
  3227. fprintf(stdout,"INFO: \n");
  3228. fprintf(stdout,"INFO: MONO TO STEREO\n");
  3229. fprintf(stdout,"INFO: ..........Creates a 2-channel equivalent of mono infile.\n");
  3230. fprintf(stdout,"INFO: \n");
  3231. break;
  3232. case(HOUSE_BUNDLE):
  3233. fprintf(stdout,"INFO: COMPARE A LIST OF FILES BY TYPE OR PROPERTIES, AND LIST CHOSEN FILES IN A TEXTFILE\n");
  3234. fprintf(stdout,"INFO: \n");
  3235. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3236. fprintf(stdout,"INFO: \n");
  3237. fprintf(stdout,"INFO: ANY FILES........Bundle all entered files.\n");
  3238. fprintf(stdout,"INFO: \n");
  3239. fprintf(stdout,"INFO: NON-TEXT FILES...Bundle any non-text files entered.\n");
  3240. fprintf(stdout,"INFO: \n");
  3241. fprintf(stdout,"INFO: SAME TYPE........Bundle all non-text files of same type as first\n");
  3242. fprintf(stdout,"INFO: .................non-text file entered. e.g. all analysis files....\n");
  3243. fprintf(stdout,"INFO: \n");
  3244. fprintf(stdout,"INFO: SAME PROPERTIES..Bundle all non-text files with same properties\n");
  3245. fprintf(stdout,"INFO: .................as first non-text file entered.\n");
  3246. fprintf(stdout,"INFO: \n");
  3247. fprintf(stdout,"INFO: SAME CHANNELS....If first non-text file entered is a soundfile,\n");
  3248. fprintf(stdout,"INFO: .................bundle only soundfiles with same channel count.\n");
  3249. fprintf(stdout,"INFO: \n");
  3250. break;
  3251. case(HOUSE_SORT):
  3252. fprintf(stdout,"INFO: SORT FILES LISTED IN A TEXTFILE.\n");
  3253. fprintf(stdout,"INFO: \n");
  3254. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3255. fprintf(stdout,"INFO: \n");
  3256. fprintf(stdout,"INFO: BY FILETYPE\n");
  3257. fprintf(stdout,"INFO: \n");
  3258. fprintf(stdout,"INFO: Sorts files into different types.\n");
  3259. fprintf(stdout,"INFO: Lists filenames in separate textfiles.. \n");
  3260. fprintf(stdout,"INFO: \n");
  3261. fprintf(stdout,"INFO: BY SAMPLE RATE\n");
  3262. fprintf(stdout,"INFO: \n");
  3263. fprintf(stdout,"INFO: Sorts any soundfiles to different sampling rates.\n");
  3264. fprintf(stdout,"INFO: Lists filenames in separate textfiles.. \n");
  3265. fprintf(stdout,"INFO: \n");
  3266. fprintf(stdout,"INFO: BY DURATION\n");
  3267. fprintf(stdout,"INFO: \n");
  3268. fprintf(stdout,"INFO: Sorts any soundfiles to different lengths.\n");
  3269. fprintf(stdout,"INFO: SMALL is max size of smallest files. (secs)\n");
  3270. fprintf(stdout,"INFO: LARGE is min size of largest files. (secs)\n");
  3271. fprintf(stdout,"INFO: STEP is size-steps between file types. (secs)\n");
  3272. fprintf(stdout,"INFO: Use DON'T DISPLAY TIMINGS to suppress time values in outfile.\n");
  3273. fprintf(stdout,"INFO: \n");
  3274. fprintf(stdout,"INFO: BY LOG DURATION\n");
  3275. fprintf(stdout,"INFO: \n");
  3276. fprintf(stdout,"INFO: The same, except STEP is duration ratio between file types.\n");
  3277. fprintf(stdout,"INFO: Use DON'T DISPLAY TIMINGS to suppress time values in outfile.\n");
  3278. fprintf(stdout,"INFO: \n");
  3279. fprintf(stdout,"INFO: INTO DURATION ORDER\n");
  3280. fprintf(stdout,"INFO: \n");
  3281. fprintf(stdout,"INFO: Sorts any sndfiles into duration order.\n");
  3282. fprintf(stdout,"INFO: Use DON'T DISPLAY TIMINGS to suppress time values in outfile.\n");
  3283. fprintf(stdout,"INFO: \n");
  3284. fprintf(stdout,"INFO: FIND ROGUES\n");
  3285. fprintf(stdout,"INFO: \n");
  3286. fprintf(stdout,"INFO: Sort out any non- or invalid soundfiles (ONLY).\n");
  3287. fprintf(stdout,"INFO: \n");
  3288. break;
  3289. case(HOUSE_SPEC):
  3290. fprintf(stdout,"INFO: ALTER THE SPECIFICATION OF A SOUNDFILE\n");
  3291. fprintf(stdout,"INFO: \n");
  3292. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3293. fprintf(stdout,"INFO: \n");
  3294. fprintf(stdout,"INFO: CHANGE SAMPLING RATE\n");
  3295. fprintf(stdout,"INFO: \n");
  3296. fprintf(stdout,"INFO: New sampling rate must be one of...\n");
  3297. fprintf(stdout,"INFO: 48000,24000,44100,22050,32000,16000\n");
  3298. fprintf(stdout,"INFO: \n");
  3299. fprintf(stdout,"INFO: CONVERT SAMPLE FORMAT\n");
  3300. fprintf(stdout,"INFO: \n");
  3301. fprintf(stdout,"INFO: Convert from integer to float, or vice versa.\n");
  3302. fprintf(stdout,"INFO: \n");
  3303. fprintf(stdout,"INFO: CHANGE PROPERTIES OF SOUND (USE WITH CAUTION!!)\n");
  3304. fprintf(stdout,"INFO: \n");
  3305. fprintf(stdout,"INFO: SAMPLE RATE..is the new sample rate to impose.\n");
  3306. fprintf(stdout,"INFO: .............NB: this does NOT RESAMPLE the data.\n");
  3307. fprintf(stdout,"INFO: .............Simply causes data to be read at different srate.\n");
  3308. fprintf(stdout,"INFO: .............Sound has same number of samples, different duration,\n");
  3309. fprintf(stdout,"INFO: .............and will appear to be transposed in pitch.\n");
  3310. fprintf(stdout,"INFO: CHANNELS.....is the new channel count to impose.\n");
  3311. fprintf(stdout,"INFO: .............NB: this does NOT RECHANNEL the data. e.g.\n");
  3312. fprintf(stdout,"INFO: .............Stereo file set to mono will appear twice as long.\n");
  3313. fprintf(stdout,"INFO: SAMPLE TYPE..(0=integers 1=floats) New sample type to impose.\n");
  3314. fprintf(stdout,"INFO: .............USE ONLY TO RESTORE A CORRUPTED HEADER.\n");
  3315. fprintf(stdout,"INFO: \n");
  3316. break;
  3317. case(HOUSE_EXTRACT):
  3318. fprintf(stdout,"INFO: EXTRACT SIGNIFICANT DATA FROM SNDFILES.\n");
  3319. fprintf(stdout,"INFO: \n");
  3320. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3321. fprintf(stdout,"INFO: \n");
  3322. fprintf(stdout,"INFO: GATED EXTRACTION.....Cut out & keep significant events from sndfile.\n");
  3323. fprintf(stdout,"INFO: .....................in separate files.\n");
  3324. fprintf(stdout,"INFO: \n");
  3325. fprintf(stdout,"INFO: GATE LEVEL .........level below which sounds are omitted.\n");
  3326. fprintf(stdout,"INFO: SPLICE LENGTH.......in milliseconds (default 15ms)\n");
  3327. fprintf(stdout,"INFO: ENDGATE LEVEL.......level below which END of sound cut off.\n");
  3328. fprintf(stdout,"INFO: (If set at zero, defaults to GATE value).\n");
  3329. fprintf(stdout,"INFO: THRESHOLD ..........Level within extracted event must exceed threshold,\n");
  3330. fprintf(stdout,"INFO: if event is to be retained.(default 0)\n");
  3331. fprintf(stdout,"INFO: RETAIN TO ..........N sectors before start of next sound-segment.(default 0)\n");
  3332. fprintf(stdout,"INFO: ('Sectors' are envelope blocks,see EXTRACTION PREVIEW)\n");
  3333. fprintf(stdout,"INFO: BAKTRAK ............and keep N sectors prior to gate-on, but only if\n");
  3334. fprintf(stdout,"INFO: any segment level is above INITIAL LEVEL (see below).\n");
  3335. fprintf(stdout,"INFO: INITIAL LEVEL.......for use with baktraking.\n");
  3336. fprintf(stdout,"INFO: MIN DURATION........of segments to keep (secs).\n");
  3337. fprintf(stdout,"INFO: GATE WINDOWS........Sound gates OFF only if level stays below gate\n");
  3338. fprintf(stdout,"INFO: for (GATE_WINDOWS+1) sectors. (default 0).\n");
  3339. fprintf(stdout,"INFO: \n");
  3340. fprintf(stdout,"INFO: EXTRACTION PREVIEW...create pseudo-sndfile showing envelope of sndfile,sector by sector.\n");
  3341. fprintf(stdout,"INFO: .....................View this file to choose parameters for GATED EXTRACTION.\n");
  3342. fprintf(stdout,"INFO: \n");
  3343. fprintf(stdout,"INFO: TOP AND TAIL.........Remove low level signal from start and end of a sound.\n");
  3344. fprintf(stdout,"INFO: \n");
  3345. fprintf(stdout,"INFO: GATE LEVEL .....is level ABOVE which signal is accepted.\n");
  3346. fprintf(stdout,"INFO: (Range 0-1 : default 0).\n");
  3347. fprintf(stdout,"INFO: SPLICE LENGTH...in milliseconds (default 15ms)\n");
  3348. fprintf(stdout,"INFO: NO START TRIM...Don't trim beginning of file.\n");
  3349. fprintf(stdout,"INFO: NO END TRIM.....Don't trim end of file.\n");
  3350. fprintf(stdout,"INFO: Default: trims BOTH.\n");
  3351. fprintf(stdout,"INFO: \n");
  3352. fprintf(stdout,"INFO: REMOVE DC............shift entire signal to eliminate DC drift.\n");
  3353. fprintf(stdout,"INFO: \n");
  3354. fprintf(stdout,"INFO: FIX BY HAND............For each bad sample, give sample number and value you want it to be.\n");
  3355. fprintf(stdout,"INFO: \n");
  3356. fprintf(stdout,"INFO: FIND AND LIST ONSETS.....Find start-times of significant events from sndfile.\n");
  3357. fprintf(stdout,"INFO: ..........................................and store in a textdata file.\n");
  3358. fprintf(stdout,"INFO: \n");
  3359. fprintf(stdout,"INFO: GATE LEVEL .........level below which sounds are omitted.\n");
  3360. fprintf(stdout,"INFO: ENDGATE LEVEL.......level below which END of sound cut off.\n");
  3361. fprintf(stdout,"INFO: (If set at zero, defaults to GATE value).\n");
  3362. fprintf(stdout,"INFO: THRESHOLD ..........Level within extracted event must exceed threshold,\n");
  3363. fprintf(stdout,"INFO: if event is to be retained.(default 0)\n");
  3364. fprintf(stdout,"INFO: BAKTRAK ............and keep N sectors prior to gate-on, but only if\n");
  3365. fprintf(stdout,"INFO: any segment level is above INITIAL LEVEL (see below).\n");
  3366. fprintf(stdout,"INFO: INITIAL LEVEL.......for use with baktraking.\n");
  3367. fprintf(stdout,"INFO: MIN DURATION........of segments to keep (secs).\n");
  3368. fprintf(stdout,"INFO: GATE WINDOWS........Sound gates OFF only if level stays below gate\n");
  3369. fprintf(stdout,"INFO: for (GATE_WINDOWS+1) sectors. (default 0).\n");
  3370. fprintf(stdout,"INFO: \n");
  3371. break;
  3372. case(TOPNTAIL_CLICKS):
  3373. fprintf(stdout,"INFO: REMOVE CLICKS FROM START AND/OR END OF SOUND.\n");
  3374. fprintf(stdout,"INFO: \n");
  3375. fprintf(stdout,"INFO: GATE LEVEL .....is level ABOVE which signal is accepted.\n");
  3376. fprintf(stdout,"INFO: (Range 0-1 : default 0).\n");
  3377. fprintf(stdout,"INFO: SPLICE LENGTH...in milliseconds (default 2ms)\n");
  3378. fprintf(stdout,"INFO: START TRIM......Trim beginning of file.\n");
  3379. fprintf(stdout,"INFO: END TRIM........Trim end of file.\n");
  3380. fprintf(stdout,"INFO: \n");
  3381. break;
  3382. case(HOUSE_GATE):
  3383. fprintf(stdout,"INFO: CUT UP A SOUNDFILE AT ZERO AMPLITUDE POINTS\n");
  3384. fprintf(stdout,"INFO: \n");
  3385. fprintf(stdout,"INFO: MIN ZERO CNT FOR CUT POINT....minimum number of consecutive zero samples (per channel).\n");
  3386. fprintf(stdout,"INFO: to indicate a silent gap in the file, where it can be cut.\n");
  3387. break;
  3388. case(HOUSE_BAKUP):
  3389. fprintf(stdout,"INFO: CONCATENATE FILES INTO BACKUP FILE\n");
  3390. fprintf(stdout,"INFO: \n");
  3391. fprintf(stdout,"INFO: Takes any number of soundfiles and \n");
  3392. fprintf(stdout,"INFO: creates a 'sndfile' containing those files separated by silent gaps.\n\n");
  3393. fprintf(stdout,"INFO: Files must all have same number of channels.\n");
  3394. break;
  3395. case(HOUSE_DUMP):
  3396. fprintf(stdout,"INFO: DUMP FILES TO SPECIAL BAKUP FILE\n");
  3397. fprintf(stdout,"INFO: \n");
  3398. fprintf(stdout,"INFO: Takes any number of any kind(s) of soundsystem files, and\n");
  3399. fprintf(stdout,"INFO: creates a 'sndfile' containing those files PLUS their headers.\n");
  3400. fprintf(stdout,"INFO: A textfile, listing the files SUCCESFULLY stored, is also created.\n");
  3401. fprintf(stdout,"INFO: \n");
  3402. fprintf(stdout,"INFO: Each sound+HEADER is preceded by a 'bleep',\n");
  3403. fprintf(stdout,"INFO: (for identification purposes when searching sound-tape),\n");
  3404. fprintf(stdout,"INFO: and the output concluded by a longer bleep.\n");
  3405. fprintf(stdout,"INFO: \n");
  3406. fprintf(stdout,"INFO: This file can be stored and recovered from DAT, using DIGITAL OUTPUT and INPUT ONLY.\n");
  3407. fprintf(stdout,"INFO: \n");
  3408. fprintf(stdout,"INFO: Restore such dumped-files with RECOVER option.\n");
  3409. break;
  3410. case(HOUSE_RECOVER):
  3411. fprintf(stdout,"INFO: RECOVER DUMPED FILES.\n");
  3412. fprintf(stdout,"INFO: \n");
  3413. fprintf(stdout,"INFO: HEADER COPIES RETRIEVED..In dump file, each file has 100 header copies.\n");
  3414. fprintf(stdout,"INFO: ......................This parameter specifies the minimum fraction of copies to retrieve\n");
  3415. fprintf(stdout,"INFO: ......................to verify recovery. Range (0 to 1)\n");
  3416. fprintf(stdout,"INFO: \n");
  3417. fprintf(stdout,"INFO: MARKER VALIDITY.......fraction of bytes in header-marker to recover\n");
  3418. fprintf(stdout,"INFO: ......................to verify we've found a header. Range (0 to 1)\n");
  3419. fprintf(stdout,"INFO: \n");
  3420. fprintf(stdout,"INFO: HEADER CONSISTENCY....fraction of bytes in one of header copies\n");
  3421. fprintf(stdout,"INFO: ......................that must tally with bytes in other versions\n");
  3422. fprintf(stdout,"INFO: ......................to qualify it as a true 'copy'. Range (0 to 1)\n");
  3423. fprintf(stdout,"INFO: \n");
  3424. fprintf(stdout,"INFO: SIGNAL SHIFT TO APLY..Bleep should be at level %d exactly,\n",SQUAREAMP);
  3425. fprintf(stdout,"INFO: ......................and should start with +ve values.\n");
  3426. fprintf(stdout,"INFO: ......................If not, this is the linear shift to apply to data\n");
  3427. fprintf(stdout,"INFO: ......................to get rid of the anomaly. (view file first).\n");
  3428. fprintf(stdout,"INFO: \n");
  3429. fprintf(stdout,"INFO: PHASE INVERSION.......If the data is phase inverted, this flag restores the original phase\n");
  3430. fprintf(stdout,"INFO: ......................(it is applied AFTER any shift).\n");
  3431. fprintf(stdout,"INFO: \n");
  3432. fprintf(stdout,"INFO: Recovered files will NOT be listed on the workspace.\n");
  3433. fprintf(stdout,"INFO: Recovery information is written to a REPORT FILE as well as to the screen.\n");
  3434. fprintf(stdout,"INFO: \n");
  3435. fprintf(stdout,"INFO: Dumped datafiles must be transferred DIGITALLY to & from tape.\n");
  3436. fprintf(stdout,"INFO: \n");
  3437. break;
  3438. case(HOUSE_DISK):
  3439. fprintf(stdout,"INFO: DISPLAY AVAILABLE SPACE ON DISK.\n");
  3440. fprintf(stdout,"INFO: \n");
  3441. fprintf(stdout,"INFO: If a sndfile is input, its sample rate will govern space calculations.\n");
  3442. fprintf(stdout,"INFO: \n");
  3443. break;
  3444. case(INFO_PROPS):
  3445. fprintf(stdout,"INFO: DISPLAY PROPERTIES OF A SNDFILING-SYSTEM FILE\n");
  3446. fprintf(stdout,"INFO: \n");
  3447. break;
  3448. case(INFO_SFLEN):
  3449. fprintf(stdout,"INFO: DISPLAY DURATION OF A SNDFILING-SYSTEM FILE\n");
  3450. fprintf(stdout,"INFO: \n");
  3451. break;
  3452. case(INFO_TIMELIST):
  3453. fprintf(stdout,"INFO: LIST DURATIONS OF SEVERAL SNDFILING-SYSTEM FILES\n");
  3454. fprintf(stdout,"INFO: \n");
  3455. break;
  3456. case(INFO_LOUDLIST):
  3457. fprintf(stdout,"INFO: LIST MAXIMUM LEVEL OF SEVERAL SOUNDFILES\n");
  3458. fprintf(stdout,"INFO: \n");
  3459. break;
  3460. case(INFO_TIMESUM):
  3461. fprintf(stdout,"INFO: SUM DURATIONS OF SEVERAL SNDFILING-SYSTEM FILES\n");
  3462. fprintf(stdout,"INFO: \n");
  3463. fprintf(stdout,"INFO: SPLICELEN is in milliseconds. (Default: 15ms)\n");
  3464. fprintf(stdout,"INFO: \n");
  3465. break;
  3466. case(INFO_TIMEDIFF):
  3467. fprintf(stdout,"INFO: FIND DIFFERENCE IN DURATION OF TWO SOUND FILES\n");
  3468. fprintf(stdout,"INFO: \n");
  3469. break;
  3470. case(INFO_SAMPTOTIME):
  3471. fprintf(stdout,"INFO: CONVERT SAMPLE COUNT TO TIME IN SOUNDFILE\n");
  3472. fprintf(stdout,"INFO: \n");
  3473. fprintf(stdout,"INFO: with COUNT SAMPLES IN GROUPS e.g. stereo file: sample-PAIRS counted.\n");
  3474. fprintf(stdout,"INFO: \n");
  3475. break;
  3476. case(INFO_TIMETOSAMP):
  3477. fprintf(stdout,"INFO: CONVERT TIME TO SAMPLE COUNT IN SOUNDFILE\n");
  3478. fprintf(stdout,"INFO: \n");
  3479. fprintf(stdout,"INFO: with COUNT SAMPLES IN GROUPS e.g. stereo file: sample-PAIRS counted.\n");
  3480. fprintf(stdout,"INFO: \n");
  3481. break;
  3482. case(INFO_MAXSAMP):
  3483. fprintf(stdout,"INFO: FIND MAXIMUM SAMPLE IN SOUNDFILE OR BINARY DATA FILE\n");
  3484. fprintf(stdout,"INFO: \n");
  3485. fprintf(stdout,"INFO: FORCE SEARCH IN SOUND Ignores any maxval written in header.\n");
  3486. fprintf(stdout,"INFO: \n");
  3487. break;
  3488. case(INFO_MAXSAMP2):
  3489. fprintf(stdout,"INFO: FIND MAXIMUM SAMPLE OVER GIVEN TIMERANGE IN SOUNDFILE\n");
  3490. fprintf(stdout,"INFO: \n");
  3491. fprintf(stdout,"INFO: START TIME OF SEARCH Time in soundfile to start search for a maximum.\n");
  3492. fprintf(stdout,"INFO: END TIME OF SEARCH Time in soundfile to stop search for a maximum.\n");
  3493. fprintf(stdout,"INFO: \n");
  3494. break;
  3495. case(INFO_LOUDCHAN):
  3496. fprintf(stdout,"INFO: FIND LOUDEST CHANNEL IN A STEREO SOUNDFILE\n");
  3497. fprintf(stdout,"INFO: \n");
  3498. break;
  3499. case(INFO_FINDHOLE):
  3500. fprintf(stdout,"INFO: FIND LARGEST LOW LEVEL HOLE IN A SOUNDFILE\n");
  3501. fprintf(stdout,"INFO: \n");
  3502. fprintf(stdout,"INFO: THRESHOLD....hole only if level falls and stays below threshold.\n");
  3503. fprintf(stdout,"INFO: \n");
  3504. break;
  3505. case(INFO_DIFF):
  3506. fprintf(stdout,"INFO: COMPARE 2 SOUND,ANALYSIS,PITCH,TRANSPOSITION,ENVELOPE, OR FORMANT FILES\n");
  3507. fprintf(stdout,"INFO: \n");
  3508. fprintf(stdout,"INFO: THRESHOLD........................max permissible difference in data values:\n");
  3509. fprintf(stdout,"INFO: CNT..............................max number of differences to accept (default 1).\n");
  3510. fprintf(stdout,"INFO: IGNORE LENGTH DIFFERENCE.........continue comparing files anyway.\n");
  3511. fprintf(stdout,"INFO: IGNORE CHANNEL COUNT DIFFERENCE..continue comparing files anyway.\n");
  3512. fprintf(stdout,"INFO: \n");
  3513. fprintf(stdout,"INFO: NB: This process works only with binary (non-text) files.\n");
  3514. fprintf(stdout,"INFO: \n");
  3515. break;
  3516. case(INFO_CDIFF):
  3517. fprintf(stdout,"INFO: COMPARE CHANNELS IN A STEREO SOUNDFILE\n");
  3518. fprintf(stdout,"INFO: \n");
  3519. fprintf(stdout,"INFO: THRESHOLD..max permissible difference in data values.\n");
  3520. fprintf(stdout,"INFO: CNT........MAX NUMBER of differences to accept (default 1).\n");
  3521. fprintf(stdout,"INFO: \n");
  3522. fprintf(stdout,"INFO: NB: The output sample display is counted in sample-pairs.\n");
  3523. fprintf(stdout,"INFO: \n");
  3524. break;
  3525. case(INFO_PRNTSND):
  3526. fprintf(stdout,"INFO: PRINT SOUND SAMPLE DATA TO A TEXTFILE\n");
  3527. fprintf(stdout,"INFO: \n");
  3528. fprintf(stdout,"INFO: CARE!!! large quantities of data.\n");
  3529. fprintf(stdout,"INFO: \n");
  3530. break;
  3531. case(INFO_MUSUNITS):
  3532. fprintf(stdout,"INFO: CONVERT BETWEEN DIFFERENT MUSICAL UNITS\n");
  3533. fprintf(stdout,"INFO: \n");
  3534. fprintf(stdout,"INFO: INTERVAL m2 = minor 2nd 2 = major 2nd\n");
  3535. fprintf(stdout,"INFO: m3 = minor 3rd 3 = major 3rd\n");
  3536. fprintf(stdout,"INFO: 4 = perfect 4th #4 = a tritone\n");
  3537. fprintf(stdout,"INFO: 5 = perfect 5th\n");
  3538. fprintf(stdout,"INFO: m6 = minor 6th 6 = major 6th\n");
  3539. fprintf(stdout,"INFO: m7 = minor 7th 7 = major 7th\n");
  3540. fprintf(stdout,"INFO: +8 = an octave OR an octave shift up or down. The maximum range of intervals is up or down 2 octaves (a 15th).\n");
  3541. fprintf(stdout,"INFO: up = an upward interval (default).\n");
  3542. fprintf(stdout,"INFO: down = a downward interval.\n");
  3543. fprintf(stdout,"INFO: Intervals may also be displaced by quartertones.\n");
  3544. fprintf(stdout,"INFO: \n");
  3545. fprintf(stdout,"INFO: QTONE + = a quarter-tone further up. - = a quarter-tone further down. no = no quarter-tone displacement.\n");
  3546. fprintf(stdout,"INFO: \n");
  3547. fprintf(stdout,"INFO: PITCH As shown on the buttons. Pitches may be displaced by quartertones. Octave may be specified from the numeric pad.\n");
  3548. fprintf(stdout,"INFO: \n");
  3549. fprintf(stdout,"INFO: NUMERIC May be used to specify Midi value, Frequency, Frequency Ratio, Semitones, Octaves, Gain, Gain in dB, Timestretching factor, etc.\n");
  3550. fprintf(stdout,"INFO: OR the octave in which a Pitch occurs.\n");
  3551. fprintf(stdout,"INFO: \n");
  3552. fprintf(stdout,"INFO: INPUT The (possible) type(s) of data you are inputting.\n");
  3553. fprintf(stdout,"INFO: \n");
  3554. fprintf(stdout,"INFO: OUTPUT The type of data which you wish to output.\n");
  3555. fprintf(stdout,"INFO: When no output button is highlighted, click first on the relevant INPUT button.\n");
  3556. fprintf(stdout,"INFO: Click on the appropriate output button to obtain the result.\n");
  3557. fprintf(stdout,"INFO: \n");
  3558. fprintf(stdout,"INFO: Pitches are represented in the output by e.g. Ebu-2 or Ed3 where......\n");
  3559. fprintf(stdout,"INFO: 'b' = flat '#' = sharp 'u' = up a quarter-tone 'd' = down a quarter-tone\n");
  3560. fprintf(stdout,"INFO: Numerals (-2, 3) represent the octave in which the note occurs. Octave 0 stretches from Middle C to just below the C above.\n");
  3561. fprintf(stdout,"INFO: \n");
  3562. fprintf(stdout,"INFO: BARS 4.3 represents 4 bars and 3 beats\n");
  3563. break;
  3564. case(SYNTH_WAVE):
  3565. fprintf(stdout,"INFO: GENERATE SIMPLE WAVEFORMS\n");
  3566. fprintf(stdout,"INFO: \n");
  3567. fprintf(stdout,"INFO: SAMPLING RATE.......can be 48000, 24000, 44100, 22050, 32000, or 16000\n");
  3568. fprintf(stdout,"INFO: NUMBER OF CHANNELS..can be 1, 2 or 4\n");
  3569. fprintf(stdout,"INFO: DURATION............is duration of output snd, in seconds.\n");
  3570. fprintf(stdout,"INFO: FREQUENCY...........of output sound, in Hz\n");
  3571. fprintf(stdout,"INFO: AMPLITUDE...........of output sound: 0.0 < Range <= 1.0 (max & default).\n");
  3572. fprintf(stdout,"INFO: WAVEFORM TABLESIZE..is size of table storing waveform: defaults to 256\n");
  3573. fprintf(stdout,"INFO: ....................input value always rounded to multiple of 4.\n");
  3574. fprintf(stdout,"INFO: \n");
  3575. break;
  3576. case(MULTI_SYN):
  3577. fprintf(stdout,"INFO: GENERATE CHORD OVER SIMPLE WAVEFORM\n");
  3578. fprintf(stdout,"INFO: \n");
  3579. fprintf(stdout,"INFO: CHORD DATA is a list of (possibly fractional) MIDI values, OR a list of Frequency Values\n");
  3580. fprintf(stdout,"INFO: \n");
  3581. fprintf(stdout,"INFO: SAMPLING RATE.......can be 48000, 24000, 44100, 22050, 32000, or 16000\n");
  3582. fprintf(stdout,"INFO: NUMBER OF CHANNELS..can be 1, 2 or 4\n");
  3583. fprintf(stdout,"INFO: DURATION............is duration of output snd, in seconds.\n");
  3584. fprintf(stdout,"INFO: AMPLITUDE...........of output sound: 0.0 < Range <= 1.0 (max & default).\n");
  3585. fprintf(stdout,"INFO: WAVEFORM TABLESIZE..is size of table storing waveform: defaults to 4096\n");
  3586. fprintf(stdout,"INFO: ....................input value always rounded to multiple of 4.\n");
  3587. fprintf(stdout,"INFO: \n");
  3588. break;
  3589. case(SYNTH_NOISE):
  3590. fprintf(stdout,"INFO: GENERATE NOISE\n");
  3591. fprintf(stdout,"INFO: \n");
  3592. fprintf(stdout,"INFO: SAMPLING RATE.......can be 48000, 24000, 44100, 22050, 32000, or 16000\n");
  3593. fprintf(stdout,"INFO: NUMBER OF CHANNELS..can be 1, 2 or 4\n");
  3594. fprintf(stdout,"INFO: DURATION............is duration of output snd, in seconds.\n");
  3595. fprintf(stdout,"INFO: AMPLITUDE...........of output sound: 0.0 < Range <= 1.0 (max & default).\n");
  3596. fprintf(stdout,"INFO: \n");
  3597. break;
  3598. case(SYNTH_SIL):
  3599. fprintf(stdout,"INFO: MAKE SILENT SOUNDFILE\n");
  3600. fprintf(stdout,"INFO: \n");
  3601. fprintf(stdout,"INFO: SAMPLING RATE.......can be 48000, 24000, 44100, 22050, 32000, or 16000\n");
  3602. fprintf(stdout,"INFO: NUMBER OF CHANNELS..can be 1, 2 or 4\n");
  3603. fprintf(stdout,"INFO: DURATION............is duration of output snd, in seconds.\n");
  3604. fprintf(stdout,"INFO: \n");
  3605. break;
  3606. case(SYNTH_SPEC):
  3607. fprintf(stdout,"INFO: MAKE STEREO FILE BY DEFINING SPECTRAL BANDS\n");
  3608. fprintf(stdout,"INFO: \n");
  3609. fprintf(stdout,"INFO: DURATION.........of output data files\n");
  3610. fprintf(stdout,"INFO: CENTRE FREQUENCY.........Centre of the synthesized band\n");
  3611. fprintf(stdout,"INFO: BAND SPREAD.... width of band, in Hz, or as a transposition ratio.\n");
  3612. fprintf(stdout,"INFO: BAND FOCUS (MAX).... maximum tightness of the band.\n");
  3613. fprintf(stdout,"INFO: BAND FOCUS (MIN).....minimum tightness of band. If different from max,\n");
  3614. fprintf(stdout,"INFO: band tightness varies at random between the two.\n");
  3615. fprintf(stdout,"INFO: TIME VARIATION.....extent to which band components fluctuate with time.\n");
  3616. fprintf(stdout,"INFO: SAMPLE RATE........sample rate of output audio file.\n");
  3617. fprintf(stdout,"INFO: \n");
  3618. fprintf(stdout,"INFO: SPREAD_AS_TRANSPOSITION_RATIO......(default, a Hz bandwidth)\n");
  3619. fprintf(stdout,"INFO: \n");
  3620. break;
  3621. case(INSERTSIL_MANY):
  3622. fprintf(stdout,"INFO: PUT (SEVERAL) SILENCING MASKS IN AN EXISTING SOUND.\n");
  3623. fprintf(stdout,"INFO: \n");
  3624. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  3625. fprintf(stdout,"INFO: \n");
  3626. fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
  3627. fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
  3628. fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
  3629. fprintf(stdout,"INFO: \n");
  3630. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3631. fprintf(stdout,"INFO: \n");
  3632. fprintf(stdout,"INFO: EXCISEFILE..is a texfile with (paired) start & end times of masks\n");
  3633. fprintf(stdout,"INFO: ............These must be in increasing time order.\n");
  3634. fprintf(stdout,"INFO: \n");
  3635. fprintf(stdout,"INFO: SPLICELEN...splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
  3636. fprintf(stdout,"INFO: \n");
  3637. break;
  3638. case(RANDCUTS):
  3639. fprintf(stdout,"INFO: CUT FILE RANDOMLY INTO CHUNKS.\n");
  3640. fprintf(stdout,"INFO: \n");
  3641. fprintf(stdout,"INFO: AVERAGE CHUNKLENGTH..average length of chunks to cut & permute.\n");
  3642. fprintf(stdout,"INFO: SCATTERING..........randomisation of cuts: default 1.\n");
  3643. fprintf(stdout,"INFO: \n");
  3644. break;
  3645. case(RANDCHUNKS):
  3646. fprintf(stdout,"INFO: CUT SEVERAL CHUNKS FROM A SOUND.\n");
  3647. fprintf(stdout,"INFO: \n");
  3648. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  3649. fprintf(stdout,"INFO: \n");
  3650. fprintf(stdout,"INFO: CHUNKCNT..is the number of chunks to cut\n");
  3651. fprintf(stdout,"INFO: MINCHUNK..is the length of the smallest chunk permitted\n");
  3652. fprintf(stdout,"INFO: MAXCHUNK..is the length of the largest chunk permitted\n");
  3653. fprintf(stdout,"INFO: \n");
  3654. fprintf(stdout,"INFO: LINEAR DISTRIBUTION...more regular distribution of sizes \n");
  3655. fprintf(stdout,"INFO: ALL BEGIN AT SOUND START..all chunks start at start of sound \n");
  3656. break;
  3657. case(TE_3):
  3658. fprintf(stdout,"INFO: POSSIBLE OPERATIONS\n");
  3659. fprintf(stdout,"INFO: \n");
  3660. fprintf(stdout,"INFO: There are 5 distinct ways to use the Table Editor, plus some additional options.\n");
  3661. fprintf(stdout,"INFO: \n");
  3662. fprintf(stdout,"INFO: 1) SELECT A FILE CONTAINING COLUMNS OF DATA: MANIPULATE THE DATA IN A CHOSEN COLUMN.\n");
  3663. fprintf(stdout,"INFO: 2) CREATE A COLUMN OF DATA FROM SCRATCH.\n");
  3664. fprintf(stdout,"INFO: 3) CREATE A TABLE OF DATA FROM SCRATCH.\n");
  3665. fprintf(stdout,"INFO: 4) COMBINE THE DATA IN TWO DIFFERENT COLUMNS\n");
  3666. fprintf(stdout,"INFO: 5) COMBINE THE DATA IN TWO DIFFERENT TABLES\n");
  3667. fprintf(stdout,"INFO: +) EDIT OR TEST DATA, OR FIND PARTICULAR ITEMS, IN COLUMNS OF DATA\n");
  3668. fprintf(stdout,"INFO: \n");
  3669. fprintf(stdout,"INFO: These are described below.\n");
  3670. fprintf(stdout,"INFO: \n");
  3671. fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
  3672. fprintf(stdout,"INFO: \n");
  3673. fprintf(stdout,"INFO: 1) SELECT A FILE CONTAINING COLUMNS OF DATA: MANIPULATE THE DATA IN A CHOSEN COLUMN.\n");
  3674. fprintf(stdout,"INFO: \n");
  3675. fprintf(stdout,"INFO: a) Choose a file from those listed in the 'FILES' list, by clicking on it.\n");
  3676. fprintf(stdout,"INFO: It will be displayed in the 'INPUT TABLE' display.\n");
  3677. fprintf(stdout,"INFO: 1) If NO FILES are listed, this means you have NO (appropriate) textfiles listed on the workspace.\n");
  3678. fprintf(stdout,"INFO: 2) If your file IS on the workspace, but is NOT LISTED here, it may have the wrong kind of data.\n");
  3679. fprintf(stdout,"INFO: In particular, if your file does not have columns of data with the same number of items\n");
  3680. fprintf(stdout,"INFO: in every column, Try switching to 'Free Text Mode'.\n");
  3681. fprintf(stdout,"INFO: If this does not bring up your file, the Table Editor cannot handle it.\n");
  3682. fprintf(stdout,"INFO: \n");
  3683. fprintf(stdout,"INFO: b) Select a column from the file, by entering a column number and pressing OK,\n");
  3684. fprintf(stdout,"INFO: on the 'INPUT TABLE' display.\n");
  3685. fprintf(stdout,"INFO: 1) The column will normally be displayed in COLUMN IN.\n");
  3686. fprintf(stdout,"INFO: \n");
  3687. fprintf(stdout,"INFO: c) Select where you want the RESULT of the operation to go.\n");
  3688. fprintf(stdout,"INFO: 1) Normally the result will be displayed in COLUMN OUT.\n");
  3689. fprintf(stdout,"INFO: 2) Select 'Result HERE' to put the result in COLUMN IN, overwriting the original.\n");
  3690. fprintf(stdout,"INFO: \n");
  3691. fprintf(stdout,"INFO: d) Select an operation from one of the menus.\n");
  3692. fprintf(stdout,"INFO: 1) You may also need to enter a parameter (at N) or several parameters\n");
  3693. fprintf(stdout,"INFO: (in which case a dialogue box will appear).\n");
  3694. fprintf(stdout,"INFO: 2) If the operation is successful, a modified column should appear.\n");
  3695. fprintf(stdout,"INFO: \n");
  3696. fprintf(stdout,"INFO: e) If you are not satisfied with the result, choose a different parameter value, or a different process from the menus.\n");
  3697. fprintf(stdout,"INFO: \n");
  3698. fprintf(stdout,"INFO: f) IF you are happy with the result, you can save it to a table.\n");
  3699. fprintf(stdout,"INFO: 1) You can keep just the column, as it is.\n");
  3700. fprintf(stdout,"INFO: 2) You can replace the column you got from the original table, inside that table.\n");
  3701. fprintf(stdout,"INFO: 3) You can replace some other column in the original table.\n");
  3702. fprintf(stdout,"INFO: 4) You can insert the column as a NEW column, in the original table.\n");
  3703. fprintf(stdout,"INFO: \n");
  3704. fprintf(stdout,"INFO: g) You can select further columns and process them in similar ways.\n");
  3705. fprintf(stdout,"INFO: \n");
  3706. fprintf(stdout,"INFO: h) You can put the resulting columns into either the ORIGINAL table (still displayed at left).\n");
  3707. fprintf(stdout,"INFO: or into the NEW table you are building.\n");
  3708. fprintf(stdout,"INFO: \n");
  3709. fprintf(stdout,"INFO: i) Save the New table you have made, by giving it a name.\n");
  3710. fprintf(stdout,"INFO: 1) You may save the whole table, as is.\n");
  3711. fprintf(stdout,"INFO: 2) You may save each column of the table to a separate file.\n");
  3712. fprintf(stdout,"INFO: 3) You may save each row of the table to a separate file.\n");
  3713. fprintf(stdout,"INFO: \n");
  3714. fprintf(stdout,"INFO: j) You can also RECYCLE the table, from the OUTPUT TABLE display to the INPUT TABLE.\n");
  3715. fprintf(stdout,"INFO: N.B. You must be in 'File to Table' mode to do this.\n");
  3716. fprintf(stdout,"INFO: \n");
  3717. fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
  3718. fprintf(stdout,"INFO: \n");
  3719. fprintf(stdout,"INFO: 2) CREATE A COLUMN OF DATA FROM SCRATCH.\n");
  3720. fprintf(stdout,"INFO: \n");
  3721. fprintf(stdout,"INFO: a) Select a process from the CREATE or CREATE2 menu.\n");
  3722. fprintf(stdout,"INFO: 1) You may also need to enter a parameter (at N) or several parameters\n");
  3723. fprintf(stdout,"INFO: (in which case a dialogue box will appear).\n");
  3724. fprintf(stdout,"INFO: 2) If the operation is successful, a column should appear in COLUMN OUT.\n");
  3725. fprintf(stdout,"INFO: 3) If the operation fails, a message will be displayed.\n");
  3726. fprintf(stdout,"INFO: \n");
  3727. fprintf(stdout,"INFO: b) You can force the column to be created in COLUMN IN, by selecting 'Result HERE'.\n");
  3728. fprintf(stdout,"INFO: \n");
  3729. fprintf(stdout,"INFO: c) You can transform the column with processes selected from the menus, as described above.\n");
  3730. fprintf(stdout,"INFO: \n");
  3731. fprintf(stdout,"INFO: d) You can save the resulting column as a table. (as described above)\n");
  3732. fprintf(stdout,"INFO: \n");
  3733. fprintf(stdout,"INFO: e) You can create further columns and ADD then as new columns to the OUTPUT TABLE.\n");
  3734. fprintf(stdout,"INFO: \n");
  3735. fprintf(stdout,"INFO: f) You can save the output tabe, as described above.\n");
  3736. fprintf(stdout,"INFO: \n");
  3737. fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
  3738. fprintf(stdout,"INFO: \n");
  3739. fprintf(stdout,"INFO: 3) CREATE A TABLE OF DATA FROM SCRATCH.\n");
  3740. fprintf(stdout,"INFO: \n");
  3741. fprintf(stdout,"INFO: a) Select a process from the CREATE options in the TABLES menu.\n");
  3742. fprintf(stdout,"INFO: Then write values (numeric or text) into a new table.\n");
  3743. fprintf(stdout,"INFO: \n");
  3744. fprintf(stdout,"INFO: b) You can now use the new table in the normal way described above.\n");
  3745. fprintf(stdout,"INFO: \n");
  3746. fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
  3747. fprintf(stdout,"INFO: \n");
  3748. fprintf(stdout,"INFO: 4) COMBINE THE DATA IN TWO DIFFERENT COLUMNS\n");
  3749. fprintf(stdout,"INFO: \n");
  3750. fprintf(stdout,"INFO: a) If you have data in both COLUMN IN and COLUMN OUT displays, you can combine their data.\n");
  3751. fprintf(stdout,"INFO: \n");
  3752. fprintf(stdout,"INFO: b) If you have data in COLUMN IN,\n");
  3753. fprintf(stdout,"INFO: you can get a single column of data DIRECTLY FROM A FILE, into COLUMN OUT,\n");
  3754. fprintf(stdout,"INFO: by selecting 'File to column output' mode,\n");
  3755. fprintf(stdout,"INFO: then selecting a file (from the FILES list) which contains JUST ONE column of data.\n");
  3756. fprintf(stdout,"INFO: \n");
  3757. fprintf(stdout,"INFO: (Be sure to switch back to 'File to Table' mode afterwards).\n");
  3758. fprintf(stdout,"INFO: \n");
  3759. fprintf(stdout,"INFO: c) Select a process from the COMBINE or BRK menu.\n");
  3760. fprintf(stdout,"INFO: \n");
  3761. fprintf(stdout,"INFO: d) The result will usually appear in the OUTPUT TABLE,\n");
  3762. fprintf(stdout,"INFO: and you can treat this in the usual ways (see above).\n");
  3763. fprintf(stdout,"INFO: \n");
  3764. fprintf(stdout,"INFO: e) Some COMBINE options write their result into one of the column displays,\n");
  3765. fprintf(stdout,"INFO: (COLUMN IN or OUT depending on whether you have selected 'Result HERE'\n");
  3766. fprintf(stdout,"INFO: or 'Result to OUTPUT). overwriting the original data,\n");
  3767. fprintf(stdout,"INFO: \n");
  3768. fprintf(stdout,"INFO: You can treat this resulting column in the usual ways.\n");
  3769. fprintf(stdout,"INFO: \n");
  3770. fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
  3771. fprintf(stdout,"INFO: \n");
  3772. fprintf(stdout,"INFO: 5) COMBINE THE DATA IN TWO DIFFERENT TABLES\n");
  3773. fprintf(stdout,"INFO: \n");
  3774. fprintf(stdout,"INFO: a) Select Multiple Files mode.\n");
  3775. fprintf(stdout,"INFO: \n");
  3776. fprintf(stdout,"INFO: b) Select files from the FILES listing.\n");
  3777. fprintf(stdout,"INFO: 1) Their NAMES will be listed in the OUTPUT TABLE display.\n");
  3778. fprintf(stdout,"INFO: 2) As each one is selected you will see its contents in INPUT TABLE.\n");
  3779. fprintf(stdout,"INFO: 3) You can de-select a file: click on its name in OUTPUT TABLE display.\n");
  3780. fprintf(stdout,"INFO: \n");
  3781. fprintf(stdout,"INFO: c) Select a process from the JOIN menu.\n");
  3782. fprintf(stdout,"INFO: \n");
  3783. fprintf(stdout,"INFO: d) The result of combining the tables will now appear in the OUTPUT TABLE.\n");
  3784. fprintf(stdout,"INFO: \n");
  3785. fprintf(stdout,"INFO: e) It is possible to use the JOIN menu to create Vectored Batchfiles (see JOIN menu\n");
  3786. fprintf(stdout,"INFO: for further information). In this case, there is the possibility to\n");
  3787. fprintf(stdout,"INFO: save the Output Table as a BATCH FILE (the appropriate button will be highlighted).\n");
  3788. fprintf(stdout,"INFO: \n");
  3789. fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
  3790. fprintf(stdout,"INFO: \n");
  3791. fprintf(stdout,"INFO: +) EDIT OR TEST DATA, OR FIND PARTICULAR ITEMS, IN COLUMNS OF DATA\n");
  3792. fprintf(stdout,"INFO: \n");
  3793. fprintf(stdout,"INFO: a) Use the EDIT IN, EDIT OUT, AT CURSOR, FIND or TEST menus.\n");
  3794. fprintf(stdout,"INFO: \n");
  3795. break;
  3796. case(TE_2):
  3797. fprintf(stdout,"INFO: MENU FUNCTIONS\n");
  3798. fprintf(stdout,"INFO: \n");
  3799. fprintf(stdout,"INFO: MOST FUNCTIONS convert values in COLUMN IN to new values.\n");
  3800. fprintf(stdout,"INFO: \n");
  3801. fprintf(stdout,"INFO: a) Usually the new values appear in COLUMN OUT.\n");
  3802. fprintf(stdout,"INFO: b) You can perform multiple operations on column data,\n");
  3803. fprintf(stdout,"INFO: using 'Copy to IN' to recycle the COLUMN OUT data back to COLUMN IN.\n");
  3804. fprintf(stdout,"INFO: c) You can force results to appear in COLUMN IN (overwriting original values),\n");
  3805. fprintf(stdout,"INFO: by selecting 'Result HERE'.\n");
  3806. fprintf(stdout,"INFO: You can then work 'in situ' in COLUMN IN, overwriting the original data as you go.\n");
  3807. fprintf(stdout,"INFO: \n");
  3808. fprintf(stdout,"INFO: d) You can also swap around the COLUMN IN & COLUMN OUT data.\n");
  3809. fprintf(stdout,"INFO: \n");
  3810. fprintf(stdout,"INFO: CREATE and CREATE2 Menu functions create values in the Column display you select\n");
  3811. fprintf(stdout,"INFO: ('Result HERE' or 'Result to OUT').\n");
  3812. fprintf(stdout,"INFO: \n");
  3813. fprintf(stdout,"INFO: COMBINE Menu functions (and some BRK functions) combine values in COLUMN IN and OUT displays.\n");
  3814. fprintf(stdout,"INFO: The result is placed in the New Table display, unless otherwise stated.\n");
  3815. fprintf(stdout,"INFO: \n");
  3816. fprintf(stdout,"INFO: TABLES Menu functions act directly on TABLE INPUT display, giving the result in TABLE OUTPUT.\n");
  3817. fprintf(stdout,"INFO: \n");
  3818. fprintf(stdout,"INFO: JOIN Menu functions combine data directly from FILES into the OUTPUT TABLE display.\n");
  3819. fprintf(stdout,"INFO: \n");
  3820. fprintf(stdout,"INFO: BRK Menu functions are designed for use with breakpoint file data.\n");
  3821. fprintf(stdout,"INFO: They only become active when the input table is a breakpoint file.\n");
  3822. fprintf(stdout,"INFO: However, most other functions can be applied to the values in such files.\n");
  3823. fprintf(stdout,"INFO: \n");
  3824. fprintf(stdout,"INFO: ENVEL Menu functions are designed for use with normalised envelope file data.\n");
  3825. fprintf(stdout,"INFO: They only become active when input file is such.\n");
  3826. fprintf(stdout,"INFO: However, many other functions can be applied to the values in such file.\n");
  3827. fprintf(stdout,"INFO: \n");
  3828. fprintf(stdout,"INFO: SEQ Menu functions are designed for use with sequencing file data (triples of time,transposition,level).\n");
  3829. fprintf(stdout,"INFO: \n");
  3830. break;
  3831. case(TE_4):
  3832. fprintf(stdout,"INFO: PARAMETERS\n");
  3833. fprintf(stdout,"INFO: \n");
  3834. fprintf(stdout,"INFO: Most functions take a parameter (N).\n");
  3835. fprintf(stdout,"INFO: Some functions take no parameter (any value you enter is ignored).\n");
  3836. fprintf(stdout,"INFO: Some functions work with or without a parameter.\n");
  3837. fprintf(stdout,"INFO: \n");
  3838. fprintf(stdout,"INFO: Some functions take a 2nd parameter in the 'Threshold' box.\n");
  3839. fprintf(stdout,"INFO: \n");
  3840. fprintf(stdout,"INFO: Some functions take several parameters (x1,x2 etc.).\n");
  3841. fprintf(stdout,"INFO: A special entry box will appear for you to enter these values.\n");
  3842. fprintf(stdout,"INFO: \n");
  3843. fprintf(stdout,"INFO: Each process checks parameter ranges, and advises if you are outside the limits.\n");
  3844. fprintf(stdout,"INFO: \n");
  3845. break;
  3846. case(TE_5):
  3847. fprintf(stdout,"INFO: THRESHOLD\n");
  3848. fprintf(stdout,"INFO: \n");
  3849. fprintf(stdout,"INFO: THRESHOLD is either a special extra 'threshold' value, or a 2nd parameter to a process.\n");
  3850. fprintf(stdout,"INFO: \n");
  3851. fprintf(stdout,"INFO: MATHS Menu Functions Add, Multiply, Divide, Find Reciprocals, and Raise to a Power\n");
  3852. fprintf(stdout,"INFO: can be applied solely to values in input above or below a threshold value.\n");
  3853. fprintf(stdout,"INFO: Other values remaining unaffected.\n");
  3854. fprintf(stdout,"INFO: \n");
  3855. fprintf(stdout,"INFO: COMBINE Menu's search for values Equal to an input parameter, (and one or two other functions)\n");
  3856. fprintf(stdout,"INFO: may use the threshold value as the maximum error allowed in assessing the equality of values.\n");
  3857. fprintf(stdout,"INFO: \n");
  3858. fprintf(stdout,"INFO: One or two functions take Threshold values as a parameter (e.g. SPAN functions in CREATE2).\n");
  3859. fprintf(stdout,"INFO: \n");
  3860. fprintf(stdout,"INFO: Most functions ignore the threshold value.\n");
  3861. fprintf(stdout,"INFO: \n");
  3862. break;
  3863. case(TE_1):
  3864. fprintf(stdout,"INFO: FILE TO TABLE \n");
  3865. fprintf(stdout,"INFO: \n");
  3866. fprintf(stdout,"INFO: Contents of the selected file are listed in the TABLE INPUT, on the left.\n");
  3867. fprintf(stdout,"INFO: \n");
  3868. fprintf(stdout,"INFO: FILE TO COLUMN OUTPUT ('File->Col' on MAC)\n");
  3869. fprintf(stdout,"INFO: \n");
  3870. fprintf(stdout,"INFO: Data from file selected from filelist goes directly to COLUMN OUT display,\n");
  3871. fprintf(stdout,"INFO: but ONLY if it contains just a single column of data.\n");
  3872. fprintf(stdout,"INFO: \n");
  3873. fprintf(stdout,"INFO: MULTIPLE FILES ('Many Files' on MAC)\n");
  3874. fprintf(stdout,"INFO: \n");
  3875. fprintf(stdout,"INFO: File selected from the filelist, which must contain one or more columns of data,\n");
  3876. fprintf(stdout,"INFO: can be combined directly into multiple column tables, using the JOIN menu.\n");
  3877. fprintf(stdout,"INFO: \n");
  3878. fprintf(stdout,"INFO: FREE TEXT MODE\n");
  3879. fprintf(stdout,"INFO: \n");
  3880. fprintf(stdout,"INFO: Free Text mode handles most kinds of text input.\n");
  3881. fprintf(stdout,"INFO: \n");
  3882. fprintf(stdout,"INFO: This contrasts with the normal mode of operation, which handles only textfiles in which...\n");
  3883. fprintf(stdout,"INFO: a) data is aligned in columns.\n");
  3884. fprintf(stdout,"INFO: b) each column contains the same number of entries.\n");
  3885. fprintf(stdout,"INFO: c) All the entries in any one column are of the same type (e.g. numeric, dB vals, text).\n");
  3886. fprintf(stdout,"INFO: \n");
  3887. fprintf(stdout,"INFO: Free Text mode can be used to edit files with comment-lines, or mixfiles with lines of different lengths,\n");
  3888. fprintf(stdout,"INFO: or Csound scores with 'e' and 's' lines.\n");
  3889. break;
  3890. case(TE_14):
  3891. fprintf(stdout,"INFO: CHANGE SLOPE BY FACTOR\n");
  3892. fprintf(stdout,"INFO: \n");
  3893. fprintf(stdout,"INFO: Assumes input represents a graph of values. Changes the slope of the graph.\n");
  3894. fprintf(stdout,"INFO: \n");
  3895. break;
  3896. case(TE_6):
  3897. fprintf(stdout,"INFO: CREATE X1 STEPS IN INTERVAL BETWEEN X2 AND X3, CURVATURE X4\n");
  3898. fprintf(stdout,"INFO: \n");
  3899. fprintf(stdout,"INFO: Curvature = 1 rises (or falls) evenly.\n");
  3900. fprintf(stdout,"INFO: Curvature < 1 rises quicker at start or falls quicker at end.\n");
  3901. fprintf(stdout,"INFO: Curvature > 1 rises quicker at end or falls quicker at start.\n");
  3902. fprintf(stdout,"INFO: \n");
  3903. break;
  3904. case(TE_7):
  3905. fprintf(stdout,"INFO: ENTRYTIMES OF EVENTS OF GIVEN DURATIONS TO MAINTAIN A GIVEN DENSITY\n");
  3906. fprintf(stdout,"INFO: \n");
  3907. fprintf(stdout,"INFO: Input values are event durations.\n");
  3908. fprintf(stdout,"INFO: Outputs are start times of successive events required to maintain the specified (vertical) density of events.\n");
  3909. fprintf(stdout,"INFO: \n");
  3910. break;
  3911. case(TE_8):
  3912. fprintf(stdout,"INFO: ISOLATE GROUPS OF EVENTS USING SEPARATION <= N (ASCENDING ONLY) \n");
  3913. fprintf(stdout,"INFO: \n");
  3914. fprintf(stdout,"INFO: For an ascending sequence of times, items close together (separation <= N) are replaced by start and end time of the group,\n");
  3915. fprintf(stdout,"INFO: while isolated items (separated from others by > N) are duplicated.\n");
  3916. fprintf(stdout,"INFO: The resulting pairs-of-times serve to bracket these isolated event-groups (groups having 1 or more members).\n");
  3917. fprintf(stdout,"INFO: This data might be 'SPANNED' to create an envelope.\n");
  3918. fprintf(stdout,"INFO: \n");
  3919. fprintf(stdout,"INFO: RANDOMLY DELETE X1 ITEMS,BUT <= X2 ADJACENT ITEMS: SETS OF ADJACENT ITEMS REMAINING <= X3\n");
  3920. fprintf(stdout,"INFO: \n");
  3921. fprintf(stdout,"INFO: For controlled random deletion.\n");
  3922. fprintf(stdout,"INFO: In a sequnce of events, randomly delete X1 items. Ensure that no more than X2 adjacent items are deleted.\n");
  3923. fprintf(stdout,"INFO: Ensure that the remaining sets of undeleted items are no longer than x3.\n");
  3924. fprintf(stdout,"INFO: \n");
  3925. break;
  3926. case(TE_9):
  3927. fprintf(stdout,"INFO: OVERLAP\n");
  3928. fprintf(stdout,"INFO: \n");
  3929. fprintf(stdout,"INFO: Time by which each event entry in a sequence overlaps the previous event.\n");
  3930. fprintf(stdout,"INFO: e.g. overlap = splice-length when items edited together.\n");
  3931. fprintf(stdout,"INFO: \n");
  3932. break;
  3933. case(TE_10):
  3934. fprintf(stdout,"INFO: PARTITIONS\n");
  3935. fprintf(stdout,"INFO: \n");
  3936. fprintf(stdout,"INFO: You can partition a set into subsets ....\n");
  3937. fprintf(stdout,"INFO: For example, you have a set of 144 values in column1.\n");
  3938. fprintf(stdout,"INFO: Generate a column2 (with 144 entries) using the values 1,2 & 3 distributed at random.\n");
  3939. fprintf(stdout,"INFO: (See the CREATE menu).\n");
  3940. fprintf(stdout,"INFO: Use the random positions of the '1's ('2's and '3's) to select 3 random subsets from the original set.\n");
  3941. fprintf(stdout,"INFO: \n");
  3942. break;
  3943. case(TE_11):
  3944. fprintf(stdout,"INFO: RAISE NEGATIVE VALS TO POWER\n");
  3945. fprintf(stdout,"INFO: \n");
  3946. fprintf(stdout,"INFO: Negative vals raised to a power are TREATED IN A SPECIAL WAY.\n");
  3947. fprintf(stdout,"INFO: e.g. value -4 raised to the power of 3 becomes -64 i.e. minus (4-to-the-power-of-3).\n");
  3948. fprintf(stdout,"INFO: \n");
  3949. break;
  3950. case(TE_21):
  3951. fprintf(stdout,"INFO: RANDOMISATION\n");
  3952. fprintf(stdout,"INFO: \n");
  3953. fprintf(stdout,"INFO: Imagine the items spaced out evenly.\n");
  3954. fprintf(stdout,"INFO: Each sits in a local space stretching from the midpoint between it and its lower neighbour,\n");
  3955. fprintf(stdout,"INFO: to the midpoint between it and its upper neighbour. (first and last points are handled differently).\n");
  3956. fprintf(stdout,"INFO: \n");
  3957. fprintf(stdout,"INFO: Randomisation 0 Creates no randomisation of these original (equal-spaced) positions.\n");
  3958. fprintf(stdout,"INFO: \n");
  3959. fprintf(stdout,"INFO: Randomisation 1 Each item can appear anywhere in its local space.\n");
  3960. fprintf(stdout,"INFO: \n");
  3961. fprintf(stdout,"INFO: Randomisation > 0 < 1 Each item has its position randomised within its local space.\n");
  3962. fprintf(stdout,"INFO: the randomisation increases with higher values.\n");
  3963. fprintf(stdout,"INFO: \n");
  3964. fprintf(stdout,"INFO: Randomisation > 1 If the randomisation is N, each group of N items is placed at random\n");
  3965. fprintf(stdout,"INFO: in the TOTAL space occupied by their N adjacent local spaces.\n");
  3966. fprintf(stdout,"INFO: \n");
  3967. break;
  3968. case(TE_12):
  3969. fprintf(stdout,"INFO: RANK\n");
  3970. fprintf(stdout,"INFO: \n");
  3971. fprintf(stdout,"INFO: Lists each different-value item once only,\n");
  3972. fprintf(stdout,"INFO: placing most frequently occuring items at top of list,\n");
  3973. fprintf(stdout,"INFO: down to the least frequent, at the foot of the list.\n");
  3974. fprintf(stdout,"INFO: \n");
  3975. break;
  3976. case(TE_13):
  3977. fprintf(stdout,"INFO: SCATTER VALUES OVER A QUANTISED GRID\n");
  3978. fprintf(stdout,"INFO: \n");
  3979. fprintf(stdout,"INFO: X1 VALS, QUANTISED OVER X2, SPREAD IN INTERVAL X3, WITH RANDOMISATION X4\n");
  3980. fprintf(stdout,"INFO: \n");
  3981. fprintf(stdout,"INFO: e.g. place a set of X1 accents within a duration x3. The accents must occur ON THE BEAT (defined by quantisation time X2).\n");
  3982. fprintf(stdout,"INFO: The accents are to be placed randomly, with a degree of randomness specified by X4.\n");
  3983. fprintf(stdout,"INFO: \n");
  3984. fprintf(stdout,"INFO: IF the randomness X4 <= 1 : Imagine the duration divided into X1 EQUAL chunks.\n");
  3985. fprintf(stdout,"INFO: puts 1 event in each chunk, scattered away from that chunk's starttime by up to half distance to next chunk-starttime in either direction.\n");
  3986. fprintf(stdout,"INFO: Randomness 0 gives no scatter (acents are regular), Randomness 1 gives maximum scatter of this type.\n");
  3987. fprintf(stdout,"INFO: \n");
  3988. fprintf(stdout,"INFO: If the randomness X4 > 1 (where X4 is rounded to nearest integer) : Imagine the duration divided into N = X1/X4 EQUAL large chunks.\n");
  3989. fprintf(stdout,"INFO: scatters each succesive group of X4 events randomly over the whole duration of the next N-length chunk.\n");
  3990. fprintf(stdout,"INFO: \n");
  3991. fprintf(stdout,"INFO: X1 RANDOM VALS QUANTISED OVER X2: MIN OF X3, MAX OF X4, BETWEEN EACH INPUT COL PAIR\n");
  3992. fprintf(stdout,"INFO: \n");
  3993. fprintf(stdout,"INFO: e.g. Place a set of (x1) accents at random. The accents must fall ON THE BEAT (defined by quantisation x2).\n");
  3994. fprintf(stdout,"INFO: The accents must fall only in time slots defined by successive pairs of values in the input column.\n");
  3995. fprintf(stdout,"INFO: There must be at least x3 and no more than x4 such accents in each time slot.\n");
  3996. fprintf(stdout,"INFO: \n");
  3997. break;
  3998. case(TE_15):
  3999. fprintf(stdout,"INFO: SPAN VALUES BY OTHERS\n");
  4000. fprintf(stdout,"INFO: \n");
  4001. fprintf(stdout,"INFO: EACH VALUE (T) GOES TO (T-THRESHOLD,T+N+THRESHOLD)\n");
  4002. fprintf(stdout,"INFO: \n");
  4003. fprintf(stdout,"INFO: e.g. Create the time-sequence for an an envelope with which to isolate individual events of roughly equal length.\n");
  4004. fprintf(stdout,"INFO: Threshold is splice length, N the typical event length. Use an alternating sequence (0110011..) to generate the envelope.\n");
  4005. fprintf(stdout,"INFO: \n");
  4006. fprintf(stdout,"INFO: SPAN: EACH PAIR (T1,T2) GOES TO (T1-THRESHOLD,T1,T2,T2+N+THRESHOLD) \n");
  4007. fprintf(stdout,"INFO: \n");
  4008. fprintf(stdout,"INFO: e.g. Create the time-sequence for an an envelope with which to isolate groups of events, (individual) events being of roughly equal length.\n");
  4009. fprintf(stdout,"INFO: First event in group starts at T1 and last event in group starts at T2. Threshold is splice length, N the typical (individual) event length.\n");
  4010. fprintf(stdout,"INFO: Associate the new times created with an alternating sequence (0110011...) to generate the envelope. This creates an envelope\n");
  4011. fprintf(stdout,"INFO: rising at each T1-threshold to max at T1, and falling at T2+N, to min at T2+N+threshold. (All (time) values created are >= 0.)\n");
  4012. fprintf(stdout,"INFO: \n");
  4013. break;
  4014. case(TE_16):
  4015. fprintf(stdout,"INFO: STACK VALUES FROM ZERO\n");
  4016. fprintf(stdout,"INFO: \n");
  4017. fprintf(stdout,"INFO: Assume input lists durations of successive events. Output gives start time of each event in such a list.\n");
  4018. fprintf(stdout,"INFO: \n");
  4019. break;
  4020. case(TE_17):
  4021. fprintf(stdout,"INFO: SUM THE ABSOLUTE DIFFERENCES\n");
  4022. fprintf(stdout,"INFO: \n");
  4023. fprintf(stdout,"INFO: Use, e.g., to find duration of a zigzagging process, from a list of times at which the source-read process reverses.\n");
  4024. fprintf(stdout,"INFO: \n");
  4025. break;
  4026. case(TE_18):
  4027. fprintf(stdout,"INFO: SUPERIMPOSE ENVELOPES\n");
  4028. fprintf(stdout,"INFO: \n");
  4029. fprintf(stdout,"INFO: e.g. Extract part of a sound, treat it, and reinsert it in the original at the same place.\n");
  4030. fprintf(stdout,"INFO: The rise and fall envelope of the inserted sound needs to be mirrored in the envelope of the original sound, at the insertion point.\n");
  4031. fprintf(stdout,"INFO: This inverted envelope can be superimposed on any existing original-file envelope, using the 'superimpose inverted envelope' option.\n");
  4032. fprintf(stdout,"INFO: \n");
  4033. fprintf(stdout,"INFO: This process works only with NORMALISED envelopes (envelope levels lie between 0 and 1).\n");
  4034. fprintf(stdout,"INFO: In general, an inserted envelope should start and end with level 0 or 1.\n");
  4035. fprintf(stdout,"INFO: If it does not, its start level (or its inverse) will be imposed on all time points occuring before the insertion starttime.\n");
  4036. fprintf(stdout,"INFO: and its end level (or its inverse) on all time points occuring after the insertion endtime.\n");
  4037. fprintf(stdout,"INFO: \n");
  4038. break;
  4039. case(TE_19):
  4040. fprintf(stdout,"INFO: TEMPER\n");
  4041. fprintf(stdout,"INFO: \n");
  4042. fprintf(stdout,"INFO: With no parameter, adjust data onto standard (12 semitones per octave) equal-temperament scale.\n");
  4043. fprintf(stdout,"INFO: With e.g. parameter 9, adjust data onto a 9-steps-per-octave equal-temperament scale.\n");
  4044. fprintf(stdout,"INFO: \n");
  4045. break;
  4046. case(TE_20):
  4047. fprintf(stdout,"INFO: TIME SEQUENCE ,DURATION X1, FROM MIN STEP X2 TO MAX X3\n");
  4048. fprintf(stdout,"INFO: \n");
  4049. fprintf(stdout,"INFO: Create a sequence of successive time points of total duration x1. Time-step between successive points begins as x2 and ends as x3.\n");
  4050. fprintf(stdout,"INFO: \n");
  4051. break;
  4052. case(TE_22):
  4053. fprintf(stdout,"INFO: VECTORED BATCHFILES\n");
  4054. fprintf(stdout,"INFO: \n");
  4055. fprintf(stdout,"INFO: A Batchfile is a textfile containing several lines: each line is a command to run a program.\n");
  4056. fprintf(stdout,"INFO: Running the batchfile runs each program in turn.\n");
  4057. fprintf(stdout,"INFO: Batchfiles can be run from the Workspace page.\n");
  4058. fprintf(stdout,"INFO: \n");
  4059. fprintf(stdout,"INFO: A Vectored Batchfile is either:\n");
  4060. fprintf(stdout,"INFO: \n");
  4061. fprintf(stdout,"INFO: 1) a Batchfile which applies the SAME process to the SAME input file on each line,\n");
  4062. fprintf(stdout,"INFO: using a different value for ONE (or more) of the parameters, in each line, OR....\n");
  4063. fprintf(stdout,"INFO: \n");
  4064. fprintf(stdout,"INFO: 2) a Batchfile which applies the SAME process to a DIFFERENT input file on each line,\n");
  4065. fprintf(stdout,"INFO: using a different value for ONE (or more) of the parameters, in each line.\n");
  4066. fprintf(stdout,"INFO: \n");
  4067. fprintf(stdout,"INFO: The list of the different values for the SAME parameter, is the PARAMETER VECTOR.\n");
  4068. fprintf(stdout,"INFO: \n");
  4069. break;
  4070. case(TE_23):
  4071. fprintf(stdout,"INFO: TO CREATE A VECTORED BATCHFILE\n");
  4072. fprintf(stdout,"INFO: \n");
  4073. fprintf(stdout,"INFO: (1) On the Workspace, choose ONE of the files you want to process, and set up the process on the PARAMETERS PAGE,\n");
  4074. fprintf(stdout,"INFO: but INSTEAD OF RUNNING IT, save the process AS A BATCHFILE.\n");
  4075. fprintf(stdout,"INFO: (This creates an elementary batchfile from which you will generate the Vectored Batchfile).\n");
  4076. fprintf(stdout,"INFO: \n");
  4077. fprintf(stdout,"INFO: (2) Now put all the file(s) you want to process into the Chosen Files list on the Workspace.\n");
  4078. fprintf(stdout,"INFO: (Lets assume you want to generate 6 processes). There are TWO DIFFERENT OPTIONS.........\n");
  4079. fprintf(stdout,"INFO: (a) List 1 file FOR EACH parameter value you intend to use, so you will have 6 infiles with 6 vector-values.\n");
  4080. fprintf(stdout,"INFO: the 1st file is processed using the 1st value in the vector , the 2nd file using the 2nd value in the vector, and so on.\n");
  4081. fprintf(stdout,"INFO: (b) List JUST ONE file: in this case the 6 parameter-vector values will be applied, in turn, to the SAME file\n");
  4082. fprintf(stdout,"INFO: to produce 6 separate outputs from the same input file.\n");
  4083. fprintf(stdout,"INFO: \n");
  4084. fprintf(stdout,"INFO: (3) In the TABLE EDITOR, use the CREATE menu to generate a list of values for ONE parameter (the parameter VECTOR), and save this file.\n");
  4085. fprintf(stdout,"INFO: (in our example, the file will contain 6 values).\n");
  4086. fprintf(stdout,"INFO: You can create vectors for more than one parameter of the batchfile you are working on,\n");
  4087. fprintf(stdout,"INFO: but every one of these vectors must have the SAME NUMBER OF ENTRIES. (In our example they will all have 6 values).\n");
  4088. fprintf(stdout,"INFO: \n");
  4089. fprintf(stdout,"INFO: (4) Switch the Table Editor to Multiple Files mode.\n");
  4090. fprintf(stdout,"INFO: (5) Select the Batchfile you just made, followed by the Vector file(s) you just created.\n");
  4091. fprintf(stdout,"INFO: (6) Select 'Create a Vectored Batchfile' from the JOIN menu.\n");
  4092. fprintf(stdout,"INFO: \n");
  4093. case(TE_24):
  4094. fprintf(stdout,"INFO: PARAMETERS, SAVING AND RUNNING\n");
  4095. fprintf(stdout,"INFO: \n");
  4096. fprintf(stdout,"INFO: (7) You will be shown a parameter entry box. Consult the display at the foot of the parameter entry box, and enter.....\n");
  4097. fprintf(stdout,"INFO: (a) The batchfile column-number having the INPUT FILE.\n");
  4098. fprintf(stdout,"INFO: (b) The batchfile column-number having the OUTPUT FILE.\n");
  4099. fprintf(stdout,"INFO: (c) The batchfile column-number of (each) PARAMETER you are replacing with a vector.\n");
  4100. fprintf(stdout,"INFO: If there is more than one vectored parameter, the column numbers for each of the vectored-parameters need to be entered\n");
  4101. fprintf(stdout,"INFO: IN THE SAME ORDER as the parameter vector-files you have listed on the Table Editor.\n");
  4102. fprintf(stdout,"INFO: (8) ***** SAVE the resulting table AS A BATCHFILE !!!!! *****\n");
  4103. fprintf(stdout,"INFO: (9) Run the resulting batchfile from the Workspace.\n");
  4104. break;
  4105. case(TE_25):
  4106. fprintf(stdout,"INFO: WARPING TIMES OR DATA\n");
  4107. fprintf(stdout,"INFO: \n");
  4108. fprintf(stdout,"INFO: Enter the File with the Data (DATAFILE) followed by the Warping File (WARPFILE).\n");
  4109. fprintf(stdout,"INFO: \n");
  4110. fprintf(stdout,"INFO: The WARPFILE is a Breakpoint File of time-value pairs, where times MUST BEGIN AT ZERO.\n");
  4111. fprintf(stdout,"INFO: \n");
  4112. fprintf(stdout,"INFO: TO WARP TIMES:\n");
  4113. fprintf(stdout,"INFO: 1) Times in Warpfile correspond to (prewarped) times in Datafile.\n");
  4114. fprintf(stdout,"INFO: 2) Warp Values must be greater than zero.\n");
  4115. fprintf(stdout,"INFO: \n");
  4116. fprintf(stdout,"INFO: TO WARP VALUES IN AN EXISTING BREAKPOINT FILE:\n");
  4117. fprintf(stdout,"INFO: 1) Times in Warpfile correspond to times in Datafile.\n");
  4118. fprintf(stdout,"INFO: 2) Warp Values can take any value.\n");
  4119. fprintf(stdout,"INFO: \n");
  4120. fprintf(stdout,"INFO: TO WARP VALUES IN AN EXISTING LIST OF VALUES:\n");
  4121. fprintf(stdout,"INFO: 1) Range of times in Warpfile is arbitrary, and will be mapped to length of the data in Datafile.\n");
  4122. fprintf(stdout,"INFO: 2) Warp Values can take any value.\n");
  4123. break;
  4124. case(TE_26):
  4125. fprintf(stdout,"INFO: ******* MUSIC WORKPAD *******\n");
  4126. fprintf(stdout,"INFO: \n");
  4127. fprintf(stdout,"INFO: 1) TO GET (&/OR REMOVE) FILES\n");
  4128. fprintf(stdout,"INFO: select file from right hand display, and press 'GET' or 'GET & REMOVE'\n");
  4129. fprintf(stdout,"INFO: **** 'GET' IS NOT CUMULATIVE : do a 'PUT' before selecting more files ****\n");
  4130. fprintf(stdout,"INFO: \n");
  4131. fprintf(stdout,"INFO: 2) TO PUT FILES INTO A LIST\n");
  4132. fprintf(stdout,"INFO: You must 'GET' files first.\n");
  4133. fprintf(stdout,"INFO: Select a position in the Right Hand display, and press 'PUT FILES'\n");
  4134. fprintf(stdout,"INFO: (with NO POSITION selected, files go to the END of the display)\n");
  4135. fprintf(stdout,"INFO: \n");
  4136. break;
  4137. case(TE_27):
  4138. fprintf(stdout,"INFO: The MUSIC TESTBED has various higher level facilities for organising musical material.\n");
  4139. fprintf(stdout,"INFO: \n");
  4140. fprintf(stdout,"INFO: 1) BACKGROUND LISTINGS.\n");
  4141. fprintf(stdout,"INFO: Files which you feel are musically related, can be gathered together in a BACKGROUND LISTING (B-List).\n");
  4142. fprintf(stdout,"INFO: These B-Lists are NOT mutually exclusive i.e. any file can be listed in any number of B-lists.\n");
  4143. fprintf(stdout,"INFO: Files in a B-List can be LOADED ONTO THE WORKSPACE AS A SET, so they can be worked on as a group.\n");
  4144. fprintf(stdout,"INFO: \n");
  4145. fprintf(stdout,"INFO: The MUSIC WORKPAD allows you to sort and reorganise the sound materials you have previously stored in B-Lists.\n");
  4146. fprintf(stdout,"INFO: \n");
  4147. fprintf(stdout,"INFO: 2) INTERPOLATION WORKSHOP.\n");
  4148. fprintf(stdout,"INFO: Make sounds intermediate between two given sounds, by proportional mixing..\n");
  4149. fprintf(stdout,"INFO: The INTERPOLATION WORKSHOP provides flexible ways to do this and to assess the results (by listening).\n");
  4150. fprintf(stdout,"INFO: \n");
  4151. fprintf(stdout,"INFO: 3) NAME GAMES.\n");
  4152. fprintf(stdout,"INFO: Numerous operations may be performed upon SEGMENTS WITHIN FILENAMES.\n");
  4153. fprintf(stdout,"INFO: If these segments refer to processes applied to the named sound, this allows such processes to be ordered & organised.\n");
  4154. fprintf(stdout,"INFO: \n");
  4155. fprintf(stdout,"INFO: 4) PITCH MARKS.\n");
  4156. fprintf(stdout,"INFO: A sound file may be assigned a PITCH MARK, indicating its pitch or pitches.\n");
  4157. fprintf(stdout,"INFO: Pitch Marks may be compared, transferred from one sound to another, etc. etc..\n");
  4158. fprintf(stdout,"INFO: \n");
  4159. fprintf(stdout,"INFO: 5) PROPERTIES FILES.\n");
  4160. fprintf(stdout,"INFO: Soundfiles can be assigned any number of (user-defined) properties, and these listed in a PROPERTIES FILE.\n");
  4161. fprintf(stdout,"INFO: Property Files can be used to select sounds (e.g. those sharing one or more property) etc.\n");
  4162. fprintf(stdout,"INFO: \n");
  4163. fprintf(stdout,"INFO: 7) SKETCH SCORE\n");
  4164. fprintf(stdout,"INFO: The SKETCH SCORE allows you drag sounds about on a page, to decide on (and rememeber) a rough sequence of events.\n");
  4165. fprintf(stdout,"INFO: \n");
  4166. break;
  4167. case(TE_28):
  4168. fprintf(stdout,"INFO: ******* BACKGROUND LISTINGS *******\n");
  4169. fprintf(stdout,"INFO: \n");
  4170. fprintf(stdout,"INFO: Background listings only accept files which are NOT in the CDP base directory (back them up first).\n");
  4171. fprintf(stdout,"INFO: \n");
  4172. fprintf(stdout,"INFO: B-lists allow files to be grouped together 'experimentally' while you test out musical ideas.\n");
  4173. fprintf(stdout,"INFO: Files in the same B-List can come from DIFFERENT directories.\n");
  4174. fprintf(stdout,"INFO: ALSO, Placing a file in one B-list does not preclude it from being placed in another.\n");
  4175. fprintf(stdout,"INFO: Hence different ideas about how sounds are (to be) grouped can be tested, remembered, and recalled.\n");
  4176. fprintf(stdout,"INFO: \n");
  4177. fprintf(stdout,"INFO: Sounds in B-Lists Can be LOADED ONTO THE WORKSPACE AS A SET (or individually),\n");
  4178. fprintf(stdout,"INFO: either adding to what is already on the Workspace, or replacing it,\n");
  4179. fprintf(stdout,"INFO: so that these B-listed sounds can be worked on as a group.\n");
  4180. fprintf(stdout,"INFO: \n");
  4181. fprintf(stdout,"INFO: A sound in a B-List may be assigned a PITCHMARK, indicating the principle pitch(es) of the sound.\n");
  4182. fprintf(stdout,"INFO: (a Pitchmark is ASSOCIATED WITH THE SOUND, so can be viewed from any B-list the sound occurs in, or from the Workspace.)\n");
  4183. fprintf(stdout,"INFO: Pitchmarks are preserved when sounds are copied (e.g. to a new directory),\n");
  4184. fprintf(stdout,"INFO: and can themselves be copied from one sound to another.\n");
  4185. fprintf(stdout,"INFO: \n");
  4186. fprintf(stdout,"INFO: PITCHMARKS CAN BE COMPARED, pairwise or with the Pitchmark of every other Pitchmarked sound.\n");
  4187. fprintf(stdout,"INFO: \n");
  4188. break;
  4189. case(TE_29):
  4190. fprintf(stdout,"INFO: ******* MUSIC WORKPAD *******\n");
  4191. fprintf(stdout,"INFO: \n");
  4192. fprintf(stdout,"INFO: The MUSIC WORKPAD enables you to CREATE & DESTROY B-LISTS, GET FILES to them, and REORGANISE MATERIALS amongst them.\n");
  4193. fprintf(stdout,"INFO: \n");
  4194. fprintf(stdout,"INFO: You may work with existing B-lists, or Create new ones.\n");
  4195. fprintf(stdout,"INFO: \n");
  4196. fprintf(stdout,"INFO: You may Grab files from the Workspace, or from any specified directory on your system, to put in a B-list.\n");
  4197. fprintf(stdout,"INFO: \n");
  4198. fprintf(stdout,"INFO: Files may be MOVED TO AND FROM DIFFERENT B-LISTS, or reordered within or deleted from a B-List, using 'GET' and 'PUT'\n");
  4199. fprintf(stdout,"INFO: \n");
  4200. fprintf(stdout,"INFO: You may SEARCH ALL THE B-LISTS for files with similar names, or for files from the same directory,\n");
  4201. fprintf(stdout,"INFO: (e.g. to discover what other B-lists you have placed a particular file in).\n");
  4202. fprintf(stdout,"INFO: \n");
  4203. fprintf(stdout,"INFO: You may LOAD THE DIRECTORY of a selected file onto the Workspace.\n");
  4204. fprintf(stdout,"INFO: (e.g. to discover other related sounds ....assuming you stored related sounds in the same directory.)\n");
  4205. fprintf(stdout,"INFO: \n");
  4206. fprintf(stdout,"INFO: You may SEARCH THE SOUND LOOM LOGS, to discover how a particular file was made.\n");
  4207. fprintf(stdout,"INFO: \n");
  4208. fprintf(stdout,"INFO: You may VIEW THE PITCHMARK of any file that has one, and MAKE COMPARISONS.\n");
  4209. fprintf(stdout,"INFO: \n");
  4210. fprintf(stdout,"INFO: You may LOAD a file, or the directory of the file, ONTO THE WORKSPACE, for further work.\n");
  4211. fprintf(stdout,"INFO: \n");
  4212. break;
  4213. case(TE_30):
  4214. fprintf(stdout,"INFO: ******* SKETCH SCORE *******\n");
  4215. fprintf(stdout,"INFO: \n");
  4216. fprintf(stdout,"INFO: The SKETCH SCORE enables you to place sounds on a large 'Score' page, arrange them in sequence, and play the whole sequence.\n");
  4217. fprintf(stdout,"INFO: You can also write Descriptive Comments on the Score.\n");
  4218. fprintf(stdout,"INFO: \n");
  4219. fprintf(stdout,"INFO: 1) Files can be grabbed from Background Listings,from the Workspace, of from elsewhere and positioned on the score.\n");
  4220. fprintf(stdout,"INFO: 2) Files may be placed anywhere on this score, dragged from one position to another, or removed.\n");
  4221. fprintf(stdout,"INFO: 3) Any single file on the Score can be Played, by clicking on it.\n");
  4222. fprintf(stdout,"INFO: \n");
  4223. fprintf(stdout,"INFO: The Sequence of files on the score (or a specified part of it) can be joined together and\n");
  4224. fprintf(stdout,"INFO: Played. You can use the complete sounds OR JUST A SMALL PART OF EACH.\n");
  4225. fprintf(stdout,"INFO: \n");
  4226. fprintf(stdout,"INFO: The sequence of files (or a specified part of it) can be .....\n");
  4227. fprintf(stdout,"INFO: 1) Saved to a temporary mixfile, ready for more detailed work.\n");
  4228. fprintf(stdout,"INFO: 2) Grabbed to the Chosen Files list on the Workspace, for further work.\n");
  4229. fprintf(stdout,"INFO: 3) Saved to a new, or an existing, Background Listing.\n");
  4230. fprintf(stdout,"INFO: \n");
  4231. fprintf(stdout,"INFO: The SKETCH SCORE is a 'pre-sequencer', rather than a true sequencer or mixing environment.\n");
  4232. fprintf(stdout,"INFO: It allows you to quickly test ideas before committing to a real mix.\n");
  4233. fprintf(stdout,"INFO: It is intended as an aid in decision-making about the larger-scale form of a piece, once\n");
  4234. fprintf(stdout,"INFO: substantial chunks of material have already been made which need to be appropriately ordered.\n");
  4235. fprintf(stdout,"INFO: You can quickly test ideas about the ultimate sequence of events \n");
  4236. fprintf(stdout,"INFO: by joining just a small part of each large file and listening to the result.\n");
  4237. fprintf(stdout,"INFO: \n");
  4238. fprintf(stdout,"INFO: NB: Scores are always backed up in the last state in which they contained sounds.\n");
  4239. fprintf(stdout,"INFO: If you exit from an EMPTY score, then recall it, the last sounds which appeared on it will reapear.\n");
  4240. fprintf(stdout,"INFO: \n");
  4241. break;
  4242. case(TE_31):
  4243. fprintf(stdout,"INFO: ******* INTERPOLATION WORKSHOP *******\n");
  4244. fprintf(stdout,"INFO: \n");
  4245. fprintf(stdout,"INFO: The INTERPOLATION WORKSHOP uses the program 'submix inbetween' to generate sounds intermediate between two given sounds,\n");
  4246. fprintf(stdout,"INFO: through a simple mixing process. True spectral interpolation happens only if the 2 sounds are synchronised at zero-crossings\n");
  4247. fprintf(stdout,"INFO: (as happens with the CDP 'DISTORT' processes). However, aurally convincing results can be obtained with other sounds.\n");
  4248. fprintf(stdout,"INFO: \n");
  4249. fprintf(stdout,"INFO: TO MAKE AN INTERPOLATION\n");
  4250. fprintf(stdout,"INFO: 1) Select onto the Chosen Files list of the Workspace the two sounds you wish to interpolate between.\n");
  4251. fprintf(stdout,"INFO: 2) Start the INTERPOLATION WORKSHOP : the two sounds will now appear on its own display panel.\n");
  4252. fprintf(stdout,"INFO: 3) You can create intermediate sounds immediately (or at any time you have ONLY 2 sounds in this list) by...\n");
  4253. fprintf(stdout,"INFO: a) Specifying how many intermediate sounds to make.\n");
  4254. fprintf(stdout,"INFO: b) Giving those new sounds a (generic) name.\n");
  4255. fprintf(stdout,"INFO: c) Specifying the interpolation skew. (Use default value 1: if dissatisfied with the result, try a different value.)\n");
  4256. fprintf(stdout,"INFO: d) Hitting the interpolate button.\n");
  4257. fprintf(stdout,"INFO: 4) The newly created sounds will be listed in the panel BETWEEN the two original sounds.\n");
  4258. fprintf(stdout,"INFO: \n");
  4259. fprintf(stdout,"INFO: YOU CAN NOW LISTEN....\n");
  4260. fprintf(stdout,"INFO: a) To the whole listed sequence of sounds.\n");
  4261. fprintf(stdout,"INFO: b) To a sequence of sounds (or any individual sound) you select with the mouse.\n");
  4262. fprintf(stdout,"INFO: c) To the listed sequence of sounds, APART FROM those you select with the mouse.\n");
  4263. fprintf(stdout,"INFO: YOU CAN DELETE...\n");
  4264. fprintf(stdout,"INFO: a) Particular sounds, selected with the mouse. (But you are prevented from deleting the ORIGINAL two sounds selected from the Workspace).\n");
  4265. fprintf(stdout,"INFO: b) The entire interpolation sequence you just made (e.g. in order to try different parameters for the interpolation).\n");
  4266. fprintf(stdout,"INFO: YOU CAN MAKE ADDITIONAL INTERPOLATIONS between ANY ADJACENT PAIR of sounds on the list....\n");
  4267. fprintf(stdout,"INFO: a) Choose two adjacent sounds with the mouse.\n");
  4268. fprintf(stdout,"INFO: b) Proceed exactly as for the original interpolation.\n");
  4269. fprintf(stdout,"INFO: AND YOU CAN FINISH by...\n");
  4270. fprintf(stdout,"INFO: a) CONCLUDING: retaining all the files remaining on the listing.\n");
  4271. fprintf(stdout,"INFO: b) QUITTING: Which deletes all the interpolated files you made (but NOT the original two sources).\n");
  4272. fprintf(stdout,"INFO: \n");
  4273. break;
  4274. case(ACC_STREAM):
  4275. fprintf(stdout,"INFO: REPEAT A SOUND AT A SERIES OF SPECIFIED TIMES.\n");
  4276. fprintf(stdout,"INFO: \n");
  4277. fprintf(stdout,"INFO: TIME OF EVENTS..times at which the sound will play.\n");
  4278. fprintf(stdout,"INFO: ATTENUATION.......level reduction (e.g. to accomodate attack overlaps).\n");
  4279. fprintf(stdout,"INFO: \n");
  4280. break;
  4281. case(HF_PERM1):
  4282. fprintf(stdout,"INFO: GENERATE ALL CHORDS POSSIBLE FROM NOTES IN A GIVEN SET,\n");
  4283. fprintf(stdout,"INFO: RESTRICTING CHORDS TO WITHIN A GIVEN RANGE OF PITCH,\n");
  4284. fprintf(stdout,"INFO: AND USING EACH NOTE (OR ITS OCTAVE TRANSPOSITION) ONCE ONLY PER CHORD.\n");
  4285. fprintf(stdout,"INFO: \n");
  4286. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  4287. fprintf(stdout,"INFO: \n");
  4288. fprintf(stdout,"INFO: SOUND OUT................Outputs 1 soundfile of the chords.\n");
  4289. fprintf(stdout,"INFO: SOUNDS OUT...............Outputs several soundfiles, chords grouped by the sort prodecure(s) you specify.\n");
  4290. fprintf(stdout,"INFO: TEXT OUT ................Outputs list of chords described by their note names.\n");
  4291. fprintf(stdout,"INFO: MIDI OUT ................Outputs list of chords described by the MIDI values of the notes in them.\n");
  4292. fprintf(stdout,"INFO: \n");
  4293. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4294. fprintf(stdout,"INFO: \n");
  4295. fprintf(stdout,"INFO: Sound-out & Sounds-Out modes only....\n");
  4296. fprintf(stdout,"INFO: SAMPLE RATE OF THE SOUND OUTPUT\n");
  4297. fprintf(stdout,"INFO: DURATION OF EACH CHORD GENERATED (SECS)\n");
  4298. fprintf(stdout,"INFO: DURATION OF PAUSES BETWEEN CHORDS (SECS)\n");
  4299. fprintf(stdout,"INFO: Sound-out only: ....\n");
  4300. fprintf(stdout,"INFO: DURATION OF PAUSES BETWEEN CHORD-GROUPS (SECS)\n");
  4301. fprintf(stdout,"INFO: All modes....\n");
  4302. fprintf(stdout,"INFO: MIN NUMBER OF NOTES PER CHORD\n");
  4303. fprintf(stdout,"INFO: BOTTOM NOTE OF THE PITCH RANGE OF THE CHORDS\n");
  4304. fprintf(stdout,"INFO: OCTAVE IN WHICH THIS NOTE OCCURS...zero = octave upwards from Middle C\n");
  4305. fprintf(stdout,"INFO: TOP NOTE OF THE PITCH RANGE OF THE CHORDS\n");
  4306. fprintf(stdout,"INFO: OCTAVE IN WHICH THIS NOTE OCCURS\n");
  4307. fprintf(stdout,"INFO: \n");
  4308. fprintf(stdout,"INFO: SORT CHORDS BY ....ROOT Chord with lowest root note comes first.\n");
  4309. fprintf(stdout,"INFO: ....TOPNOTE Chord with highest top note comes first.\n");
  4310. fprintf(stdout,"INFO: ....PITCHCLASS SET Chords with same (8va equivalent) notes grouped together.\n");
  4311. fprintf(stdout,"INFO: ....CHORD TYPE Chords of same interval structure grouped together.\n");
  4312. fprintf(stdout,"INFO: .... 1 of each: only 1 representative of each chord retained.\n");
  4313. fprintf(stdout,"INFO: \n");
  4314. fprintf(stdout,"INFO: CHORDS ONLY OF SPECIFIED MIN NO OF NOTES\n");
  4315. fprintf(stdout,"INFO: .... Don't generate chords with more notes than minimum specified.\n");
  4316. fprintf(stdout,"INFO: SMALLEST SPAN FIRST (ELSE LARGEST) (inoperative with CHORD TYPE sorts)\n");
  4317. fprintf(stdout,"INFO: .... In each subgroup, put smallest span chord first (otherwise it goes last).\n");
  4318. fprintf(stdout,"INFO: SORT BY ALTERNATIVE METHOD (ELSE BY DENSITY) (inoperative with CHORD TYPE sorts)\n");
  4319. fprintf(stdout,"INFO: .... By default, chords in each subgroup are sorted by density.\n");
  4320. fprintf(stdout,"INFO: .... If flag is set,\n");
  4321. fprintf(stdout,"INFO: .... For ROOT or TOP NOTE sort, subgroups sorted by the way intervals are stacked inside chord.\n");
  4322. fprintf(stdout,"INFO: .... For PITCHCLASS SET sort, subgroups sorted by size of containing interval, then by density.\n");
  4323. fprintf(stdout,"INFO: ELIMINATE CHORDS DUPLICATED AT OCTAVES\n");
  4324. fprintf(stdout,"INFO: .... Where exactly same chord occurs in more than one octave, eliminate duplicates.\n");
  4325. fprintf(stdout,"INFO: \n");
  4326. break;
  4327. case(HF_PERM2):
  4328. fprintf(stdout,"INFO: GENERATE ALL CHORDS POSSIBLE FROM MIDI VALUES IN A GIVEN SET,\n");
  4329. fprintf(stdout,"INFO: \n");
  4330. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  4331. fprintf(stdout,"INFO: \n");
  4332. fprintf(stdout,"INFO: SOUND OUT................Outputs 1 soundfile of the chords.\n");
  4333. fprintf(stdout,"INFO: SOUNDS OUT...............Outputs several soundfiles, chords grouped by the sort prodecure(s) you specify.\n");
  4334. fprintf(stdout,"INFO: TEXT OUT ................Outputs list of chords described by their note names.\n");
  4335. fprintf(stdout,"INFO: MIDI OUT ................Outputs list of chords described by the MIDI values of the notes in them.\n");
  4336. fprintf(stdout,"INFO: \n");
  4337. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4338. fprintf(stdout,"INFO: \n");
  4339. fprintf(stdout,"INFO: Sound-out & Sounds-Out modes only....\n");
  4340. fprintf(stdout,"INFO: SAMPLE RATE OF THE SOUND OUTPUT\n");
  4341. fprintf(stdout,"INFO: DURATION OF EACH CHORD GENERATED (SECS)\n");
  4342. fprintf(stdout,"INFO: DURATION OF PAUSES BETWEEN CHORDS (SECS)\n");
  4343. fprintf(stdout,"INFO: Sound-out only: ....\n");
  4344. fprintf(stdout,"INFO: DURATION OF PAUSES BETWEEN CHORD-GROUPS (SECS)\n");
  4345. fprintf(stdout,"INFO: All modes....\n");
  4346. fprintf(stdout,"INFO: MIN NUMBER OF NOTES PER CHORD\n");
  4347. fprintf(stdout,"INFO: SORT CHORDS BY ....ROOT Chord with lowest root note comes first.\n");
  4348. fprintf(stdout,"INFO: ....TOPNOTE Chord with highest top note comes first.\n");
  4349. fprintf(stdout,"INFO: ....PITCHCLASS SET Chords with same (8va equivalent) notes grouped together.\n");
  4350. fprintf(stdout,"INFO: ....CHORD TYPE Chords of same interval structure grouped together.\n");
  4351. fprintf(stdout,"INFO: .... 1 of each: only 1 representative of each chord retained.\n");
  4352. fprintf(stdout,"INFO: \n");
  4353. fprintf(stdout,"INFO: CHORDS ONLY OF SPECIFIED MIN NO OF NOTES\n");
  4354. fprintf(stdout,"INFO: .... Don't generate chords with more notes than minimum specified.\n");
  4355. fprintf(stdout,"INFO: SMALLEST SPAN FIRST (ELSE LARGEST) (inoperative with CHORD TYPE sorts)\n");
  4356. fprintf(stdout,"INFO: .... In each subgroup, put smallest span chord first (otherwise it goes last).\n");
  4357. fprintf(stdout,"INFO: SORT BY ALTERNATIVE METHOD (ELSE BY DENSITY) (inoperative with CHORD TYPE sorts)\n");
  4358. fprintf(stdout,"INFO: .... By default, chords in each subgroup are sorted by density.\n");
  4359. fprintf(stdout,"INFO: .... If flag is set,\n");
  4360. fprintf(stdout,"INFO: .... For ROOT or TOP NOTE sort, subgroups sorted by the way intervals are stacked inside chord.\n");
  4361. fprintf(stdout,"INFO: .... For PITCHCLASS SET sort, subgroups sorted by size of containing interval, then by density.\n");
  4362. fprintf(stdout,"INFO: ELIMINATE CHORDS DUPLICATED AT OCTAVES\n");
  4363. fprintf(stdout,"INFO: .... Where exactly same chord occurs in more than one octave, eliminate duplicates.\n");
  4364. fprintf(stdout,"INFO: \n");
  4365. break;
  4366. case(DEL_PERM):
  4367. fprintf(stdout,"INFO: DELAY AND TRANSFORM EACH INPUT MIDI VALUE, CUMULATIVELY.\n");
  4368. fprintf(stdout,"INFO: \n");
  4369. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4370. fprintf(stdout,"INFO: DELAY PERMUTATION\n");
  4371. fprintf(stdout,"INFO: ......list of pairs of values, in textfile\n");
  4372. fprintf(stdout,"INFO: ......1st value of the pair is a semitone transposition\n");
  4373. fprintf(stdout,"INFO: ......2nd value of pair is a time-multiplier of duration (<1)\n");
  4374. fprintf(stdout,"INFO: ......Sum of all time-multipliers must be equal to 1\n");
  4375. fprintf(stdout,"INFO: SAMPLE RATE sample rate of the sound output\n");
  4376. fprintf(stdout,"INFO: INITIAL DURATION OF NOTES length of each input note, before it is transformed\n");
  4377. fprintf(stdout,"INFO: CYCLES OF PERMUTATION number of times the permutation is recursively applied.\n");
  4378. break;
  4379. case(DEL_PERM2):
  4380. fprintf(stdout,"INFO: DELAY AND TRANSFORM INPUT SOUND (assumed to be at MIDI 60) AT INPUT MIDI VALUES, CUMULATIVELY.\n");
  4381. fprintf(stdout,"INFO: \n");
  4382. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4383. fprintf(stdout,"INFO: DELAY PERMUTATION\n");
  4384. fprintf(stdout,"INFO: ......list of pairs of values, in textfile\n");
  4385. fprintf(stdout,"INFO: ......1st value of the pair is a semitone transposition\n");
  4386. fprintf(stdout,"INFO: ......2nd value of pair is a time-multiplier of duration (<1)\n");
  4387. fprintf(stdout,"INFO: ......Sum of all time-multipliers must be equal to 1\n");
  4388. fprintf(stdout,"INFO: CYCLES OF PERMUTATION number of times the permutation is recursively applied.\n");
  4389. break;
  4390. case(TWIXT):
  4391. fprintf(stdout,"INFO: SWITCH, AT GIVEN TIMES, BETWEEN SEVERAL FILES, AS THEY 'PLAY' IN PARALLEL.\n");
  4392. fprintf(stdout,"INFO: \n");
  4393. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  4394. fprintf(stdout,"INFO: \n");
  4395. fprintf(stdout,"INFO: TIME-SEGMENTS IN SEQUENCE.........Proceed from first time-segment to 2nd to 3rd etc.\n");
  4396. fprintf(stdout,"INFO: TIME-SEGMENTS PERMUTED............Permute the sequence of time-segments.\n");
  4397. fprintf(stdout,"INFO: TIME-SEGMENTS AT RANDOM..........Chose any time-segment, at random.\n");
  4398. fprintf(stdout,"INFO: TEST SWITCH TIMES....................Chops up first file (only) at the given times,\n");
  4399. fprintf(stdout,"INFO: ............................................producing segments as separate output files.\n");
  4400. fprintf(stdout,"INFO: ............................................to test accuracy of file segmentation times.\n");
  4401. fprintf(stdout,"INFO: PREVIEW SOURCE1 ENVELOPE........Generate a view of the envelope of 1st file,\n");
  4402. fprintf(stdout,"INFO: ............................................to permit choice of intelligent gating.\n");
  4403. fprintf(stdout,"INFO: EXTRACT SWITCH TIMES..............Use intelligent gating to generate switch times from first file.\n");
  4404. fprintf(stdout,"INFO: \n");
  4405. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4406. fprintf(stdout,"INFO: \n");
  4407. fprintf(stdout,"INFO: SWITCH TIMES ....... is a texfile containing times which divide the files into segments.\n");
  4408. fprintf(stdout,"INFO: Include time zero if you want start of files to be used as a segment.\n");
  4409. fprintf(stdout,"INFO: SPLICE LENGTH (MS) ....... is (approx) length of splices used on segments, in milliseconds.\n");
  4410. fprintf(stdout,"INFO: NUMBER OF SEGMENTS TO OUTPUT ....... (Only relevant with the random modes).\n");
  4411. fprintf(stdout,"INFO: WEIGHTING OF FIRST FILE ....... First file occurs N times more often then other files.\n");
  4412. fprintf(stdout,"INFO: RANDOM PERM OF FILES ....... Sequence of files chosen is randomly permuted..\n");
  4413. fprintf(stdout,"INFO: except that output always begins with first file in your list.\n");
  4414. fprintf(stdout,"INFO: (default: files taken in order given in chosen-files list.)\n");
  4415. break;
  4416. case(SPHINX):
  4417. fprintf(stdout,"INFO: SWITCH, AT GIVEN INPUT-FILE TIMES, BETWEEN SEVERAL FILES,\n");
  4418. fprintf(stdout,"INFO: BUT SWITCH-TIMES ASSOCIATED WITH EACH FILE ARE NOT NECESSARILY THE SAME.\n");
  4419. fprintf(stdout,"INFO: \n");
  4420. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  4421. fprintf(stdout,"INFO: IN TIME ORDER..................Proceed from 1st time-segment to 2nd to 3rd etc.\n");
  4422. fprintf(stdout,"INFO: RANDOMLY REORDERED.......Permute the sequence of time-segments.\n");
  4423. fprintf(stdout,"INFO: RANDOM CHOICE...............Chose any time-segment, at random.\n");
  4424. fprintf(stdout,"INFO: \n");
  4425. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4426. fprintf(stdout,"INFO: \n");
  4427. fprintf(stdout,"INFO: SWITCH TIMES ....... is a texfile containing times which divide the files into segments.\n");
  4428. fprintf(stdout,"INFO: Include zero if start of files to be used, and file endtime, if end of file to be used.\n");
  4429. fprintf(stdout,"INFO: The 1st times in each file should all be on line 1.\n");
  4430. fprintf(stdout,"INFO: The 2nd times in each file should all be on line 2. ETC.....\n");
  4431. fprintf(stdout,"INFO: Each file must have the SAME NUMBER of switch times.\n");
  4432. fprintf(stdout,"INFO: SPLICE LENGTH (MS) ....... is (approx) length of splices used on segments, in milliseconds.\n");
  4433. fprintf(stdout,"INFO: NUMBER OF SEGMENTS TO OUTPUT ....... (Only relevant with the random modes).\n");
  4434. fprintf(stdout,"INFO: WEIGHTING OF FIRST FILE ....... First file occurs N times more often then other files.\n");
  4435. fprintf(stdout,"INFO: RANDOM PERM OF FILES ....... File sequence randomly permuted (except 1st file always starts output)\n");
  4436. fprintf(stdout,"INFO: (default: files taken in order given in chosen-files list.)\n");
  4437. fprintf(stdout,"INFO: \n");
  4438. fprintf(stdout,"INFO: GENERATING A DATA FILE FOR SPHINX ------------------------\n");
  4439. fprintf(stdout,"INFO: \n");
  4440. fprintf(stdout,"INFO: 1) Run Mode PREVIEW SOURCE1 ENVELOPE and then EXTRACT SWITCH TIMES\n");
  4441. fprintf(stdout,"INFO: to automatically generate list of segment onsets for 1st file in your list.\n");
  4442. fprintf(stdout,"INFO: 2) Run Mode TEST SWITCH TIMES to check segment onset times are good.\n");
  4443. fprintf(stdout,"INFO: 3) IF NOT: Use 'Nudge Times' on Parameters page to modify (& test) segment onset times.\n");
  4444. fprintf(stdout,"INFO: 4) Rotate the file-list on workspace, and generate the next edit-times file. ETC.\n");
  4445. fprintf(stdout,"INFO: 5) Use the TABLE EDITOR in MULTIPLE FILES MODE to merge all these individual datafiles.\n");
  4446. fprintf(stdout,"INFO: a) Select the data files you have created from the listing at left,\n");
  4447. fprintf(stdout,"INFO: b) Use the JOIN menu, 'Put Cols of one file next to cols of another'\n");
  4448. fprintf(stdout,"INFO: c) Save resulting output table as your sphinx datafile.\n");
  4449. break;
  4450. case(NOISE_SUPRESS):
  4451. fprintf(stdout,"INFO: REPLACE NOISE CONSTITUENTS IN FILE BY SILENCE\n");
  4452. fprintf(stdout,"INFO: \n");
  4453. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4454. fprintf(stdout,"INFO: \n");
  4455. fprintf(stdout,"INFO: SPLICE LENGTH (MS) for splice editing out noise.\n");
  4456. fprintf(stdout,"INFO: MINIMUM NOISE FREQUENCY (HZ) frequency above which signal treated as potential noise.\n");
  4457. fprintf(stdout,"INFO: MAXIMUM DURATION OF NOISE TO KEEP (MS)\n");
  4458. fprintf(stdout,"INFO: MINIMUM DURATION OF TONE TO KEEP (MS)\n");
  4459. fprintf(stdout,"INFO: RETAIN NOISE RATHER THAN TONE keeps only the noise components\n");
  4460. break;
  4461. case(TIME_GRID):
  4462. fprintf(stdout,"INFO: DIVIDE SOURCE INTO SET OF ADJACENT GRIDS.\n");
  4463. fprintf(stdout,"INFO: A GRID SHOWS WINDOWS OF SOURCE, AT ORIGINAL TIMES, SEPARATED BY SILENCE.\n");
  4464. fprintf(stdout,"INFO: \n");
  4465. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4466. fprintf(stdout,"INFO: \n");
  4467. fprintf(stdout,"INFO: NUMBER OF GRIDS: number of grids into which source is to be partitioned.\n");
  4468. fprintf(stdout,"INFO: WIDTH OF GRID WINDOWS: size of grid windows, in seconds.\n");
  4469. fprintf(stdout,"INFO: SPLICE LENGTH: length of splices, in milliseconds.\n");
  4470. break;
  4471. case(SEQUENCER):
  4472. fprintf(stdout,"INFO: PRODUCE SEQUENCE OF INPUT SOUND PLAYED AT TRANSPOSITIONS & TIMES SPECIFIED.\n");
  4473. fprintf(stdout,"INFO: \n");
  4474. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4475. fprintf(stdout,"INFO: \n");
  4476. fprintf(stdout,"INFO: SEQUENCE VALUES IN FILE\n");
  4477. fprintf(stdout,"INFO: Required data is a textfile containing TIME : TRANSPOSITION : LEVEL triples.\n");
  4478. fprintf(stdout,"INFO: Transpositions are (+ve or -ve) semitone shifts.\n");
  4479. fprintf(stdout,"INFO: Level values multiple the original event's level.\n");
  4480. fprintf(stdout,"INFO: \n");
  4481. fprintf(stdout,"INFO: ATTENUATION: to reduce level, should sequencing overload.\n");
  4482. break;
  4483. case(SEQUENCER2):
  4484. fprintf(stdout,"INFO: PRODUCE SEQUENCE OF SEVERAL INPUT SOUNDS PLAYED AT TRANSPOSITIONS & TIMES SPECIFIED.\n");
  4485. fprintf(stdout,"INFO: \n");
  4486. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4487. fprintf(stdout,"INFO: \n");
  4488. fprintf(stdout,"INFO: 1) SEQUENCE VALUES IN FILE : Required data is a textfile containing ......\n");
  4489. fprintf(stdout,"INFO: \n");
  4490. fprintf(stdout,"INFO: On the FIRST line: The (MIDI) pitch of each input file.\n");
  4491. fprintf(stdout,"INFO: \n");
  4492. fprintf(stdout,"INFO: On ALL OTHER lines: A set of Five values for each event in ther output...\n");
  4493. fprintf(stdout,"INFO: a) Input Sound Number.\n");
  4494. fprintf(stdout,"INFO: b) Time (secs). (times must be in increasing order).\n");
  4495. fprintf(stdout,"INFO: c) MIDI pitch.\n");
  4496. fprintf(stdout,"INFO: d) Loudness (a multiplier).\n");
  4497. fprintf(stdout,"INFO: e) Duration (if [transposed]-source is shorter than 'Duration'.\n");
  4498. fprintf(stdout,"INFO: sound duration cannot be extended)\n");
  4499. fprintf(stdout,"INFO: \n");
  4500. fprintf(stdout,"INFO: 2) ATTENUATION: to reduce level, should sequencing overload.\n");
  4501. fprintf(stdout,"INFO: 2) SPLICE (MS): to cut short events, if they are too long.\n");
  4502. fprintf(stdout,"INFO: \n");
  4503. break;
  4504. case(CONVOLVE):
  4505. fprintf(stdout,"INFO: CONVOLVE THE FIRST SOUND WITH THE SECOND.\n");
  4506. fprintf(stdout,"INFO: \n");
  4507. fprintf(stdout,"INFO: Each sample of the first sound is multiplied by each sample of the 2nd.\n");
  4508. fprintf(stdout,"INFO: Typically, the 2nd sound is a loud all-frequency sound (e.g. a gunshot)\n");
  4509. fprintf(stdout,"INFO: in a reverberant space. Convolution imposes the reverberant characteristics\n");
  4510. fprintf(stdout,"INFO: of that space onto the first sound.\n");
  4511. fprintf(stdout,"INFO: \n");
  4512. fprintf(stdout,"INFO: The second (convolving) sound must not be longer than the first (convolved) sound.\n");
  4513. fprintf(stdout,"INFO: \n");
  4514. fprintf(stdout,"INFO: This process is very slow!!.\n");
  4515. fprintf(stdout,"INFO: \n");
  4516. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  4517. fprintf(stdout,"INFO: \n");
  4518. fprintf(stdout,"INFO: NORMAL.\n");
  4519. fprintf(stdout,"INFO: TIME_VARYING.....convolving file can be transposed in a time-varying way.\n");
  4520. fprintf(stdout,"INFO: \n");
  4521. fprintf(stdout,"INFO: PARAMETERS (TIME_VARYING MODE ONLY) ----------------------------------------------------\n");
  4522. fprintf(stdout,"INFO: \n");
  4523. fprintf(stdout,"INFO: SEMITONE TRANSPOSITION OF CONVOLVING FILE....may vary through time.\n");
  4524. fprintf(stdout,"INFO: \n");
  4525. break;
  4526. case(BAKTOBAK):
  4527. fprintf(stdout,"INFO: JOIN A TIME-REVERSED COPY OF THE SOUND, TO A NORMAL COPY, IN THAT ORDER.\n");
  4528. fprintf(stdout,"INFO: \n");
  4529. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4530. fprintf(stdout,"INFO: \n");
  4531. fprintf(stdout,"INFO: TIME OF JOIN Time in src file where join-cut is to be made.\n");
  4532. fprintf(stdout,"INFO: SPLICE LENGTH (MS) Length of the splice, in milliseconds.\n");
  4533. break;
  4534. case(ADDTOMIX):
  4535. fprintf(stdout,"INFO: ADD SOUNDFILES TO AN EXISTING MIXFILE.\n");
  4536. fprintf(stdout,"INFO: \n");
  4537. fprintf(stdout,"INFO: SOUNDFILES ARE ADDED, (AT MAX LEVEL AND TIME ZERO), TO FOOT OF AN EXISTING MIXFILE.\n");
  4538. fprintf(stdout,"INFO: \n");
  4539. break;
  4540. case(MIX_PAN):
  4541. fprintf(stdout,"INFO: PAN ENTRIES IN A MIXFILE.\n");
  4542. fprintf(stdout,"INFO: \n");
  4543. fprintf(stdout,"INFO: SOUNDFILES ARE PLACED AT POSITIONS SPECIFIED BY A PAN VALUE,\n");
  4544. fprintf(stdout,"INFO: or BY VALUES READ FROM A TIME-VARYING BRKPOINT FILE.\n");
  4545. fprintf(stdout,"INFO: \n");
  4546. fprintf(stdout,"INFO: THE SOUNDS THEMSELVES DO NOT PAN.\n");
  4547. fprintf(stdout,"INFO: \n");
  4548. fprintf(stdout,"INFO: IF THERE IS ANY STEREO FILE IN THE ORIGINAL MIX,\n");
  4549. fprintf(stdout,"INFO: WHEN THE RESULTING MIX IS USED TO GENERATE SOUND OUTPUT\n");
  4550. fprintf(stdout,"INFO: THAT STEREO FILE WILL BE MERGED TO A MONO STREAM,\n");
  4551. fprintf(stdout,"INFO: AND THAT STREAM POSITIONED IN THE STEREO SPACE OF THE OUTPUT.\n");
  4552. break;
  4553. case(SHUDDER):
  4554. fprintf(stdout,"INFO: SHUDDER\n");
  4555. fprintf(stdout,"INFO: \n");
  4556. fprintf(stdout,"INFO: PRODUCE (RANDOMISED) TREMULATIONS ON STEREO FILE\n");
  4557. fprintf(stdout,"INFO: WHICH CAN BE SPREAD OVER THE STEREO STAGE\n");
  4558. fprintf(stdout,"INFO: \n");
  4559. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4560. fprintf(stdout,"INFO: \n");
  4561. fprintf(stdout,"INFO: START_TIME of the Shuddering.\n");
  4562. fprintf(stdout,"INFO: FREQUENCY of the Shuddering.\n");
  4563. fprintf(stdout,"INFO: RANDOMISATION of the Shuddering. (0 - 1)\n");
  4564. fprintf(stdout,"INFO: SPATIAL_SPREAD of the Shuddering. (0 - 1)\n");
  4565. fprintf(stdout,"INFO: LOUDNESS DEPTH (MIN & MAX) of the Shuddering. (0 - 1)\n");
  4566. fprintf(stdout,"INFO: EVENT WIDTH (MIN & MAX), in seconds, of the Shudder events.\n");
  4567. fprintf(stdout,"INFO: \n");
  4568. fprintf(stdout,"INFO: BALACE CHANNEL LEVELS, Boost overall level of quieter channel,\n");
  4569. fprintf(stdout,"INFO: if peak level more than 1dB lower than peak level of other channel.\n");
  4570. break;
  4571. case(MIX_AT_STEP):
  4572. fprintf(stdout,"INFO: CREATE MIXFILE FROM TWO OR MORE SOUNDS, WITH GIVEN TIME STEP BETWEEN ENTRIES\n");
  4573. fprintf(stdout,"INFO: \n");
  4574. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4575. fprintf(stdout,"INFO: \n");
  4576. fprintf(stdout,"INFO: TIME STEP between entry of the sounds.\n");
  4577. break;
  4578. case(FIND_PANPOS):
  4579. fprintf(stdout,"INFO: FIND PAN POSITION OF SOUND IN STEREO IMAGE\n");
  4580. fprintf(stdout,"INFO: \n");
  4581. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4582. fprintf(stdout,"INFO: \n");
  4583. fprintf(stdout,"INFO: AT TIME : Time in file at which to assess stereo position.\n");
  4584. fprintf(stdout,"INFO: N.B. IF TIME IS SET TO ZERO, the process assesses the ENTIRE FILE.\n");
  4585. fprintf(stdout,"INFO: \n");
  4586. fprintf(stdout,"INFO: The process only works with Stereo files.\n");
  4587. fprintf(stdout,"INFO: \n");
  4588. fprintf(stdout,"INFO: This process assumes that (approx) the SAME sound is present in both the Left & Right channels.\n");
  4589. fprintf(stdout,"INFO: This will be the case if the stereo file is the result of panning a previously mono sound source.\n");
  4590. break;
  4591. case(CLICK):
  4592. fprintf(stdout,"INFO: GENERATE A SEQUENCE OF CLICKS\n");
  4593. fprintf(stdout,"INFO: \n");
  4594. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4595. fprintf(stdout,"INFO: \n");
  4596. fprintf(stdout,"INFO: TAKES DATAFILE CONTAINING SEQUENCE OF DATA LINES -------------------\n");
  4597. fprintf(stdout,"INFO: EACH DATA LINE HAS A LINE NUMBER followed by 3 or 4 DATA ITEMS, separated by spaces, EITHER in the form...\n");
  4598. fprintf(stdout,"INFO: \n");
  4599. fprintf(stdout,"INFO: GP 0 27.3 for a general pause of 27.3 secs.\n");
  4600. fprintf(stdout,"INFO: GP 1 18.7 for a general pause of 18.7 secs. with an accent at start.\n");
  4601. fprintf(stdout,"INFO: TIME 123.5 Set the absolute time to 123.5 (time must be LATER than previous event).\n");
  4602. fprintf(stdout,"INFO: \n");
  4603. fprintf(stdout,"INFO: OR the following set of items.....\n");
  4604. fprintf(stdout,"INFO: \n");
  4605. fprintf(stdout,"INFO: 1) TEMPO : in form....(with no spaces around '=')\n");
  4606. fprintf(stdout,"INFO: 1=144 (for crotchet = 144) 2=75.3 (for minim = 75.3)\n");
  4607. fprintf(stdout,"INFO: 0.5=180 (for quaver = 180) 1.5=100 (for dotted crotchet = 100)\n");
  4608. fprintf(stdout,"INFO: 1=144.3to89.5 (for tempo change from crotchet = 144.3 to crotchet = 89.5)\n");
  4609. fprintf(stdout,"INFO: \n");
  4610. fprintf(stdout,"INFO: A SINGLE DOT ('.') can be used to indicate 'same tempo', BUT not after a changing tempo\n");
  4611. fprintf(stdout,"INFO: \n");
  4612. fprintf(stdout,"INFO: 2) BARRING : in form 4:4 or 6:8 or 7:16 etc. (no spaces around ':')\n");
  4613. fprintf(stdout,"INFO: \n");
  4614. fprintf(stdout,"INFO: A SINGLE DOT ('.') can be used to indicate 'same barring', BUT only after barring has been established.\n");
  4615. fprintf(stdout,"INFO: \n");
  4616. fprintf(stdout,"INFO: 3) COUNT : i.e. number of bars in this format.\n");
  4617. fprintf(stdout,"INFO: \n");
  4618. fprintf(stdout,"INFO: ----------------------- and optionally -----------------------\n");
  4619. fprintf(stdout,"INFO: \n");
  4620. fprintf(stdout,"INFO: 4) ACCENTS : in one of the forms....(no spaces within the pattern)\n");
  4621. fprintf(stdout,"INFO: 1..... strong beat followed by 5 weak beats\n");
  4622. fprintf(stdout,"INFO: 1..1.. strong beat (start) and secondary beat (at 4) with weak beats between\n");
  4623. fprintf(stdout,"INFO: 100100 strong beat and secondary beat, with NO intermediate beats\n");
  4624. fprintf(stdout,"INFO: ETC.\n");
  4625. fprintf(stdout,"INFO: IF ACCENT PATTERN OMITTED, default patterns used. These are....\n");
  4626. fprintf(stdout,"INFO: An accent on start of each bar, plus....\n");
  4627. fprintf(stdout,"INFO: a) in 6:8, 9:8, 12:8, 15:8 etc, or 6:4, 6:16, 6:32 or 9:4, 9:16 etc.\n");
  4628. fprintf(stdout,"INFO: Sound on every specified unit (4,8,16,32 etc.) with Secondary accents every 3rd beat.\n");
  4629. fprintf(stdout,"INFO: b) in all other meters,\n");
  4630. fprintf(stdout,"INFO: Sound on every specified unit (4,8,16,32 etc.), but NO secondary accents\n");
  4631. fprintf(stdout,"INFO: \n");
  4632. fprintf(stdout,"INFO: ----------------------- also -----------------------\n");
  4633. fprintf(stdout,"INFO: \n");
  4634. fprintf(stdout,"INFO: comments preceded by ';' can be used e.g. ;Section 1\n");
  4635. fprintf(stdout,"INFO: \n");
  4636. fprintf(stdout,"INFO: OTHER PARAMETERS-----------------------------------------------------\n");
  4637. fprintf(stdout,"INFO: \n");
  4638. fprintf(stdout,"INFO: IN MODE 'FROM TIME'\n");
  4639. fprintf(stdout,"INFO: MAKE CLICK FROM TIME ..... Generate clicktrack, beginning at score time given here.\n");
  4640. fprintf(stdout,"INFO: If time is given as ZERO, output will include any clicks prior to music zero.\n");
  4641. fprintf(stdout,"INFO: MAKE CLICK TO TIME ......... Generate clicktrack, ending at score time given here.\n");
  4642. fprintf(stdout,"INFO: \n");
  4643. fprintf(stdout,"INFO: IN MODE 'FROM LINE'\n");
  4644. fprintf(stdout,"INFO: MAKE CLICK FROM DATA LINE ..... Generate clicktrack, beginning at data line.\n");
  4645. fprintf(stdout,"INFO: MAKE CLICK TO DATA LINE ......... Generate clicktrack, ending at data line.\n");
  4646. fprintf(stdout,"INFO: \n");
  4647. fprintf(stdout,"INFO: IN ALL MODES\n");
  4648. fprintf(stdout,"INFO: \n");
  4649. fprintf(stdout,"INFO: MUSIC STARTS AT LINE...........Usually clicks will begin BEFORE the true start of the music,\n");
  4650. fprintf(stdout,"INFO: and in this case music-zero-time will come AFTER the start of the clicks.\n");
  4651. fprintf(stdout,"INFO: This parameter allows you to specify at which line in the data the music itself begins.\n");
  4652. fprintf(stdout,"INFO: SHOW LINE TIMES ..... Running display of times at which each data line begins (relative to music zero).\n");
  4653. break;
  4654. case(DOUBLETS):
  4655. fprintf(stdout,"INFO: SLICE UP SOUND, REPEATING SLICED SEGMENTS\n");
  4656. fprintf(stdout,"INFO: \n");
  4657. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4658. fprintf(stdout,"INFO: \n");
  4659. fprintf(stdout,"INFO: SEGMENTATION LENGTH .... duration of sliced segments.\n");
  4660. fprintf(stdout,"INFO: SEGMENT REPEATS .............. number of times each segment is repeated.\n");
  4661. fprintf(stdout,"INFO: RETAIN ORIGINAL DURATION ...step through file fast enough to keep up with time in source file.\n");
  4662. break;
  4663. case(SYLLABS):
  4664. fprintf(stdout,"INFO: SLICE TEXT INTO ITS CONTIGUOUS SYLLABLES\n");
  4665. fprintf(stdout,"INFO: \n");
  4666. fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
  4667. fprintf(stdout,"INFO: \n");
  4668. fprintf(stdout,"INFO: SYLLABLE TIMES .... List of syllable starttimes, plus endtime of last syllable.\n");
  4669. fprintf(stdout,"INFO: DOVETAIL ...........Time (MS) allowed for syllable overlap.\n");
  4670. fprintf(stdout,"INFO: SPLICELENGTH .......Duration (MS) of editing splices.\n");
  4671. fprintf(stdout,"INFO: IN PAIRS .......Cut all syllable-pairs (default, cut individual syllables).\n");
  4672. break;
  4673. case(JOIN_SEQ):
  4674. fprintf(stdout,"INFO: JOIN FILES TOGETHER, ONE AFTER ANOTHER, IN A GIVEN PATTERN\n");
  4675. fprintf(stdout,"INFO: \n");
  4676. fprintf(stdout,"INFO: PATTERN.......File numbers, in the sequence in which they are to be joined.\n");
  4677. fprintf(stdout,"INFO: SPLICE........duration of splices, in MS (default 15)\n");
  4678. fprintf(stdout,"INFO: SPLICE START..splices start of first file.\n");
  4679. fprintf(stdout,"INFO: SPLICE END....splices end of last file.\n");
  4680. fprintf(stdout,"INFO: \n");
  4681. break;
  4682. case(JOIN_SEQDYN):
  4683. fprintf(stdout,"INFO: JOIN FILES TOGETHER, ONE AFTER ANOTHER, IN A GIVEN PATTERN, WITH A LOUDNESS PATTERNING\n");
  4684. fprintf(stdout,"INFO: \n");
  4685. fprintf(stdout,"INFO: PATTERN.......File numbers, in the sequence in which they are to be joined.\n");
  4686. fprintf(stdout,"INFO: .....................each followed by the relative loudness of that pattern item.\n");
  4687. fprintf(stdout,"INFO: SPLICE........duration of splices, in MS (default 15)\n");
  4688. fprintf(stdout,"INFO: SPLICE START..splices start of first file.\n");
  4689. fprintf(stdout,"INFO: SPLICE END....splices end of last file.\n");
  4690. fprintf(stdout,"INFO: \n");
  4691. break;
  4692. case(MAKE_VFILT):
  4693. fprintf(stdout,"INFO: CONVERT EACH VALUE IN A LIST OF MIDI VALUES IN A TEXTFILE\n");
  4694. fprintf(stdout,"INFO: TO A FIXED-PITCH FILTER-DATA-FILE FOR THE VARI-FILTER\n");
  4695. fprintf(stdout,"INFO: \n");
  4696. break;
  4697. case(BATCH_EXPAND):
  4698. fprintf(stdout,"INFO: USE EXISTING BATCHFILE AS A MODEL TO WORK ON OTHER SOUNDFILES\n");
  4699. fprintf(stdout,"INFO: \n");
  4700. fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
  4701. fprintf(stdout,"INFO: \n");
  4702. fprintf(stdout,"INFO: 1) ONE PARAM.\n");
  4703. fprintf(stdout,"INFO: a) EXISTING BATCHFILE MUST OPERATE ON A SINGLE SOUNDFILE.\n");
  4704. fprintf(stdout,"INFO: b) PARAMETER TO BE REPLACED MUST BE SAME VALUE FOR EACH BATCHFILE LINE.\n");
  4705. fprintf(stdout,"INFO: SAME SEQUENCE OF OPERATIONS APPLIED TO EACH IN-SNDFILE USING EACH NEW PARAM IN TURN\n");
  4706. fprintf(stdout,"INFO: e.g. Batchfile\n");
  4707. fprintf(stdout,"INFO: filter varibank 2 in1.wav in1_a filt0.txt 10 2 14 -h36 -r0.0 -d\n");
  4708. fprintf(stdout,"INFO: filter varibank 2 in1.wav in1_b filt1.txt 20 2 14 -h38 -r0.0 -d\n");
  4709. fprintf(stdout,"INFO: filter varibank 2 in1.wav in1_c filt2.txt 30 2 14 -h40 -r0.0 -d\n");
  4710. fprintf(stdout,"INFO: with sndlist and datafile entries \n");
  4711. fprintf(stdout,"INFO: ex2.wav 22\n");
  4712. fprintf(stdout,"INFO: ff3.wav 99\n");
  4713. fprintf(stdout,"INFO: and parameter column 9: gives\n");
  4714. fprintf(stdout,"INFO: filter varibank 2 ex2.wav ex2_b0 filt0.txt 10 2 22 -h36 -r0.0 -d\n");
  4715. fprintf(stdout,"INFO: filter varibank 2 ex2.wav ex2_b1 filt1.txt 20 2 22 -h38 -r0.0 -d\n");
  4716. fprintf(stdout,"INFO: filter varibank 2 ex2.wav ex2_b2 filt2.txt 30 2 22 -h40 -r0.0 -d\n");
  4717. fprintf(stdout,"INFO: filter varibank 2 ff3.wav in1_b0 filt0.txt 10 2 99 -h36 -r0.0 -d\n");
  4718. fprintf(stdout,"INFO: filter varibank 2 ff3.wav in1_b1 filt1.txt 20 2 99 -h38 -r0.0 -d\n");
  4719. fprintf(stdout,"INFO: filter varibank 2 ff3.wav in1_b2 filt2.txt 30 2 99 -h40 -r0.0 -d\n");
  4720. fprintf(stdout,"INFO: \n");
  4721. fprintf(stdout,"INFO: 2) MANY PARAMS.\n");
  4722. fprintf(stdout,"INFO: a) EXISTING BATCHFILE CAN OPERATE ON DIFFERENT SOUNDFILES.\n");
  4723. fprintf(stdout,"INFO: b) SOUNDFILES IN ORIG BATCHFILE REPLACED BY CHOSEN FILES, AND USING NEW PARAMS.\n");
  4724. fprintf(stdout,"INFO: TAKING EACH LINE IN TURN.\n");
  4725. fprintf(stdout,"INFO: e.g. Batchfile\n");
  4726. fprintf(stdout,"INFO: filter varibank 2 in1.wav in1_a filt0.txt 10 2 14 -h36 -r0.0 -d\n");
  4727. fprintf(stdout,"INFO: filter varibank 2 in0.wav in0_b filt1.txt 20 2 17 -h38 -r0.0 -d\n");
  4728. fprintf(stdout,"INFO: filter varibank 2 in7.wav in7_c filt2.txt 30 2 11 -h40 -r0.0 -d\n");
  4729. fprintf(stdout,"INFO: e.g. and same Params as above, gives...\n");
  4730. fprintf(stdout,"INFO: filter varibank 2 ex2.wav ex2_b filt0.txt 10 2 22 -h36 -r0.0 -d\n");
  4731. fprintf(stdout,"INFO: filter varibank 2 ff3.wav ff3_b filt1.txt 20 2 99 -h38 -r0.0 -d\n");
  4732. fprintf(stdout,"INFO: \n");
  4733. fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
  4734. fprintf(stdout,"INFO: \n");
  4735. fprintf(stdout,"INFO: COLUMN NUMBER OF INFILE, IN BATCHFILE.\n");
  4736. fprintf(stdout,"INFO: COLUMN NUMBER OF OUTFILE, IN BATCHFILE.\n");
  4737. fprintf(stdout,"INFO: COLUMN NUMBER OF PARAM TO BE REPLACED, IN BATCHFILE.\n");
  4738. fprintf(stdout,"INFO: \n");
  4739. break;
  4740. case(MIX_MODEL):
  4741. fprintf(stdout,"INFO: SUBSTITUTE NEW SOUNDFILES IN EXISTING MIXFILE\n");
  4742. fprintf(stdout,"INFO: \n");
  4743. fprintf(stdout,"INFO: 1st FILE MUST BE AN EXISTING MIXFILE.\n");
  4744. fprintf(stdout,"INFO: OTHER FILES ARE SOUNDFILES.\n");
  4745. fprintf(stdout,"INFO: \n");
  4746. fprintf(stdout,"INFO: THERE MUST BE ONE SOUNDFILE FOR EACH MIXFILE LINE.\n");
  4747. fprintf(stdout,"INFO: CHANNEL-CNT OF SOUND MUST CORRESPOND TO CHANNEL-CNT ON CORERSPONDING MIXFILE LINE.\n");
  4748. break;
  4749. case(CYCINBETWEEN):
  4750. fprintf(stdout,"INFO: CREATE NEW FILES INTERMEDIATE BETWEEN 2 GIVEN FILES\n");
  4751. fprintf(stdout,"INFO: \n");
  4752. fprintf(stdout,"INFO: FILES ARE INTERPOLATED, ATTEMPTING TO KEEP ZER-CROSSINGS PEGGED.\n");
  4753. fprintf(stdout,"INFO: \n");
  4754. fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
  4755. fprintf(stdout,"INFO: \n");
  4756. fprintf(stdout,"INFO: NUMBER OF INTERMEDIATE FILES.\n");
  4757. fprintf(stdout,"INFO: HIGH FREQUENCY CUTOFF.\n");
  4758. break;
  4759. case(ENVSYN):
  4760. fprintf(stdout,"INFO: CREATE ENVELOPE WITH REPEATING PATTERN, IN BINARY ENVELOPE FILE\n");
  4761. fprintf(stdout,"INFO: \n");
  4762. fprintf(stdout,"INFO: ENVELOPE WINDOW SIZE ....is the resolution of the envelope (smaller window gives finer resolution) .\n");
  4763. fprintf(stdout,"INFO: .........................Window size is in MILLIseconds.\n");
  4764. fprintf(stdout,"INFO: \n");
  4765. fprintf(stdout,"INFO: DURATION OF OUTFILE.......The duration (in secs) of the file you want to generate.\n");
  4766. fprintf(stdout,"INFO: \n");
  4767. fprintf(stdout,"INFO: DURATION OF REPEATING UNIT......Duration (in secs) of the repeating units. This can vary over time.\n");
  4768. fprintf(stdout,"INFO: \n");
  4769. fprintf(stdout,"INFO: START POINT WITHIN FIRST UNIT......0 starts at beginning of unit, 1 at the very end.\n");
  4770. fprintf(stdout,"INFO: ......................................values in between start within the unit.\n");
  4771. fprintf(stdout,"INFO: \n");
  4772. fprintf(stdout,"INFO: HEIGHT OF ENVELOPE TROUGH......Lowest value reached by the envelope units (can vary over time).\n");
  4773. fprintf(stdout,"INFO: ........................................(Does not apply to USER DEFINED envelopes).\n");
  4774. fprintf(stdout,"INFO: \n");
  4775. fprintf(stdout,"INFO: EXPONENT OF ENVELOPE RISE OR DECAY......can vary over time.(Does not apply to USER DEFINED envelopes).\n");
  4776. fprintf(stdout,"INFO: \n");
  4777. fprintf(stdout,"INFO: in USER-DEFINED MODE\n");
  4778. fprintf(stdout,"INFO: \n");
  4779. fprintf(stdout,"INFO: Required data is a textfile of time/val(0-1) pairs defining an envelope, where time units are arbitrary\n");
  4780. fprintf(stdout,"INFO: as the envelope is stretched to each unit duration.\n");
  4781. fprintf(stdout,"INFO: \n");
  4782. break;
  4783. case(P_BINTOBRK):
  4784. fprintf(stdout,"INFO: CONVERT BINARY PITCH DATA TO PITCH DATA TEXTFILE.\n");
  4785. fprintf(stdout,"INFO: \n");
  4786. fprintf(stdout,"INFO: Pitch data is written to textfile as frequency values.\n");
  4787. break;
  4788. case(RRRR_EXTEND):
  4789. fprintf(stdout,"INFO: EXTEND ITERATIVE SOUNDS.\n");
  4790. fprintf(stdout,"INFO: \n");
  4791. fprintf(stdout,"INFO: ATTEMPT TO 'TIME-STRETCH' NATURAL ITERATIVE SOUNDS (LIKE ROLLED 'rrr' IN SPEECH) IN A PLAUSIBLE WAY.\n");
  4792. fprintf(stdout,"INFO: \n");
  4793. fprintf(stdout,"INFO: PARAMETERS IN MODE 1 ----------------------------------------------------\n");
  4794. fprintf(stdout,"INFO: \n");
  4795. fprintf(stdout,"INFO: START OF SECTION TO BE EXTENDED ................ time of start of the iterated material in the source.\n");
  4796. fprintf(stdout,"INFO: END OF SECTION TO BE EXTENDED ................... time of end of the iterated material in the source.\n");
  4797. fprintf(stdout,"INFO: ANTICIPATED NO OF SEGMENTS TO FIND IN SRC... Estimate how many iterations you hear in marked area.\n");
  4798. fprintf(stdout,"INFO: APPROX RANGE OF ITERATIVE SOUND (OCTAVES)\n");
  4799. fprintf(stdout,"INFO: A guesstimate of the pitch-range of the iteration\n");
  4800. fprintf(stdout,"INFO: This is the pitch range of the (low_frq) iteration, and NOT the resonant frequency.\n");
  4801. fprintf(stdout,"INFO: e.g. for a rolled 'rrr' it is the frq of the 'rrr' itself (even if unvoiced)\n");
  4802. fprintf(stdout,"INFO: and not the pitch of any sung note (if the 'rrr' is voiced).\n");
  4803. fprintf(stdout,"INFO: TIMESTRETCH OF SECTION ........................... How much to time-stretch the marked material.\n");
  4804. fprintf(stdout,"INFO: MAX ADJACENT OCCURENCES OF ANY SEG IN OUTPUT\n");
  4805. fprintf(stdout,"INFO: The iterated material is extended by reusing the individual segments in a randomised pattern.\n");
  4806. fprintf(stdout,"INFO: In this pattern, segment A may occur next to an identical copy of segment A, or not.\n");
  4807. fprintf(stdout,"INFO: This parameter specifies how many adjacent copies of any segment you are prepared to allow.\n");
  4808. fprintf(stdout,"INFO: AMPLITUDE SCATTER\n");
  4809. fprintf(stdout,"INFO: The iterated segments may vary in amplitude.\n");
  4810. fprintf(stdout,"INFO: 0 retains original amplitude: N produces random amplitudes between orig and (1-N) * orig.\n");
  4811. fprintf(stdout,"INFO: PITCH SCATTER\n");
  4812. fprintf(stdout,"INFO: The iterated segments may vary in pitch.\n");;
  4813. fprintf(stdout,"INFO: 0 retains original pitch: N produces random pitchshift between N and -N semitones.\n");
  4814. fprintf(stdout,"INFO: KEEP EXTENDED ITERATE ONLY....................... If flag is set, rest of file is not retained.\n");
  4815. fprintf(stdout,"INFO: \n");
  4816. fprintf(stdout,"INFO: PARAMETERS MODE 2 ----------------------------------------------------\n");
  4817. fprintf(stdout,"INFO: \n");
  4818. fprintf(stdout,"INFO: IN THIS MODE THE PROCESS ATTEMPTS TO LOCATE THE (FIRST) OCCURENCE OF THE ITERATIVE.\n");
  4819. fprintf(stdout,"INFO: \n");
  4820. fprintf(stdout,"INFO: Hence there is no 'START..' or 'END OF SECTION TO BE EXTENDED'\n");
  4821. fprintf(stdout,"INFO: and 'ANTICIPATED NO OF SEGMENTS TO FIND' is replaced by ...\n");
  4822. fprintf(stdout,"INFO: MINUMUM NO OF SEGMENTS TO FIND\n");
  4823. fprintf(stdout,"INFO: APPROX SIZE OF GRANULE_(MS) and\n");
  4824. fprintf(stdout,"INFO: GATE LEVEL BELOW WHICH SIGNAL ENVELOPE IGNORED\n");
  4825. fprintf(stdout,"INFO: \n");
  4826. fprintf(stdout,"INFO: You can also cause the time-stretched iterate to ritardando to a specified speed, using...\n");
  4827. fprintf(stdout,"INFO: TIME IN EXTENDED ITERATIVE BEFORE RITARNDO\n");
  4828. fprintf(stdout,"INFO: EVENT SEPARATION IN FULLY SLOWED ITERATIVE and\n");
  4829. fprintf(stdout,"INFO: TIME IN EXTENDED ITERATIVE WHERE RIT ENDS\n");
  4830. fprintf(stdout,"INFO: \n");
  4831. fprintf(stdout,"INFO: And.....\n");
  4832. fprintf(stdout,"INFO: NUMBER OF ITERATED ITEMS TO SKIP BEFORE USING ITEMS TO CREATE OUTPUT.\n");
  4833. fprintf(stdout,"INFO: allows you to play through first N iterate-items before using the ensuing material for time-extension.\n");
  4834. fprintf(stdout,"INFO: \n");
  4835. fprintf(stdout,"INFO: IN MODE 3 ----------------------------------------------------\n");
  4836. fprintf(stdout,"INFO: \n");
  4837. fprintf(stdout,"INFO: PROCESS EDITS THE SOUND INTO ITS START, THE ITERATE-UNITS AND THE END\n");
  4838. fprintf(stdout,"INFO: \n");
  4839. break;
  4840. case(SSSS_EXTEND):
  4841. fprintf(stdout,"INFO: FIND AND TIME-STRETCH (FIRST) NOISE COMPONENT IN A SOUND.\n");
  4842. fprintf(stdout,"INFO: \n");
  4843. fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
  4844. fprintf(stdout,"INFO: \n");
  4845. fprintf(stdout,"INFO: OUTPUT DURATION............................. Duration of output file.\n");
  4846. fprintf(stdout,"INFO: MIN FRQ (HZ) JUDGED TO REPRESENT NOISE ..... Lowest signal 'frequency' (Hz) viewed as noise.\n");
  4847. fprintf(stdout,"INFO: MINIMUM NOISE DURATION (MS)................. Minimum acceptable duration of usable block of noise in source signal.\n");
  4848. fprintf(stdout,"INFO: MAXIMUM NOISE DURATION (SECS)............... Maximum acceptable duration of usable block of noise in source signal.\n");
  4849. fprintf(stdout,"INFO: KEEP EXTENDED NOISE ONLY.................... Kepp ONLY the extended noise: Otherwise, keep whole src with extended noise.\n");
  4850. break;
  4851. case(HOUSE_GATE2):
  4852. fprintf(stdout,"INFO: SUPPRESS GLITCHES\n");
  4853. fprintf(stdout,"INFO: \n");
  4854. fprintf(stdout,"INFO: THIS PROGRAM ATTEMPTS TO CUT SHORT GLITCHES OUT OF SOUNDS.\n");
  4855. fprintf(stdout,"INFO: \n");
  4856. fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
  4857. fprintf(stdout,"INFO: \n");
  4858. fprintf(stdout,"INFO: MAX GLITCH DURATION (MS) .... maximum duration of event recognisable as a glitch.\n");
  4859. fprintf(stdout,"INFO: MIN GLITCH SEPARATION (MS) ...minimum time signal must fall below threshold on either side of glitch.\n");
  4860. fprintf(stdout,"INFO: GATING LEVEL AT GLITCH EDGE...maxmimum signal level at edges of glitch.\n");
  4861. fprintf(stdout,"INFO: SPLICE LENGTH (MS).............must be less than half the minimum glitch-separation.\n");
  4862. fprintf(stdout,"INFO: SEARCH WINDOW (MS).............size of window where average signal level is calculated.\n");
  4863. fprintf(stdout,"INFO: \n");
  4864. fprintf(stdout,"INFO: SEE DETAILS...................If selected,will list size and position of each (possible) glitch found.\n");
  4865. fprintf(stdout,"INFO: \n");
  4866. fprintf(stdout,"INFO: 1) Zero-length splices can be used if Gating-level is set to 0. In other cases they will produce clicks.\n");
  4867. fprintf(stdout,"INFO: 2) Use larger windows to remove larger features.\n");
  4868. fprintf(stdout,"INFO: 3) Very short windows may mistake parts of the waveform for 'silence' and also miss larger features.\n");
  4869. break;
  4870. case(GRAIN_ASSESS):
  4871. fprintf(stdout,"INFO: ASSESS GATE LEVEL TO RETRIEVE MAXIMUM NUMBER OF GRAINS IN A SOUND.\n");
  4872. fprintf(stdout,"INFO: \n");
  4873. break;
  4874. case(ZCROSS_RATIO):
  4875. fprintf(stdout,"INFO: FIND PROPORTION OF ZERO CROSSINGS IN FILE BETWEEN SPECIFIED TIMES.\n");
  4876. fprintf(stdout,"INFO: \n");
  4877. break;
  4878. case(GREV):
  4879. fprintf(stdout,"INFO: LOCATE AND MANIPULATE 'GRAINS', USING ENVELOPE TROUGHS AND ZERO-CROSSING.\n");
  4880. fprintf(stdout,"INFO: \n");
  4881. fprintf(stdout,"INFO: This process locates elements of a sound by searching for troughs in the envelope.\n");
  4882. fprintf(stdout,"INFO: It does not need a clear attack to recognise a 'grain' in a sound, and is\n");
  4883. fprintf(stdout,"INFO: more appropriate for e.g. separating syllables in speech.\n");
  4884. fprintf(stdout,"INFO: \n");
  4885. fprintf(stdout,"INFO: MODES ----------------------------------------------------\n");
  4886. fprintf(stdout,"INFO: \n");
  4887. fprintf(stdout,"INFO: REVERSE ....... Reverse the order of the (grouped) grains.\n");
  4888. fprintf(stdout,"INFO: REPEAT ......... Repeat each of the (grouped) grains.\n");
  4889. fprintf(stdout,"INFO: DELETE ......... Delete a proportion of the (grouped) grains.\n");
  4890. fprintf(stdout,"INFO: OMIT ............. Replace a proportion of the (grouped) grains with silence.\n");
  4891. fprintf(stdout,"INFO: TIME STRETCH .. Time stretch the output, without timestretching the grains.\n");
  4892. fprintf(stdout,"INFO: GET ..................... Get the times of the grains to a textfile.\n");
  4893. fprintf(stdout,"INFO: PUT ..................... Reposition grains at times suppied in textfile.\n");
  4894. fprintf(stdout,"INFO: \n");
  4895. fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
  4896. fprintf(stdout,"INFO: \n");
  4897. fprintf(stdout,"INFO: ENVELOPE WINDOW SIZE (MS) .... This determines vthe size of grains that might be found..\n");
  4898. fprintf(stdout,"INFO: DEPTH OF TROUGHS AS PROPORTION OF PEAK HEIGHT .... ee,g, with value .5, troughs between peaks\n");
  4899. fprintf(stdout,"INFO: which do not fall to half the peak-height, are ignored\n");
  4900. fprintf(stdout,"INFO: \n");
  4901. fprintf(stdout,"INFO: IN TIME STRETCH MODE -----------.\n");
  4902. fprintf(stdout,"INFO: \n");
  4903. fprintf(stdout,"INFO: ........ TIME STRETCH RATIO (which may be greater [slow down] or less [speed up] than 1, and may vary over time.\n");
  4904. fprintf(stdout,"INFO: \n");
  4905. fprintf(stdout,"INFO: IN ALL OTHER MODES -----------.\n");
  4906. fprintf(stdout,"INFO: \n");
  4907. fprintf(stdout,"INFO: ........ NO OF GRAINS GROUPED AS ONE UNIT ... operations are carried out on the unit,\n");
  4908. fprintf(stdout,"INFO: which might be single grains, and may vary over time\n");
  4909. fprintf(stdout,"INFO: \n");
  4910. fprintf(stdout,"INFO: IN DELETE & OMIT MODES -----------.\n");
  4911. fprintf(stdout,"INFO: \n");
  4912. fprintf(stdout,"INFO: NO OF UNITS TO KEEP | OUT OF ......... e.g. keep 3 out of 7\n");
  4913. fprintf(stdout,"INFO: \n");
  4914. fprintf(stdout,"INFO: IN REPEAT MODE -----------.\n");
  4915. fprintf(stdout,"INFO: \n");
  4916. fprintf(stdout,"INFO: NO OF UNIT REPETITIONS ............. Number of times each unit is repeated, which can vary over time.\n");
  4917. fprintf(stdout,"INFO: \n");
  4918. fprintf(stdout,"INFO: IN PUT MODE-----------.\n");
  4919. fprintf(stdout,"INFO: \n");
  4920. fprintf(stdout,"INFO: ........ GRAIN-TIMINGS is a textfile of the times where the grains are to be repositioned.\n");
  4921. fprintf(stdout,"INFO: \n");
  4922. break;
  4923. default:
  4924. fprintf(stdout,"ERROR: Unknown PROCESS\n");
  4925. fprintf(stdout,"INFO: \n");
  4926. break;
  4927. }
  4928. return 0;
  4929. }