| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941 |
- /*
- * Copyright (c) 1983-2013 Trevor Wishart and Composers Desktop Project Ltd
- * http://www.trevorwishart.co.uk
- * http://www.composersdesktop.com
- *
- This file is part of the CDP System.
- The CDP System is free software; you can redistribute it
- and/or modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- The CDP System is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with the CDP System; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA
- *
- */
- /*
- * SOUND LOOM Release 9: November 2: 2004
- */
- #include <stdio.h>
- #include <structures.h>
- #include <processno.h>
- #include <edit.h>
- #include <house.h>
- #include <string.h>
- #define TE_1 -1
- #define TE_2 -2
- #define TE_3 -3
- #define TE_4 -4
- #define TE_5 -5
- #define TE_6 -6
- #define TE_7 -7
- #define TE_8 -8
- #define TE_9 -9
- #define TE_10 -10
- #define TE_11 -11
- #define TE_12 -12
- #define TE_13 -13
- #define TE_14 -14
- #define TE_15 -15
- #define TE_16 -16
- #define TE_17 -17
- #define TE_18 -18
- #define TE_19 -19
- #define TE_20 -20
- #define TE_21 -21
- #define TE_22 -22
- #define TE_23 -23
- #define TE_24 -24
- #define TE_25 -25
- #define TE_26 -26
- #define TE_27 -27
- #define TE_28 -28
- #define TE_29 -29
- #define TE_30 -30
- #define TE_31 -31
- const char* cdp_version = "7.1.0";
- /******************************** TKUSAGE ********************************/
- int main(int argc, char *argv[])
- {
- int process;
- if(argc==2 && (strcmp(argv[1],"--version") == 0)) {
- fprintf(stdout,"%s\n",cdp_version);
- fflush(stdout);
- return 0;
- }
- if(argc!=2) {
- fprintf(stdout,"ERROR: Error in usage program tkusage\n");
- return -1;
- }
- if(sscanf(argv[1],"%d",&process)!=1) {
- fprintf(stdout,"ERROR: Failed to read process number in tkusage\n");
- return -1;
- }
- switch(process) {
- case(GAIN):
- fprintf(stdout,"INFO: AMPLIFY OR ATTENUATE THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GAIN may vary over time.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(LIMIT):
- fprintf(stdout,"INFO: ELIMINATE CHANNEL DATA BELOW A THRESHOLD AMP\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THRESHOLD AMPLITUDE may vary over time.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(BARE):
- fprintf(stdout,"INFO: ZERO THE DATA IN CHANNELS WHICH DO NOT CONTAIN HARMONICS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Process needs TWO INPUT FILES,\n");
- fprintf(stdout,"INFO: an Analysis File, and a Pitchfile you have derived from it.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The PITCHFILE should normally be extracted\n");
- fprintf(stdout,"INFO: using KEEP PITCH ZEROS flag to mark any unpitched material.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(CLEAN):
- fprintf(stdout,"INFO: REMOVE NOISE FROM PVOC ANALYSIS FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXTRA FILE REQUIRED-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In all MODES except BY COMPARISON METHOD, ONE extra input file required.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Extra file is an analysis file cut from the 1st infile\n");
- fprintf(stdout,"INFO: to show typical noise (only) component of main signal.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BY COMPARISON METHOD, TWO extra input files required.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Extra files are both analysis files cut from 1st infile\n");
- fprintf(stdout,"INFO: to show typical noise (1st) & typical good signal (2nd).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FROM SPECIFIED TIME\n");
- fprintf(stdout,"INFO: Deletes channel (after skiptime) FROM THE TIME its level falls below\n");
- fprintf(stdout,"INFO: (noisgain adjusted) max level seen for that channel in comparison file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ANYWHERE\n");
- fprintf(stdout,"INFO: Deletes channel (after skiptime) ANYWHERE its level falls below\n");
- fprintf(stdout,"INFO: (noisgain adjusted) max level seen for that channel in comparison file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ABOVE SPECIFED FRQ\n");
- fprintf(stdout,"INFO: Deletes channel as in 'ANYWHERE'\n");
- fprintf(stdout,"INFO: but ONLY for channels of frq > LOW FRQ LIMIT.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BY COMPARISON METHOD\n");
- fprintf(stdout,"INFO: Deletes channel EVERYWHERE, whose level in GFILE is ALWAYS below\n");
- fprintf(stdout,"INFO: (noisgain adjusted) max level seen for same channel in NFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SKIPTIME.......may be set to time where good src. signal level established.\n");
- fprintf(stdout,"INFO: NOISE PREGAIN..multiplies noiselevels found in comparison files\n");
- fprintf(stdout,"INFO: before they are used for comparison with main signal.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(CUT):
- fprintf(stdout,"INFO: CUT SECTION OUT OF ANALYSIS FILE, BETWEEN STARTTIME & ENDTIME (SECS)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAB):
- fprintf(stdout,"INFO: GRAB A SINGLE ANALYSIS WINDOW\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: at time FREEZE MOMENT.\n");
- fprintf(stdout,"INFO: A time beyond end of file will grab last window in file,\n");
- fprintf(stdout,"INFO: (window at time zero is always uninteresting).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MAGNIFY):
- fprintf(stdout,"INFO: MAGNIFY A SINGLE ANALYSIS WINDOW\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: at time FREEZE MOMENT, to duration OUTFILE DURATION.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(STRETCH):
- fprintf(stdout,"INFO: STRETCH THE FREQUENCIES IN THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FRQ DIVIDE...............frq above or below which stretching takes place.\n");
- fprintf(stdout,"INFO: TOP OF SPECTRUM STRETCH..transposition ratio for topmost spectral components.\n");
- fprintf(stdout,"INFO: STRETCH EXPONENT.........specifies the type of stretching required.\n");
- fprintf(stdout,"INFO: PROCESS DEPTH............controls effect on source (from no effect to full),\n");
- fprintf(stdout,"INFO: .........................0 gives no stretching, 1 gives full stretching.\n");
- fprintf(stdout,"INFO: .........................Use to change the stretching from moment to moment.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TSTRETCH):
- fprintf(stdout,"INFO: TIME-STRETCHING OF INFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: without changing the pitch.\n");
- fprintf(stdout,"INFO: In mode GET OUTPUT LENGTH, program calculates length of output, only.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ALT):
- fprintf(stdout,"INFO: DELETE ALTERNATE HARMONICS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Requires TWO INPUT FILES, an Analysis file and a Pitch data file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Additional pitchfile must be derived from input analysis file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Mode DELETE ODD HARMONICS\n");
- fprintf(stdout,"INFO: can produces octave up transposition with NO formant change.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(OCT):
- fprintf(stdout,"INFO: OCTAVE TRANSPOSE WITHOUT FORMANT SHIFT\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Requires TWO INPUT FILES, an Analysis file and a Pitch data file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Additional pitchfile must be derived from input analysis file.\n");
- fprintf(stdout,"INFO: TRANSPOSITION RATIO..is integer: 2 is an octave, 3 is a 12th etc.\n");
- fprintf(stdout,"INFO: as in the harmonic series.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SHIFTP):
- fprintf(stdout,"INFO: SHIFT PITCH OF (PART OF) SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FRQ DIVIDE...... is freq above or below which transposition takes place.\n");
- fprintf(stdout,"INFO: TRANSPOSITION....is transposition above or below FRQ DIVIDE.\n");
- fprintf(stdout,"INFO: TRANSPOSITION 1..is transposition above FRQ DIVIDE. (semitones)\n");
- fprintf(stdout,"INFO: TRANSPOSITION 2..is transposition below FRQ DIVIDE. (semitones)\n");
- fprintf(stdout,"INFO: DEPTH............is effect on source (from no effect to full)).\n");
- fprintf(stdout,"INFO: .................0 gives no shift, 1 gives full shift.\n");
- fprintf(stdout,"INFO: .................Use to change the shifting from moment to moment.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TUNE):
- fprintf(stdout,"INFO: REPLACE SPECTRAL FRQS BY HARMONICS OF SPECIFIED PITCH(ES)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Data required is a pitch, or a textfile containing pitches.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FOCUS..........degree of focusing of partial pitches onto template.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CLARITY........degree to which non-template partials are suppressed.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TRACE..........number of (window_by_window) most prominent channels\n");
- fprintf(stdout,"INFO: ...............to be replaced by template frqs. (default, all channels)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOW FRQ LIMIT..frqs below this are ignored.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(PICK):
- fprintf(stdout,"INFO: RETAIN ONLY CHANNELS WHICH MIGHT HOLD SPECIFIED PARTIALS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FUNDAMENTAL FRQ..of harmonic series, (or of calculation).\n");
- fprintf(stdout,"INFO: FRQ STEP.........Frequency step to be added to another frequency.\n");
- fprintf(stdout,"INFO: CLARITY..........extent to which data in other channels is suppressed.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(CHORD):
- fprintf(stdout,"INFO: TRANSPOSITIONS OF SPECTRUM SUPERIMPOSED WITHIN EXISTING SPECTRAL ENVELOPE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Data required is file of (possibly fractional) semitone transposition values.\n");
- fprintf(stdout,"INFO: BOTTOM FRQ..frqs below this are filtered out.\n");
- fprintf(stdout,"INFO: TOP FRQ.....frqs above this are filtered out.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MULTRANS):
- fprintf(stdout,"INFO: TRANSPOSED VERSIONS OF SPECTRUM SUPERIMPOSED ON ORIGINAL\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Data required is file of (possibly fractional) semitone transposition values.\n");
- fprintf(stdout,"INFO: BOTTOM FRQ..frqs below this are filtered out.\n");
- fprintf(stdout,"INFO: TOP FRQ.....frqs above this are filtered out.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FILT):
- fprintf(stdout,"INFO: FILTER THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FILTER EDGE(S) WIDTH.....is the width of filter skirts, in Hz.\n");
- fprintf(stdout,"INFO: GAIN..is overall amplification of resulting sound.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GREQ):
- fprintf(stdout,"INFO: GRAPHIC EQ ON SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STANDARD BANDWIDTH\n");
- fprintf(stdout,"INFO: ....Data file has ONE bandwidth (octaves)\n");
- fprintf(stdout,"INFO: ....followed by centre frqs of all filter bands (Hz).\n");
- fprintf(stdout,"INFO: VARIOUS BANDWIDTHS\n");
- fprintf(stdout,"INFO: ....Data file has a pair of values for EVERY filter band,\n");
- fprintf(stdout,"INFO: ....representing centre frq of the band (Hz) followed by bandwidth (octaves).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SPLIT):
- fprintf(stdout,"INFO: SPLIT SPECTRUM INTO BANDS & PROCESS THESE INDIVIDUALLY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a textfile of lines each with the following data..\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: lofrq hifrq bitflag [amp1 amp2 [+]transpose]\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOFRQ and HIFRQ define the limits of a frequency band in the spectrum\n");
- fprintf(stdout,"INFO: which you wish to modify.\n");
- fprintf(stdout,"INFO: These bands should NOT OVERLAP one another.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BITFLAG has 4 bits (e.g. '0101' or '1000')\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If bit 1 (on the left) is set: There is an amplitude change to the whole band.\n");
- fprintf(stdout,"INFO: Put an amplitude multiplier ('amp1') in the line.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If bit 2 is set: The amplitude of the band ramps from amp1 to amp2.\n");
- fprintf(stdout,"INFO: Put the start and end amplitude multipliers ('amp1' and 'amp2') in the line.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If bit 3 is set: The band is transposed, or shifted.\n");
- fprintf(stdout,"INFO: To transpose, put a frequency multiplier ('transpose') in the line,\n");
- fprintf(stdout,"INFO: To shift, put in a frequency shift value in Hz, BUT precede it with a '+' sign.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If bit 4 (on the right) is set: the transposed partials are ADDED to the original spectrum.\n");
- fprintf(stdout,"INFO: (Normally they will REPLACE the originals.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 'amp1', 'amp2' &/or 'transpose' MUST be present, where required by the preceding bitflag.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ARPE):
- fprintf(stdout,"INFO: ARPEGGIATE THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES--------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ON...........Play components inside arpeggiated band ONLY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BOOST........Amplify snds in band. Others play unamplified.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BELOW_BOOST..INITIALLY Play components in & below band ONLY.\n");
- fprintf(stdout,"INFO: .............THEN amplify snds in band. Others play unamplified.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ABOVE_BOOST..INITIALLY Play components in & above band ONLY.\n");
- fprintf(stdout,"INFO: .............THEN amplify snds in band. Others play unamplified.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BELOW........Play components in & below arpeggiated band ONLY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ABOVE........Play components in & above arpeggiated band ONLY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ONCE_BELOW...INITIALLY Play components in and below band ONLY.\n");
- fprintf(stdout,"INFO: .............THEN play whole sound as normal.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ONCE_ABOVE...INITIALLY Play components in and above arpeggiated band ONLY.\n");
- fprintf(stdout,"INFO: .............THEN play whole sound as normal.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: WAVETYPE..............1=downramp : 2=sin : 3=saw : 4=upramp\n");
- fprintf(stdout,"INFO: RATE OF SWEEP.........arpeggio sweeps per second.\n");
- fprintf(stdout,"INFO: START PHASE...........start_phase of arpeggio sweep.\n");
- fprintf(stdout,"INFO: LOFRQ LIMIT...........lowest freq arpeg sweeps down to.\n");
- fprintf(stdout,"INFO: HIFRQ LIMIT...........highest freq arpeg sweeps up to.\n");
- fprintf(stdout,"INFO: BANDWIDTH.............bandwidth of sweep band (in Hz).\n");
- fprintf(stdout,"INFO: AMPLIFICATION.........amplification of arpegiated components.\n");
- fprintf(stdout,"INFO: NONLINEAR DECAY.......Nonlinear decay of arpegtones. >1 faster, <1 slower.\n");
- fprintf(stdout,"INFO: SUSTAIN WINDOWS.......Number of windows over which arpegtones sustained.\n");
- fprintf(stdout,"INFO: TRACK FRQ CHANGE.... .Amplified tones track changing frq of src.\n");
- fprintf(stdout,"INFO: SUSTAINS RUN TO ZERO..Amplified tones allowed to decay to zero\n");
- fprintf(stdout,"INFO: ......................before new arpegtone attack initiated\n");
- fprintf(stdout,"INFO: ......................(Default: Re-attack once decayed below input level)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(PLUCK):
- fprintf(stdout,"INFO: EMPHASISE SPECTRAL CHANGES (use e.g. with HILITE ARPEG)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GAIN...amplitude gain applied to newly prominent spectral components.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(S_TRACE):
- fprintf(stdout,"INFO: RETAIN THE N LOUDEST PARTIALS ONLY (ON A WINDOW-BY-WINDOW BASIS)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(BLTR):
- fprintf(stdout,"INFO: TIME-AVERAGE, AND TRACE, THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BLURRING FACTOR..is number of windows over which to average the spectrum.\n");
- fprintf(stdout,"INFO: TRACING INDEX....is number of (loudest) channels to retain, in each window.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ACCU):
- fprintf(stdout,"INFO: SUSTAIN EACH SPECTRAL BAND, UNTIL LOUDER DATA APPEARS IN THAT BAND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DECAY RATE....sutained channel data decays by DECAYRATE per sec.\n");
- fprintf(stdout,"INFO: GLISS RATE....sutained channel data glisses at GLISRATE 8vas per sec.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(EXAG):
- fprintf(stdout,"INFO: EXAGGERATE SPECTRAL CONTOUR\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXAGGERATION >0 will widen troughs: <0 will widen peaks.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FOCUS):
- fprintf(stdout,"INFO: FOCUS SPECTRAL ENERGY ONTO PEAKS IN SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FILTER BANDWIDTH.........bandwidth of peak-centred filters, in octaves.\n");
- fprintf(stdout,"INFO: BOTTOM FRQ...............is bottom frequency to start peak search.\n");
- fprintf(stdout,"INFO: TOP FRQ..................is frequency to end peak search.\n");
- fprintf(stdout,"INFO: WINDOWCNT FOR STABILITY..Number of windows over which to scan for peak stability.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FOLD):
- fprintf(stdout,"INFO: OCTAVE-TRANSPOSE SPECTRAL COMPONENTS INTO SPECIFIED RANGE\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FREEZE):
- fprintf(stdout,"INFO: FREEZE SPECTRAL CHARACTERISTICS IN SOUND, AT GIVEN TIMES \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Requied data is a textfile of times at which spectrum is frozen.\n");
- fprintf(stdout,"INFO: These times may be preceded by character MARKERS....\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 'a' meaning, use this window as freezewindow for AFTER this time.\n");
- fprintf(stdout,"INFO: 'b' meaning, use this window as freezewindow for BEFORE this time.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Otherwise, times are end-or-start of a freeze thus established.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FREEZE2):
- fprintf(stdout,"INFO: HOLD SOUND SPECTRUM, AT GIVEN TIMES \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Datafile contains times at which spectrum is held, & hold-duration.\n");
- fprintf(stdout,"INFO: These data items must be paired correctly.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(STEP):
- fprintf(stdout,"INFO: STEP-FRAME THROUGH SOUND BY FREEZING SPECTRUM AT REGULAR TIME INTERVALS\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(AVRG):
- fprintf(stdout,"INFO: AVERAGE SPECTRAL ENERGY OVER N ADJACENT CHANNELS\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(BLUR):
- fprintf(stdout,"INFO: TIME-AVERAGE THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BLURRING FACTOR is number of windows over which to average spectrum.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SUPR):
- fprintf(stdout,"INFO: SUPPRESS THE N LOUDEST PARTIALS (ON A WINDOW-BY-WINDOW BASIS)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(CHORUS):
- fprintf(stdout,"INFO: CHORUSING BY RANDOMISING AMPLITUDES AND/OR FREQUENCIES OF PARTIALS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: AMP SPREAD is maximum random scatter of partial-amps.\n");
- fprintf(stdout,"INFO: FRQ SPREAD is maximum random scatter of partial-frqs.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DRUNK):
- fprintf(stdout,"INFO: MODIFY SOUND BY DRUNKEN WALK ALONG ANALYSIS WINDOWS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RANGE IN WINDOWS...is maximum step (in windows) for drunken walk.\n");
- fprintf(stdout,"INFO: STARTTIME IN FILE..is time (in secs) in file to begin walk.\n");
- fprintf(stdout,"INFO: OUTFILE DURATION...is required duration of outfile.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SHUFFLE):
- fprintf(stdout,"INFO: SHUFFLE ORDER OF ANALYSIS WINDOWS IN FILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is 2 strings of letters, separated by a '-' or ':'\n");
- fprintf(stdout,"INFO: The first string is the DOMAIN, and the 2nd, the IMAGE.\n");
- fprintf(stdout,"INFO: e.g. 'abc-abbabcc'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DOMAIN.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Letters represent group of consecutive inputfile analysis_windows.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: e.g. 'abcd'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IMAGE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Any permutation of, or selection from, the domain letters.\n");
- fprintf(stdout,"INFO: (domain letters may be omitted or repeated in the image string).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: e.g. 'aaaaaaadaaa'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Inputfile windows are shuffled according to this same mapping.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GROUPSIZE Windows may be grouped in sets of GROUPSIZE\n");
- fprintf(stdout,"INFO: ..........before being shuffled (as groups), and in this case\n");
- fprintf(stdout,"INFO: ..........each domain-letter represents a group of GROUPSIZE windows.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(WEAVE):
- fprintf(stdout,"INFO: MODIFY SOUND BY WEAVING AMONGST ANALYSIS WINDOWS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Special data file contains a list of integers\n");
- fprintf(stdout,"INFO: which define successive steps (in windows) through the input file.\n");
- fprintf(stdout,"INFO: Steps may be forward or backwards.\n" );
- fprintf(stdout,"INFO: The step sequence is repeated until end of infile is reached.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Weave must obey the following rules....\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RULE 1: NO step can exceed a certain limit value\n");
- fprintf(stdout,"INFO: RULE 2: NO window reached in a weave can be BEFORE startwindow of weave.\n");
- fprintf(stdout,"INFO: RULE 3: FINAL window must be AFTER the weave startwindow.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Otherwise, weave may be forward or backward, or remain at same window.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(NOISE):
- fprintf(stdout,"INFO: PUT NOISE IN THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SCAT):
- fprintf(stdout,"INFO: RANDOMLY THIN OUT THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FRQ-BLOCKS TO KEEP....Number of (randomly-chosen) blocks to keep, per window.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FRQ RANGE OF BLOCK....(Rounded internally to a multiple of channel width).\n");
- fprintf(stdout,"INFO: ......................(default is width of 1 analysis channel).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: KEEP RANDOM SET ONLY..Number of blocks actually kept randomised\n");
- fprintf(stdout,"INFO: ......................between 1 & FRQ-BLOCKS TO KEEP.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SPREAD):
- fprintf(stdout,"INFO: SPREAD PEAKS OF SPECTRUM, INTRODUCING CONTROLLED NOISINESS\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SHIFT):
- fprintf(stdout,"INFO: LINEAR FREQUENCY SHIFT OF (PART OF) THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FRQ DIVIDE...............frq at which shifting starts or stops.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOW FRQ & HIGH FRQ.......define range inside or outside which shift takes place.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOG INTERP CHANGING FRQ..useful only if any input params are time-varying,\n");
- fprintf(stdout,"INFO:..........................and frqshift vals are all +ve, or all -ve.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GLIS):
- fprintf(stdout,"INFO: CREATE GLISSANDI INSIDE THE (CHANGING) SPECTRAL ENVELOPE OF ORIGINAL SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GLISS RATE.......in semitones per second (-ve val for downward gliss).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARTIAL SPACING..in Hz for partials in inharmonic glide.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: HIGH FRQ LIMIT...is top of spectrum.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(WAVER):
- fprintf(stdout,"INFO: OSCILLATE BETWEEN HARMONIC AND INHARMONIC STATE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX SPECTRAL STRETCH..is max spectral stretch in inharmonic state.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXPONENT..............defines type of stretch in inharmonic state.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INVERT):
- fprintf(stdout,"INFO: INVERT THE SPECTRUM\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GLIDE):
- fprintf(stdout,"INFO: INTERPOLATE, LINEARLY, BETWEEN 2 SINGLE ANALYSIS WINDOWS\n");
- fprintf(stdout,"INFO: EXTRACTED WITH spec grab.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(BRIDGE):
- fprintf(stdout,"INFO: MAKE A BRIDGING-INTERPOLATION BETWEEN TWO SOUND SPECTRA\n");
- fprintf(stdout,"INFO: BY INTERPOLATING BETWEEN 2 TIME-SPECIFIED WINDOWS IN THE 2 INFILES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2ND FILE OFFSET......time infile2 starts, relative to start of file1.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FRQ INTERP AT START..fraction of 2nd sound's frq interpolated at START.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: AMP INTERP AT START..fraction of 2nd sound's amp interpolated at START.\n");
- fprintf(stdout,"INFO: .....................If an OFFSET is used, when these interps NOT set to zero,\n");
- fprintf(stdout,"INFO: .....................outsound starts from point where 2nd sound enters.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FRQ INTERP AT END....fraction of 2nd sound's frq interpolated at END.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: AMP INTERP AT END....fraction of 2nd sound's amp interpolated at END.\n");
- fprintf(stdout,"INFO: .....................if these are set < 1.0\n");
- fprintf(stdout,"INFO: .....................outsound ends at end of 1st sound to end.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STARTTIME IN FILE1.. of window where interpolation begins.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENDTIME IN FILE1.... of window where interpolation ends.\n");
- fprintf(stdout,"INFO: .....................if START and END are not specified\n");
- fprintf(stdout,"INFO: .....................interp runs from OFFSET to end of 1st file to end.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MORPH):
- fprintf(stdout,"INFO: MORPH ONE SPECTRUM INTO ANOTHER.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: -------------------------------------------------------\n");
- fprintf(stdout,"INFO: MODES..\n");
- fprintf(stdout,"INFO: (1) interpolate LINEARLY (exponent 1)\n");
- fprintf(stdout,"INFO: or over a curve of increasing (exp >1) or decreasing (exp <1) slope.\n");
- fprintf(stdout,"INFO: (2) interpolate over a COSINUSOIDAL spline.\n");
- fprintf(stdout,"INFO: -------------------------------------------------------\n");
- fprintf(stdout,"INFO: PARAMETERS..\n");
- fprintf(stdout,"INFO: Start and End times for Interpolation of Channel Frequencies.\n");
- fprintf(stdout,"INFO: Start and End times for Interpolation of Channel Amplitudes.\n");
- fprintf(stdout,"INFO: Exponents of the Interpolations (see above).\n");
- fprintf(stdout,"INFO: (In COSIN mode, these skew the cosinusional interpolation).\n");
- fprintf(stdout,"INFO: 2nd FILE ENTRY TIME is time-delay of entry of 2nd file.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(PITCH):
- fprintf(stdout,"INFO: ATTEMPT TO EXTRACT PITCH FROM SPECTRAL DATA.\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1st OUTPUTFILE, if resynthesized, produces tone at detected pitch.\n");
- fprintf(stdout,"INFO: 2nd OUTPUTFILE contains the extracted pitch data.\n");
- fprintf(stdout,"INFO: In mode TO BINARY FILE this is a binary output file.\n");
- fprintf(stdout,"INFO: In mode TO TEXTFILE this is a brkpnt text file of time/pitch pairs.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN-TUNE RANGE................ range within which harmonics accepted as in tune.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN WINDOWS TO CONFIRM PITCH..minimum number of adjacent windows that must be\n");
- fprintf(stdout,"INFO: ..............................pitched, for pitch-value to be registered.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SIGNAL TO NOISE RATIO........ in decibels.\n");
- fprintf(stdout,"INFO: ..............................Windows more than this below the maximum level\n");
- fprintf(stdout,"INFO: ..............................in the sound, are assumed to be noise,\n");
- fprintf(stdout,"INFO: ..............................& any detected pitch is assumed spurious.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: VALID HARMONICS COUNT........ how many of loudest peaks in spectrum must be\n");
- fprintf(stdout,"INFO: ..............................harmonics to confirm sound is pitched.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOW PITCH LIMIT.............. frequency of LOWEST acceptable pitch.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: HIGH PITCH LIMIT..............frequency of HIGHEST acceptable pitch.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DATAREDUCTION................ acceptable pitch-ratio error in data reduction.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_APPROX):
- fprintf(stdout,"INFO: MAKE AN APPROXIMATE COPY OF A PITCHFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCH SCATTER RANGE...Interval over which pitch +- randomly varies from orig.\n");
- fprintf(stdout,"INFO: TIME SCATTER RANGE....Time-interval by which pitchval can stray from orig time.\n");
- fprintf(stdout,"INFO: CONTOUR SCAN RANGE....Time-interval over which pitch contour scanned.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_EXAG):
- fprintf(stdout,"INFO: EXAGGERATE PITCH CONTOUR OF A PITCH DATA FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MEANPITCH...........pitch around which intervals stretched.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_INVERT):
- fprintf(stdout,"INFO: INVERT PITCH CONTOUR OF A PITCH DATA FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is either '0' (if no mapping is required)\n");
- fprintf(stdout,"INFO: or a a textfile of paired values showing how intervals\n");
- fprintf(stdout,"INFO: (in, possibly fractional, semitones) are to be mapped\n");
- fprintf(stdout,"INFO: onto their inversions.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INVERSION CENTRE...pitch around which pitchline inverted.\n");
- fprintf(stdout,"INFO: LOW PITCH LIMIT....lowest pitch permissible.\n");
- fprintf(stdout,"INFO: HIGH PITCH LIMIT...highest pitch permissible.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_QUANTISE):
- fprintf(stdout,"INFO: QUANTISE PITCHES IN A PITCH DATA FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a textfile of (possibly fractional) MIDI pitchvals\n");
- fprintf(stdout,"INFO: over which pitch to be quantised.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DUPLICATE Q-SET IN ALL OCTAVES\n");
- fprintf(stdout,"INFO: ....causes entered pitches to be duplicated in all 8vas,\n");
- fprintf(stdout,"INFO: ....to generate actual quantisation set used.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_RANDOMISE):
- fprintf(stdout,"INFO: RANDOMISE PITCH LINE IN A PITCH DATA FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX INTERVAL OF STRAY..(semitones) is interval over which pitches can +- randomvary.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIMESTEP...............is max timestep between random pitch fluctuations.\n");
- fprintf(stdout,"INFO:........................Actual timesteps are random values less than this.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RANGE SLEW.............e.g. 2: upward variation range twice that of downward.\n");
- fprintf(stdout,"INFO: .......................e.g -3: downward variation range 3 times that of upward.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_SMOOTH):
- fprintf(stdout,"INFO: SMOOTH PITCH CONTOUR IN A PITCH DATA FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIMEFRAME..over which to interpolate pitch values.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MEANPITCH..is pitch from which peaks measured for interpolation\n");
- fprintf(stdout,"INFO: ...........between PEAK value in each timeframe block of pitch values.\n");
- fprintf(stdout,"INFO: ...........(and must be within pitch range, in every timeframe block).\n");
- fprintf(stdout,"INFO: ...........Peak is maximum displacement from mean (up or down).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_SYNTH):
- fprintf(stdout,"INFO: SYNTHESIZE SPECTRUM OF A SOUND FOLLOWING PITCH IN INPUT PITCHFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARTIAL LEVELS......level of each partial, in turn, starting from 1st.\n");
- fprintf(stdout,"INFO: Use as many or as few partials as required.\n");
- fprintf(stdout,"INFO: Levels must lie beween 0 and 1.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_GEN):
- fprintf(stdout,"INFO: CREATE A BINARY PITCHDATA FILE FROM INFORMATION IN A TEXTFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCH DATA......A file of pitch values and associated times, as time-value pairs.\n");
- fprintf(stdout,"INFO: ......................These may be note names (A-G), possibly followed by '#'(sharp) or 'b' (flat),\n");
- fprintf(stdout,"INFO: ......................all followed by an octave value (where 0 is octave starting at middle C).\n");
- fprintf(stdout,"INFO: ......................ALTERNATIVELY these may be numeric MIDI values (possibly fractional).\n");
- fprintf(stdout,"INFO: SAMPLE RATE OF GOAL SNDFILE.\n");
- fprintf(stdout,"INFO: ......................Typical use would be to generate a synthesized vowel stream,\n");
- fprintf(stdout,"INFO: ......................and this parameter specifies the sample rate of the output SOUND\n");
- fprintf(stdout,"INFO: ......................of any such subsequent process.\n");
- fprintf(stdout,"INFO: ANALYSIS POINTS.......(2-32768 (power of 2)): default 1024\n");
- fprintf(stdout,"INFO: ......................More points give better freq resolution\n");
- fprintf(stdout,"INFO: ......................but worse time-resolution (e.g. rapidly changing spectrum).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OVERLAP...............Filter overlap factor (1-4): default 3\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_INTERP):
- fprintf(stdout,"INFO: REMOVE UNPITCHED OR SILENT WINDOWS, BY INTERPOLATING BETWEEN EXISTING PITCHES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) GLIDE ............ interpolated pitch moves smoothly from pitch\n");
- fprintf(stdout,"INFO: ..................... before noise-or-silence to pitch after it.\n");
- fprintf(stdout,"INFO: 1) SUSTAIN........... pitch before noise-or-silence is sustained\n");
- fprintf(stdout,"INFO: ..................... until a new pitch occurs.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_VOWELS):
- fprintf(stdout,"INFO: SYNTHESIZE (POSSIBLY CHANGING) VOWEL SPECTRUM OF SOUND FOLLOWING PITCHFILE PITCH.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: VOWELS......file containing paired times and vowels, where vowels can be....\n");
- fprintf(stdout,"INFO: ee as in 'heat' i as in 'hit' e as in 'pet' ai as in 'hate'\n");
- fprintf(stdout,"INFO: a as in 'pat' ar as in 'heart' o as in 'hot' or as in 'taught'\n");
- fprintf(stdout,"INFO: oa as in 'boat' u as in 'hood' oo as in 'mood'\n");
- fprintf(stdout,"INFO: xx as in Southern English 'hub'\n");
- fprintf(stdout,"INFO: x neutral vowel as in 'herb' or 'the'\n");
- fprintf(stdout,"INFO: aii as in Scottish educAted uu as in Scottish edUcated ui as in Scottish cOUld\n");
- fprintf(stdout,"INFO: n as in 'Now' m as in 'Make' r as in 'Raw' th as in 'THe'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Times must start at zero, and increase.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FORMANT HALF-WIDTH ........half-width of formant peaks, in Hz, as a fraction of formant centre-frq.\n");
- fprintf(stdout,"INFO: FORMANT PEAK STEEPNESS ....is steepness of the formant peaks.\n");
- fprintf(stdout,"INFO: FORMANT PEAK RANGE ........is the ratio of (max) peak range to (max) total range.\n");
- fprintf(stdout,"INFO: EMPHASIS ON FUNDAMENTAL ...is (relative) amplitude of fundamental, if it falls outside a formant.\n");
- fprintf(stdout,"INFO: HOARSENESS .........is extent of (random) variation of partial frqs from frequency of true harmonics.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(VFILT):
- fprintf(stdout,"INFO: IMPOSE (POSSIBLY CHANGING) VOWEL SPECTRUM ON A SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: VOWELS......file containing paired times and vowels, where vowels can be....\n");
- fprintf(stdout,"INFO: ee as in 'heat' i as in 'hit' e as in 'pet' ai as in 'hate'\n");
- fprintf(stdout,"INFO: a as in 'pat' ar as in 'heart' o as in 'hot' or as in 'taught'\n");
- fprintf(stdout,"INFO: oa as in 'boat' u as in 'hood' oo as in 'mood'\n");
- fprintf(stdout,"INFO: xx as in Southern English 'hub'\n");
- fprintf(stdout,"INFO: x neutral vowel as in 'herb' or 'the'\n");
- fprintf(stdout,"INFO: aii as in Scottish educAted uu as in Scottish edUcated ui as in Scottish cOUld\n");
- fprintf(stdout,"INFO: n as in 'Now' m as in 'Make' r as in 'Raw' th as in 'THe'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Times must start at zero, and increase.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FORMANT HALF-WIDTH .......half-width of formant peaks, in Hz, as a fraction of formant centre-frq.\n");
- fprintf(stdout,"INFO: FORMANT PEAK STEEPNESS ...is steepness of the formant peaks.\n");
- fprintf(stdout,"INFO: FORMANT PEAK RANGE .......is the ratio of (max) peak range to (max) total range.\n");
- fprintf(stdout,"INFO: THRESHOLD ................spectral window only affected if its level exceeds a proportion of vowel envelope level for window\n");
- fprintf(stdout,"INFO: ..........................Threshold is this proportion.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_INSERT):
- fprintf(stdout,"INFO: MARK AS UNPITCHED THOSE WINDOWS IN BINARY PITCHFILE BETWEEN GIVEN TIME-PAIRS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INSERTION TIMEPAIRS.......Times between which data is marked as unpitched.\n");
- fprintf(stdout,"INFO: Time can be given in seconds, or as sample-cnt in the corresponding soundfile.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_SINSERT):
- fprintf(stdout,"INFO: MARK AS SILENT THOSE WINDOWS IN BINARY PITCHFILE BETWEEN GIVEN TIME-PAIRS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INSERTION TIMEPAIRS.......Times between which data is marked as silent.\n");
- fprintf(stdout,"INFO: Time can be given in seconds, or as sample-cnt in the corresponding soundfile.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_PTOSIL):
- fprintf(stdout,"INFO: IN A BINARY PITCHFILE, CONVERT ALL PITCHED WINDOWS TO SILENCE.\n");
- break;
- case(P_NTOSIL):
- fprintf(stdout,"INFO: IN A BINARY PITCHFILE, CONVERT ALL UNPITCHED WINDOWS TO SILENCE.\n");
- break;
- case(ANALENV):
- fprintf(stdout,"INFO: EXTRACT THE WINDOW-LOUDNESS ENVELOPE OF AN ANALYSIS FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Extract the total loudness of each window\n");
- fprintf(stdout,"INFO: in format compatible with pitch or formant data taken from same analysis file.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MAKE2):
- fprintf(stdout,"INFO: GENERATE SPECTRUM FROM PITCH, FORMANT AMD ENVELOPE DATA.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: outfile is analysis file which must be resynthesized to hear.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_TRANSPOSE):
- fprintf(stdout,"INFO: TRANSPOSES PITCHES IN PITCHDATA FILE BY CONSTANT NO OF SEMITONES.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_VIBRATO):
- fprintf(stdout,"INFO: ADD VIBRATO TO PITCH IN A PITCH DATA FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: VIBRATO FRQ....frequency of vibrato itself (Hz).\n");
- fprintf(stdout,"INFO: VIBRATO RANGE..max interval vibrato moves from central pitch.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_CUT):
- fprintf(stdout,"INFO: CUT OUT AND KEEP A SEGMENT OF A BINARY PITCH-DATAFILE.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_FIX):
- fprintf(stdout,"INFO: MASSAGE PITCH DATA IN A BINARY PITCHFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If NOT in Instrument-Create or Bulk-Process mode,\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: This is a GRAPHIC EDITOR FOR PITCH DATA.\n");
- fprintf(stdout,"INFO: and HELP is provided on the window which appears.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OTHERWISE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Pitchdata should first be viewed with PITCH VIEW (PITCH INFO menu)....\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THEN THE FOLLOWING RULES SHOULD BE OBSERVED.........\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: (1)\n");
- fprintf(stdout,"INFO: When pitches are removed they are replaced by a 'no-pitch' indicator.\n");
- fprintf(stdout,"INFO: These (and any already existing unpitched windows in the file) can be\n");
- fprintf(stdout,"INFO: converted to pitch-data (by interpolation between adjacent pitches)\n");
- fprintf(stdout,"INFO: using the INTERPOLATE flag.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: (2)\n");
- fprintf(stdout,"INFO: With multiple flags, ORDER of operations inside program is....\n");
- fprintf(stdout,"INFO: REMOVE-TIMEWISE, REMOVE-FRQWISE, SMOOTH, FORCE-ENDVALS, INTERP\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(REPITCH):
- fprintf(stdout,"INFO: GENERATE TRANSPOSITION DATA FROM 2 SETS OF PITCH DATA,\n" );
- fprintf(stdout,"INFO: OR TRANSPOSE PITCH DATA WITH TRANSPOSITION DATA,\n" );
- fprintf(stdout,"INFO: OR COMBINE 2 SETS OF TRANSPOSITION DATA TO FORM NEW TRANSPOSITION DATA,\n");
- fprintf(stdout,"INFO: PRODUCING BINARY DATAFILE OUTPUT.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Input files may be binary files, or text brkpnt files BUT...\n");
- fprintf(stdout,"INFO: It's IMPOSSIBLE to generate binary outfile from exclusively brkpnt infiles.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(REPITCHB):
- fprintf(stdout,"INFO: GENERATE TRANSPOSITION DATA FROM 2 SETS OF PITCH DATA,\n" );
- fprintf(stdout,"INFO: OR TRANSPOSE PITCH DATA WITH TRANSPOSITION DATA,\n" );
- fprintf(stdout,"INFO: OR COMBINE 2 SETS OF TRANSPOSITION DATA TO FORM NEW TRANSPOSITION DATA,\n");
- fprintf(stdout,"INFO: PRODUCING A TIME/VAL BRKPNT TEXTFILE OUTPUT.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Input files may be binary files, or text brkpnt files.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DATAREDUCTION..is acceptable pitch error in brkpntfile data-reduction.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TRNSF):
- fprintf(stdout,"INFO: TRANSPOSE SPECTRUM : BUT RETAIN ORIGINAL SPECTRAL ENVELOPE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODE names refer to the type of data which is to be used.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MINFRQ...minimum frq, below which data is filtered out.\n");
- fprintf(stdout,"INFO: MAXFRQ...maximum frq, above which data is filtered out.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TRNSP):
- fprintf(stdout,"INFO: TRANSPOSE SPECTRUM (SPECTRAL ENVELOPE ALSO MOVES)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODE names refer to the type of data which is to be used.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MINFRQ...minimum frq, below which data is filtered out.\n");
- fprintf(stdout,"INFO: MAXFRQ...maximum frq, above which data is filtered out.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FORMANTS):
- fprintf(stdout,"INFO: EXTRACT EVOLVING FORMANT ENVELOPE FROM AN ANALYSIS FILE.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FORM):
- fprintf(stdout,"INFO: IMPOSE SPECTRAL ENVELOPE IN A FORMANTFILE\n");
- fprintf(stdout,"INFO: ON SPECTRUM IN AN ANALYSIS FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: REPLACE FORMANTS......New formants REPLACE existing formant envelope.\n");
- fprintf(stdout,"INFO: SUPERIMPOSE FORMANTS..New formants IMPOSED ON TOP OF existing formants.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOW FRQ LIMIT...frq, below which spectrum is set to zero.\n");
- fprintf(stdout,"INFO: HIGH FRQ LIMIT..frq, above which spectrum is set to zero.\n");
- fprintf(stdout,"INFO: GAIN............adjustment to spectrum loudness (normally < 1.0).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(VOCODE):
- fprintf(stdout,"INFO: IMPOSE SPECTRAL ENVELOPE OF 2nd SOUND, ON 1st SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOW FRQ LIMIT...frq below which data is filtered out.\n");
- fprintf(stdout,"INFO: HIGH FRQ LIMIT..frq above which data is filtered out.\n");
- fprintf(stdout,"INFO: GAIN............adjustment to output level (normally < 1.0).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FMNTSEE):
- fprintf(stdout,"INFO: CONVERT FORMANT DATA IN A BINARY FORMANTDATA FILE TO 'SNDFILE' FOR VIEWING.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The resulting logarithmically scaled display indicates formant shapes,\n");
- fprintf(stdout,"INFO: but NOT the absolute amplitude values.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DISPLAY FORMANTBAND DATA....displays information about formant banding used.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: WARNING: DO NOT ATTEMPT TO PLAY THE RESULTING 'SOUNDFILE'\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FORMSEE):
- fprintf(stdout,"INFO: EXTRACT FORMANTS FROM ANALFILE AND WRITE AS 'SNDFILE' FOR VIEWING.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The resulting logarithmically scaled display indicates formant shapes,\n");
- fprintf(stdout,"INFO: but NOT the absolute amplitude values.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DISPLAY IN SEMITONE BANDS does just that (Default: equal hz bands).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: WARNING: DO NOT ATTEMPT TO PLAY THE RESULTING 'SOUNDFILE'\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MAKE):
- fprintf(stdout,"INFO: GENERATE SPECTRUM FROM PITCH & FORMANT DATA ONLY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: outfile is analysis file which must be resynthesized to hear.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SUM):
- fprintf(stdout,"INFO: FIND SUM OF TWO SPECTRA.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CROSSOVER is amount of 2nd spectrum added to 1st\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DIFF):
- fprintf(stdout,"INFO: FIND DIFFERENCE OF TWO SPECTRA.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CROSSOVER is amount of 2nd spectrum subtracted from 1st.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(LEAF):
- fprintf(stdout,"INFO: INTERLEAVE WINDOWS FROM INFILES, LEAFSIZE WINDOWS PER LEAF.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MAX):
- fprintf(stdout,"INFO: IN EACH CHANNEL, IN EACH WINDOW, TAKE MAX VAL AMONGST INPUT FILES.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MEAN):
- fprintf(stdout,"INFO: GENERATE SPECTRAL 'MEAN' OF 2 SOUNDS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOW FRQ LIMIT...... .of channels to average.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: HIGH FRQ LIMIT.......of channels to average.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHANNELS TO COMPARE..Number of significant chans to compare.\n");
- fprintf(stdout,"INFO: .....................Default: All within range.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(CROSS):
- fprintf(stdout,"INFO: REPLACE CHANNEL AMPLITUDES OF 1st FILE WITH THOSE OF 2nd.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INTERPOLATION is degree of replacement.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(WINDOWCNT):
- fprintf(stdout,"INFO: RETURNS NUMBER OF ANALYSIS WINDOWS IN INFILE.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(CHANNEL):
- fprintf(stdout,"INFO: RETURNS CHANNEL NUMBER CORRESPONDING TO FREQUENCY GIVEN.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FREQUENCY):
- fprintf(stdout,"INFO: RETURNS CENTRE FRQ OF CHANNEL SPECIFIED.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(LEVEL):
- fprintf(stdout,"INFO: CONVERTS (VARYING) LEVEL OF ANALFILE TO PSEUDO-SNDFILE\n");
- fprintf(stdout,"INFO: (1 WINDOW -> 1 SAMPLE)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: View with a sndfile display program. DO NOT ATTEMPT TO PLAY FILE!!\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(OCTVU):
- fprintf(stdout,"INFO: DISPLAY TIMEVARYING AMPLITUDE OF SPECTRUM, WITHIN OCTAVE BANDS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIMESTEP.........is timestep between viewing bands.\n");
- fprintf(stdout,"INFO: .................Band-energy is totalled over each timestep duration.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FUNDAMENTAL FRQ..Bands centered on octave transpositions of fundamental.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The reported values are RELATIVE levels only\n");
- fprintf(stdout,"INFO: and the lowest band includes all energy down to '0Hz'.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTFILE is a text file\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(PEAK):
- fprintf(stdout,"INFO: LOCATE TIME-VARYING ENERGY CENTRE OF SPECTRUM.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOW FRQ LIMIT..above which spectral search begins\n");
- fprintf(stdout,"INFO: TIME WINDOW....for energy averaging: in SECONDS\n");
- fprintf(stdout,"INFO: FRQ WINDOW.....for energy averaging: in SEMITONES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTFILE is a text file of lines of data in form...\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: WINDOW starttime endtime : PEB lofrq TO hifrq'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: (where 'PEB' means PEAK ENERGY BAND)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(REPORT):
- fprintf(stdout,"INFO: REPORT ON LOCATION OF FREQUENCY PEAKS IN EVOLVING SPECTRUM,\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PEAKS TO FIND.......(max) number of peaks to find.\n");
- fprintf(stdout,"INFO: LOW FRQ LIMIT.......bottom frequency to start peak search.\n");
- fprintf(stdout,"INFO: HIGH FRQ LIMIT......top frequency to stop peak search.\n");
- fprintf(stdout,"INFO: WINDOWS TO AVERAGE..number of windows over which peaks averaged.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTFILE is a textfile\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(PRINT):
- fprintf(stdout,"INFO: PRINT DATA IN ANALYSIS FILE AS TEXT TO FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME.......in file at which printout begins.\n");
- fprintf(stdout,"INFO: WINDOWCNT..number of windows to print.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Outfile is a textfile.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: WARNING: using more than a few windows will generate a huge textfile.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_INFO):
- fprintf(stdout,"INFO: DISPLAY INFORMATION ABOUT PITCHDATA IN PITCHFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Finds mean pitch, max and min pitch (with timings), as Hz and MIDI.\n");
- fprintf(stdout,"INFO: And displays total range, in octaves and semitones.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_ZEROS):
- fprintf(stdout,"INFO: SHOWS WHETHER PITCHFILE CONTAINS UNINTERPOLATED ZEROS (UNPITCHED WINDOWS).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_SEE):
- fprintf(stdout,"INFO: CONVERT BINARY PITCHFILE OR TRANSPOSITION-FILE TO PSEUDO-SNDFILE, TO VIEW.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEE PITCH\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ........SCALE FACTOR multiplies pitch vals, for ease of viewing.\n");
- fprintf(stdout,"INFO: ........Pitch data scaled by (e.g.) 100 can be read directly from 'sndfile'\n");
- fprintf(stdout,"INFO: ........(Remembering to divide numeric values by 100).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEE TRANSPOSITION\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ........Transposition data is automatically scaled to half max range,\n");
- fprintf(stdout,"INFO: ........And displayed in log format\n");
- fprintf(stdout,"INFO: ........giving a schematic idea ONLY, of transposition data.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: View with a sndfile display program. DO NOT ATTEMPT TO PLAY FILE!!\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_HEAR):
- fprintf(stdout,"INFO: CONVERT BINARY PITCHFILE TO ANALYSIS TESTTONE FILE.\n");
- fprintf(stdout,"INFO: (RESYNTHESISE TO HEAR PITCH).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_WRITE):
- fprintf(stdout,"INFO: CONVERT A BINARY PITCH-DATAFILE TO A TIME/FRQ BRKPNT TEXTFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DATA REDUCTION acceptable pitch error in brkpntfile data-reduction.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT):
- fprintf(stdout,"INFO: MODIFY SHAPE OF 'WAVECYCLES'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_ENV):
- fprintf(stdout,"INFO: IMPOSE ENVELOPE OVER EACH GROUP OF cyclecnt 'WAVECYCLES'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT....is number of wavecycles under a single envelope.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RISE-DECAY EXPONENT..is exponent for envelope rise or decay:\n");
- fprintf(stdout,"INFO: .....................If OMMITED envelope rise/decay is linear.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TROUGHING............is trough of envelope (0-1: default 0).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: in USER-DEFINED MODE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a textfile of time/val(0-1) pairs defining an envelope,\n");
- fprintf(stdout,"INFO: where time units are arbitrary\n");
- fprintf(stdout,"INFO: as the envelope is stretched to each cycle(set) duration.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_AVG):
- fprintf(stdout,"INFO: AVERAGE THE WAVESHAPE OVER N 'WAVECYCLES'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT..is number of cycles to average over ( > 1)\n");
- fprintf(stdout,"INFO: MAX WAVELEN........max permissible wavelength in seconds.\n");
- fprintf(stdout,"INFO: SKIPCYCLES:........number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_OMT):
- fprintf(stdout,"INFO: OMIT A OUT OF EVERY B 'WAVECYCLES' REPLACING THEM BY SILENCE\n");
- fprintf(stdout,"INFO: B van vary in time, but cannot be > A (!)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_MLT):
- fprintf(stdout,"INFO: DISTORTION BY MULTIPLYING WAVECYCLE FREQUENCY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: try SMOOTHED flag if glitches appear.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_DIV):
- fprintf(stdout,"INFO: DISTORTION BY DIVIDING WAVECYCLE FREQUENCY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: N = divider (integer only: range 2-16)\n");
- fprintf(stdout,"INFO: INTERPOLATED........slower, but cleaner.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_HRM):
- fprintf(stdout,"INFO: HARMONIC DISTORTION BY SUPERIMPOSING 'HARMONICS' ONTO 'WAVECYCLES'.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a textfile containing harmonic_no/amplitude pairs.\n");
- fprintf(stdout,"INFO: where amplitude of src sound is taken to be 1.0\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PRE_ATTENUATION.....is applied to input sound before processing.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_FRC):
- fprintf(stdout,"INFO: SUPERIMPOSE MINIATURE COPIES OF SRC 'WAVECYCLES' ONTO THEMSELVES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SCALING FACTOR.....(integer) division of scale of src wave.\n");
- fprintf(stdout,"INFO: RELATIVE LOUDNESS..loudness of scaled component, relative to src (1.0).\n");
- fprintf(stdout,"INFO: PRE_ATTENUATION....applied to input sound before processing.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_REV):
- fprintf(stdout,"INFO: CYCLE_REVERSAL DISTORTION.'WAVECYCLES' REVERSED IN GROUPS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT...Number of cycles (>0) in reversed groups.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_SHUF):
- fprintf(stdout,"INFO: DISTORTION BY SHUFFLING 'WAVECYCLES'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is 2 strings of letters, separated by a '-' or ':'\n");
- fprintf(stdout,"INFO: The first string is the DOMAIN, and the 2nd, the IMAGE.\n");
- fprintf(stdout,"INFO: e.g. 'abc-abbabcc'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DOMAIN.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Letters represent group of consecutive wavecycles.\n");
- fprintf(stdout,"INFO: e.g. 'abcd'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IMAGE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: any permutation of, or selection from, the domain letters.\n");
- fprintf(stdout,"INFO: (domain letters may be omitted or repeated in the image string).\n");
- fprintf(stdout,"INFO: e.g. 'aaaaaaadaaa'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT..(integer) number of wavecycles in groups to operate on.\n");
- fprintf(stdout,"INFO: SKIP CYCLES .......(integer) number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_RPT):
- fprintf(stdout,"INFO: TIMESTRETCH FILE BY REPEATING 'WAVECYCLES'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MULTIPLIER:..........(integer) number of times each wavecycle(grp) repeats.\n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT:...(integer) number wavecycles in repeated groups.\n");
- fprintf(stdout,"INFO: SKIP CYCLES:.........(integer) number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_RPT2):
- fprintf(stdout,"INFO: REPEAT 'WAVECYCLES' THEN SKIP CYCLES TO AVOID TIMESTRETCHING FILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MULTIPLIER:..........(integer) number of times each wavecycle(grp) repeats.\n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT:...(integer) number wavecycles in repeated groups.\n");
- fprintf(stdout,"INFO: SKIP CYCLES:.........(integer) number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_RPTFL):
- fprintf(stdout,"INFO: TIMESTRETCH FILE BY REPEATING 'WAVECYCLES' ABOVE A CERTAIN WAVELENGTH\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MULTIPLIER:..........(integer) number of times each wavecycle(grp) repeats.\n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT:...(integer) number wavecycles in repeated groups.\n");
- fprintf(stdout,"INFO: SKIP CYCLES:.........(integer) number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: HIGH FRQ LIMIT:.......Frequency below which wavecycles are counted.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_INTP):
- fprintf(stdout,"INFO: TIMESTRETCH FILE BY REPEATING 'WAVECYCLES' & INTERPOLATING BETWEEN THEM.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MULTIPLIER: (integer) is number of times each wavecycle repeats.\n");
- fprintf(stdout,"INFO: SKIPCYCLES: (integer) is number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_DEL):
- fprintf(stdout,"INFO: TIMECONTRACT FILE BY DELETING 'WAVECYCLES'\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN GIVEN ORDER:..1 in CYCLECNT wavecycle(group)s retained\n");
- fprintf(stdout,"INFO: RETAIN LOUDEST:..Strongest 1 in CYCLECNT wavecycle(group)s retained\n");
- fprintf(stdout,"INFO: DELETE WEAKEST:..Weakest 1 in CYCLECNT wavecycle(group)s deleted\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT..(integer) number of wavecycles in deleted groups.\n");
- fprintf(stdout,"INFO: SKIPCYCLES:........(integer) number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_RPL):
- fprintf(stdout,"INFO: STRONGEST WAVECYCLE, IN EACH WAVECYCLE GROUP, REPLACES OTHERS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT..(integer) number of wavecycles in group of replacements.\n");
- fprintf(stdout,"INFO: SKIP CYCLES........(integer) number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_TEL):
- fprintf(stdout,"INFO: TIMECONTRACT SOUND BY TELESCOPING cyclecnt 'WAVECYCLES' TO 1\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CYCLE-GROUP COUNT....sizeof group to telescope.\n");
- fprintf(stdout,"INFO: SKIP CYCLES..........(integer) number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: TO AVERAGE CYCLELEN..telescopes to average cyclelen in group.(Default: telescope to longest.)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_FLT):
- fprintf(stdout,"INFO: TIMECONTRACT SOUND BY FILTERING OUT 'WAVECYCLES'\n");
- fprintf(stdout,"INFO: EXCLUDED BY FRQ LIMITS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SKIP CYCLES.....(integer) number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: N.B. timevarying freq1, freq2 may not cross each other, nor be equal.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_INT):
- fprintf(stdout,"INFO: TIME-DOMAIN INTERACTION OF SOUNDS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INTERLEAVE..wavecycles from the two infiles are interleaved.\n");
- fprintf(stdout,"INFO: RESIZE......wavecycle-lengths of 1st file are imposed on wavecycles of 2nd\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_CYCLECNT):
- fprintf(stdout,"INFO: COUNT 'WAVECYCLES' IN SNDFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_PCH):
- fprintf(stdout,"INFO: PITCHWARP 'WAVECYCLES' OF SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SKIP CYCLES....(integer) number of wavecycles to skip at start of file\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_OVERLOAD):
- fprintf(stdout,"INFO: CLIP THE SOUND AND ADD DISTORTION WAVEFORM OVER THE CLIPPED PORTIONS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NOISE.........peaks of signal replaced by noise.\n");
- fprintf(stdout,"INFO: WAVEFORM......peaks of signal replaced by signal of given frequency.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GATE LEVEL WHERE SIGNAL IS CLIPPED....level at which signal is clipped\n");
- fprintf(stdout,"INFO: DEPTH OF DISTORTION GLAZE....depth of distortion pattern imposed on clipped portions.\n");
- fprintf(stdout,"INFO: FREQUENCY OF DISTORT SIGNAL...(mode WAVEFORM only) frequency of distortion signal.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DISTORT_PULSED):
- fprintf(stdout,"INFO: IMPOSE AN IMPULSE STREAM OVER INPUT SOUND, OR OVER A CYCLING SEGMENT OF THAT SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IMPOSE....impose impulse stream on the input sound.\n");
- fprintf(stdout,"INFO: SYNTH......select a specified duration of wavecycles from the input src, at a specified time,\n");
- fprintf(stdout,"INFO: and use as a looped sound source on which the impulses are imposed.\n");
- fprintf(stdout,"INFO: SYNTH2.....the same, but specify starttime as a samplecnt,\n");
- fprintf(stdout,"INFO: and select a specified NUMBER of wavecycles.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IMPULSE ENVELOPE......... ...a breakpoint file describing the envelope shape of the impulse.\n");
- fprintf(stdout,"INFO: whatever time units used will be scaled to the duration of the impulses.\n");
- fprintf(stdout,"INFO: PULSE STREAM START-TIME IN SRC SOUND ...time in src sound where impulses begin.\n");
- fprintf(stdout,"INFO: DURATION OF IMPULSE STREAM.............time for which impulses persist.\n");
- fprintf(stdout,"INFO: FREQUENCY OF IMPULSES (HZ).............frequency of the impulses\n");
- fprintf(stdout,"INFO: RANDOMISATION OF FREQUENCY OF IMPULSES........max amount of semitone wander.\n");
- fprintf(stdout,"INFO: of the impulse are randomised, from impulse to impulse.\n");
- fprintf(stdout,"INFO: RANDOMISATION OF TIME CONTOUR OF AN IMPULSE........time-positions of amplitude peaks & troughs\n");
- fprintf(stdout,"INFO: of the impulse are randomised, from impulse to impulse.\n");
- fprintf(stdout,"INFO: RANDOMISATION_OF_AMPLITUDE_CONTOUR_OF_AN_IMPULSE....shape created by amplitude peaks & troughs\n");
- fprintf(stdout,"INFO: of the impulse is randomised, from impulse to impulse.\n");
- fprintf(stdout,"INFO: DURATION (or NUMBER) OF WAVECYCLES TO GRAB AS SOUND SRC INSIDE IMPULSES......(SYNTHESIS MODES ONLY)\n");
- fprintf(stdout,"INFO: at the specified starttime, wavecycles are chosen from src sound,\n");
- fprintf(stdout,"INFO: and used as the 'waveform' on which the impulses are imposed\n");
- fprintf(stdout,"INFO: SEMITONE TRANSPOSITION CONTOUR OF SOUND INSIDE EACH IMPULSE.....\n");
- fprintf(stdout,"INFO: within each impulse, the sound material is pitchwarped, using the semitone contour defined here.\n");
- fprintf(stdout,"INFO: MAX SEMITONE RANGE OF RANDOMISATION OF TRANSPOSITION CONTOUR............\n");
- fprintf(stdout,"INFO: within each impulse, the transposition contour is itself randomised, from impulse to impulse.\n");
- fprintf(stdout,"INFO: KEEP START OF SRC BEFORE IMPULSES BEGIN ... if impulses begin at a time beyond start of src sound,\n");
- fprintf(stdout,"INFO: the opening unpulsed segment of the sound is retained in the output.\n");
- fprintf(stdout,"INFO: KEEP END OF SRC AFTER IMPULSES FINISH ... if impulses end at a time before end of src sound,\n");
- fprintf(stdout,"INFO: the closing unpulsed segment of the sound is retained in the output.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Works on MONO files only\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ZIGZAG):
- fprintf(stdout,"INFO: READ BACK AND FORTH INSIDE SOUNDFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In mode USER SPECIFIED\n");
- fprintf(stdout,"INFO: Required data is textfile containing sequence of times to zigzag between.\n");
- fprintf(stdout,"INFO: Each step-between-times must be > (3 * splicelen).\n");
- fprintf(stdout,"INFO: Successive zigsteps moving in same (time-)direction are concatenated.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RANDOM SEED..a number to generate a replicable random sequence. (>0)\n");
- fprintf(stdout,"INFO: .............enter same number on next program run, to get same outfile.\n");
- fprintf(stdout,"INFO: .............(Default: (0) random sequence is different every time).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(LOOP):
- fprintf(stdout,"INFO: LOOP INSIDE SOUNDFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEARCHFIELD........makes step advance irregular, within timeframe of SEARCHFIELD.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FROM INFILE START..flag forces outfile to play from beginning of infile\n");
- fprintf(stdout,"INFO: ...................(even if looping doesn't begin there).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SCRAMBLE):
- fprintf(stdout,"INFO: SCRAMBLE THE SOUND BY CUTTING RANDOMLY AND REORGANISING CUT CHUNKS RANDOMLY\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: COMPLETELY RANDOM........Random chunks cut from file, and spliced end to end.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SCRAMBLE SRC:THEN AGAIN..Whole file is cut into random chunks, and these rearranged\n");
- fprintf(stdout,"INFO: .........................then this process is repeated differently.. and again..etc\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN CHUNKLEN.........minimum chunklen to cut.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX CHUNKLEN.........maximum chunklen to cut.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHUNK LENGTH.........average chunklen to cut.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SCATTER COEFFICIENT..Randomisation of chunk lengths.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEED VALUE...........same seed-number producea identical output on rerun\n");
- fprintf(stdout,"INFO: .....................(Default: (0) random sequence is different every time).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RUN FROM SND START:..wherever first randomly located chunk is\n");
- fprintf(stdout,"INFO: .....................outfile plays up to its start before scrambling.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RUN TO SND END:......wherever last randomly located chunk is\n");
- fprintf(stdout,"INFO: .....................outfile plays on to end of src sound.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ITERATE):
- fprintf(stdout,"INFO: ITERATE AN INPUT SOUND IN A FLUID MANNER\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: **** WARNING: Do NOT use with large files. ****\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DELAY..................(average) delay between iterations. Default:infile dur.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCH SCATTER..........max of random pitchshift of each iteration: semitones\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: AMPLITUDE SCATTER......max of random amp-reduction on each iteration.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PROGRESSIVE FADE.......(average) amplitude fade beween iterations.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OVERALL GAIN...........(special) value 0, gives best guess for no distortion.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEED RANDOM GENERATOR..same number produces identical output on rerun,\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ITERATE_EXTEND):
- fprintf(stdout,"INFO: EXTEND A SOUND BY FREEZING A SPECIFIED PART OF IT, BY FLUID ITERATION\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: **** WARNING: Do NOT use with large files. ****\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES----------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) Specify (minimum) duration of output.\n");
- fprintf(stdout,"INFO: 2) Specify number of repetitions in extended segment.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME WHEN ITERATED SEGMENT ENDS\n");
- fprintf(stdout,"INFO: if there is portion of original sound beyond the segment to be extended,\n");
- fprintf(stdout,"INFO: output duration will be greater than this parameter value.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DELAY..................(average) delay between iterations. Default:infile dur.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCH SCATTER..........max of random pitchshift of each iteration: semitones\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: AMPLITUDE SCATTER......max of random amp-reduction on each iteration.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START OF TIME FREEZE...time at which freezing iteration begins.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: END OF TIME FREEZE.....time at which freezing iteration ends.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GAIN OF FROZEN SEGMENT.....multiplies output level of frozen segment.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEED RANDOM GENERATOR..same number produces identical output on rerun,\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DRUNKWALK):
- fprintf(stdout,"INFO: DRUNKEN-WALK THROUGH INPUT SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In mode SOBER MOMENTS input sound is read soberly at holds.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOCUS............Time in src around which drunkwalk happens(secs) CAN MOVE THRO SRC\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: AMBITUS..........(half)width of region from within which sound-segments read.(secs)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STEP.............Max length of (random) step between segment-reads.\n");
- fprintf(stdout,"INFO: .................(always WITHIN ambitus: automatically adjusted where too large)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CLOCKTICK........Time between segment reads = (average) segment duration.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEGMENT OVERLAY..Mutual overlap of segments in output.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEED VALUE...... Any set value gives reproducible output.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(EQ):
- fprintf(stdout,"INFO: CUT OR BOOST, ABOVE, BELOW OR AROUND A GIVEN FRQ\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BWIDTH.... filter bandwidth in Hz\n");
- fprintf(stdout,"INFO: BOOST/CUT..is the boost or cut, in dB\n");
- fprintf(stdout,"INFO: FREQ.......is the filter frequency in Hz\n");
- fprintf(stdout,"INFO: PRESCALE...scales the INPUT to the filter.\n");
- fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(LPHP):
- fprintf(stdout,"INFO: FIXED LOW PASS OR HIGH PASS FILTER.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ATTENUATION..Gain reduction of filter, in dB.\n");
- fprintf(stdout,"INFO: .............Greater attenuation, sharper filter, but longer to calculate.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PASS-BAND....last pitch to be passed by the filter.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STOP-BAND....first pitch to be stopped by the filter.\n");
- fprintf(stdout,"INFO: .............If stop-band is above pass-band, this is a lopass filter.\n");
- fprintf(stdout,"INFO: .............If stop-band is below pass-band, this is a hipass filter.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PRESCALE.....Prescale input level: Avoid overflows.\n");
- fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FSTATVAR):
- fprintf(stdout,"INFO: LOPASS, HIGH-PASS, BANDPASS, OR NOTCH FILTER WITH VARIABLE FRQ\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ACUITY.....acuity of filter: Smaller vals give tighter filter.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GAIN.......overall gain on output: Rule of thumb:\n");
- fprintf(stdout,"INFO: ...........if acuity = (1/3)to-power-n: gain = (2/3)-to-power-n\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FREQUENCY..frq of filter\n");
- fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FLTBANKN):
- fprintf(stdout,"INFO: BANK OF FILTERS, WITH TIME-VARIABLE Q\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Q..................Q (tightness) of filters.\n");
- fprintf(stdout,"INFO: GAIN...............overall gain.\n");
- fprintf(stdout,"INFO: LOW FRQ............lofrq limit of filter bank.\n");
- fprintf(stdout,"INFO: HIGH FRQ...........hifrq limit of filter bank.\n");
- fprintf(stdout,"INFO: FRQ RANDOMISATION..Random scatter of filter frqs.\n");
- fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FLTBANKC):
- fprintf(stdout,"INFO: GENERATE A LIST OF FREQUENCIES FOR USE AS A FILTERBANK\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You can add your own amplitudes to the textfile & use if with USERBANK\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOW FRQ............lofrq limit of filter bank.\n");
- fprintf(stdout,"INFO: HIGH FRQ...........hifrq limit of filter bank.\n");
- fprintf(stdout,"INFO: FRQ RANDOMISATION..Random scatter of filter frqs.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FLTBANKU):
- fprintf(stdout,"INFO: USER-DEFINED FILTERBANK,WITH TIME-VARIABLE Q\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BANDS AS FRQ (HZ):..Filter-pitches as frq in Hz.\n");
- fprintf(stdout,"INFO: BANDS AS MIDI:......Filter-pitches as MIDI values.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Filter data is a file with Pitch & Amp of filters\n");
- fprintf(stdout,"INFO: (paired, one pair on each line).\n");
- fprintf(stdout,"INFO: where amplitude may be expressed in decibels or as a +ve number,\n");
- fprintf(stdout,"INFO: and comment-lines (starting with ';') may be used.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Q:........Q (tightness) of filter\n");
- fprintf(stdout,"INFO: GAIN......overall gain on output.\n");
- fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FLTBANKV):
- fprintf(stdout,"INFO: USER-DEFINED TIME_VARYING FILTERBANK,WITH TIME-VARIABLE Q\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: REQUIRED DATAFILE-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: a textfile with lines of data for filter bands at successive times\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Each line contains the following items\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Time Pitch1 Amp1 [Pitch2 Amp2 etc....].\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Where pitch and Amp values must be paired: and any number of pairs can be used in a line,\n");
- fprintf(stdout,"INFO: BUT each line must have SAME number of pairs on it.\n");
- fprintf(stdout,"INFO: (To eliminate a band in any line(s), set its amplitude to 0.0).\n");
- fprintf(stdout,"INFO: Time values (in secs) must be in ascending order (and >=0.0)\n");
- fprintf(stdout,"INFO: Pitch vals may be EITHER frq, OR MIDI, depending on Mode.\n");
- fprintf(stdout,"INFO: Amp values may be numeric, or dB values (e.g. -4.1dB).\n");
- fprintf(stdout,"INFO: and comment-lines may be used: start these with ';'.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Q....................Q (tightness) of filter.\n");
- fprintf(stdout,"INFO: GAIN.................overall gain.\n");
- fprintf(stdout,"INFO: NUMBER OF HARMONICS..No of harmonics (of each pitch) to use: Default 1.\n");
- fprintf(stdout,"INFO: .....................Very high harmonics of high pitches may be too high to calculate. (check with Max Harmonic button)\n");
- fprintf(stdout,"INFO: .....................No-of-pitches times no-of-harmonics determines program speed.\n");
- fprintf(stdout,"INFO: ROLL OFF.............Level drop (in dB) from one harmonic to next.\n");
- fprintf(stdout,"INFO: DECAY TAIL...........Time allowed for filter resonance to decay,once source sound has finished.\n");
- fprintf(stdout,"INFO: DOUBLE FILTERING.....More sharply defined filter frequencies.\n");
- fprintf(stdout,"INFO: DROP OUT ON OVERFLOW.The filter is designed to adjust its internal level to prevent numerical overflow from\n");
- fprintf(stdout,"INFO: .....................causing runaway distortion. If you are concerned to avoid any overflows at all,\n");
- fprintf(stdout,"INFO: .....................setting this flag will cause the filter to stop calculating if any overflow is detected.\n");
- fprintf(stdout,"INFO: .....................The filter gain can then be turned down, and the filter launched again.\n");
- break;
- case(FLTBANKV2):
- fprintf(stdout,"INFO: USER-DEFINED TIME_VARYING FILTERBANK,WITH TIME-VARIABLE Q AND PARTIALS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: REQUIRED DATAFILE-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: a textfile with lines of data for filter bands at successive times & for partials similarly\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FIRST set of lines contain the following items\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Time Pitch1 Amp1 [Pitch2 Amp2 etc....].\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Where pitch and Amp values must be paired: and any number of pairs can be used in a line,\n");
- fprintf(stdout,"INFO: BUT each line must have SAME number of pairs on it.\n");
- fprintf(stdout,"INFO: (To eliminate a band in any line(s), set its amplitude to 0.0).\n");
- fprintf(stdout,"INFO: Time values (in secs) must be in ascending order (and >=0.0)\n");
- fprintf(stdout,"INFO: Pitch vals may be EITHER frq, OR MIDI, depending on Mode.\n");
- fprintf(stdout,"INFO: Amp values must be numeric.\n");
- fprintf(stdout,"INFO: and comment-lines may be used: start these with ';'.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: There must then be a SEPARATING LINE starting with a '#' sign\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SECOND set of lines contain the following items\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Time: PartialNo1 Amp1 [PartialNo2 Amp2 etc....].\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Where partial numbers and Amp values must be paired: and any number of pairs can be used in a line,\n");
- fprintf(stdout,"INFO: BUT each line must have SAME number of pairs on it.\n");
- fprintf(stdout,"INFO: (To eliminate a band in any line(s), set its amplitude to 0.0).\n");
- fprintf(stdout,"INFO: Time values (in secs) must be in ascending order (and >=0.0)\n");
- fprintf(stdout,"INFO: Partial numbers can be fractional but must be >= 1.0\n");
- fprintf(stdout,"INFO: Amp values may be numeric.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The first time value in each line set MUST BE ZERO.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Q....................Q (tightness) of filter.\n");
- fprintf(stdout,"INFO: GAIN.................overall gain.\n");
- fprintf(stdout,"INFO: DECAY TAIL...........Time allowed for filter resonance to decay,once source sound has finished.\n");
- fprintf(stdout,"INFO: DOUBLE FILTERING.....More sharply defined filter frequencies.\n");
- break;
- case(FLTITER):
- fprintf(stdout,"INFO: ITERATE SOUND, WITH CUMULATIVE FILTERING BY A FILTERBANK.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a textfile with Pitch & Amp of filters\n");
- fprintf(stdout,"INFO: (paired, one pair on each line).\n");
- fprintf(stdout,"INFO: Pitch, as Hz or MIDI.\n");
- fprintf(stdout,"INFO: Amp, can be entered as dB vals or numerically.\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Q.......................Q (tightness) of filter.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GAIN....................overrall gain in filtering process.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DELAY...................(average) delay between iterations (secs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTFILE DURATION........(min) duration of output file (>infile duration).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PRESCALE................gain on the INPUT to the filtering process.\n");
- fprintf(stdout,"INFO:.........................If 0.0, Program automatically divides input level by\n");
- fprintf(stdout,"INFO:.........................the max number of sound overlays occuring in process.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX PITCH SHIFT.........max pitchshift of any segment: (fractions of) semitones\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX LOUDNESS SHIFT......max amplitude reduction of any segment. (numeric)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCH NOT INTERPOLATED..during pitch shift: (fast but dirty).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXPONENTIAL DECAY...... each seg gets quieter before next enters.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NO NORMALISATION........segs may grow or fall in level quickly.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(FLTSWEEP):
- fprintf(stdout,"INFO: FILTER WHOSE FOCUS-FREQUENCY SWEEPS OVER A RANGE OF FREQUENCIES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ACUITY......Smaller vals give tighter filter.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GAIN........overall gain on output: Rule of thumb:\n");
- fprintf(stdout,"INFO: ............if acuity = (1/3)to-power-n: gain = (2/3)-to-power-n\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOW FRQ.....lowest frq to sweep to.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: HIGH FRQ....highest frq to sweep to.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SWEEP FRQ...frq of the sweep itself.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PHASE.......start of sweep: Range(0-1)\n");
- fprintf(stdout,"INFO: ............e.g. to sweep once over range,\n");
- fprintf(stdout,"INFO: ............set sweepfrq to infiledur/2 (default)\n");
- fprintf(stdout,"INFO: ............and set phase to 0 (upsweep) or .5(downsweep)\n");
- fprintf(stdout,"INFO: DECAY TAIL...time allowed for filter resonance to decay,once source sound has finished.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ALLPASS):
- fprintf(stdout,"INFO: PHASESHIFT SOUND, OR PRODUCE 'PHASING' EFFECT\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GAIN................ In mode PHASING EFFECT,\n");
- fprintf(stdout,"INFO: .....................effect increases as gain increases from -1\n");
- fprintf(stdout,"INFO: .....................BUT a gain of 1.0 will produce complete phase cancellation\n");
- fprintf(stdout,"INFO: .....................and the output signal will be zero.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PRESCALE.............gain on the INPUT to the filtering process.\n");
- fprintf(stdout,"INFO: DECAY TAIL...........time allowed for filter resonance to decay,once source sound has finished.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LINEAR INTERP DELAY..(default: logarithmic interp of changing delay vals)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_COUNT):
- fprintf(stdout,"INFO: COUNT GRAINS FOUND IN A SOUND (AT GIVEN GATE & MINHOLE VALUES)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_OMIT):
- fprintf(stdout,"INFO: OMIT A PROPORTION OF GRAINS FROM GRAINY-SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GRAINS TO KEEP...... .number of grains to keep from each set of 'out_of' grains\n");
- fprintf(stdout,"INFO: ......................may vary over time, but must not exceed 'out_of'.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUT OF THIS MANY.....'keep' grains kept, from each 'out_of' grains set\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_DUPLICATE):
- fprintf(stdout,"INFO: DUPLICATE GRAINS IN GRAINY-SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL...........required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_REORDER):
- fprintf(stdout,"INFO: REORDER GRAINS IN GRAINY-SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a string such as 'adb:c' or 'adb-c'\n");
- fprintf(stdout,"INFO: indicating how grains are to be reordered.\n");
- fprintf(stdout,"INFO: The example means use grains 1 (a), 4 (d) and 2 (b) in sequence,\n");
- fprintf(stdout,"INFO: then begin this grain-jumping pattern again, BUT start at grain3 (c):\n");
- fprintf(stdout,"INFO: Then continue to advance in this fashion until no grains left in infile.\n");
- fprintf(stdout,"INFO: The ':' (or '-') is obligatory.\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_REPITCH):
- fprintf(stdout,"INFO: REPITCH GRAINS IN GRAINY-SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NO GRAIN REPEATS..Lengthen or shorten each grain in turn, without repeating any grains:\n");
- fprintf(stdout,"INFO: ..................on reaching end of stretch list, cycle back to its start.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: REPEAT EACH GRAIN Play grain at each new length, before proceeding to next grain.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is textfile listing transpositions as (+ve or -ve) semitone shifts.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_RERHYTHM):
- fprintf(stdout,"INFO: CHANGE RHYTHM OF GRAINS IN GRAINY-SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NO GRAIN REPEATS..Lengthen or shorten each grain in turn, without repeating any grains:\n");
- fprintf(stdout,"INFO: ..................on reaching end of stretch list, cycle back to its start.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: REPEAT EACH GRAIN Play grain at each new length, before proceeding to next grain.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a textfile listing duration-multipliers.\n");
- fprintf(stdout,"INFO: if any inter-grain time reduced below MINGRAINTIME\n");
- fprintf(stdout,"INFO: it will be set to MINGRAINTIME.\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_REMOTIF):
- fprintf(stdout,"INFO: CHANGE PITCH AND RHYTHM OF GRAINS IN GRAINY-SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NO GRAIN REPEATS..Lengthen or shorten each grain in turn, without repeating any grains:\n");
- fprintf(stdout,"INFO: ..................on reaching end of stretch list, cycle back to its start.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: REPEAT EACH GRAIN Play grain at each new length, before proceeding to next grain.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a textfile containing transposition-timemultiplier PAIRS.\n");
- fprintf(stdout,"INFO: Transpositions are (+ve or -ve) semitone shifts.\n");
- fprintf(stdout,"INFO: Time-multipliers change the grain duration.\n");
- fprintf(stdout,"INFO: if any inter-grain time reduced below MINGRAINTIME\n");
- fprintf(stdout,"INFO: it will be set to MINGRAINTIME.\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_TIMEWARP):
- fprintf(stdout,"INFO: STRETCH (OR SHRINK) DURATION OF GRAINY-SOUND\n");
- fprintf(stdout,"INFO: WITHOUT STRETCHING GRAINS THEMSELVES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIMESTRETCH-RATIO.....is degree of stretching/shrinking of intergrain time.\n");
- fprintf(stdout,"INFO: ......................a value of 2 doubles the intergrain time.\n");
- fprintf(stdout,"INFO: ......................a value of .5 halves the intergrain time.\n");
- fprintf(stdout,"INFO: ......................if any inter-grain time reduced below a certain MINGRAINTIME,\n");
- fprintf(stdout,"INFO: ......................it will be set to MINGRAINTIME.\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_REVERSE):
- fprintf(stdout,"INFO: REVERSE ORDER OF GRAINS IN A GRAINY-SOUND\n");
- fprintf(stdout,"INFO: WITHOUT REVERSING GRAINS THEMSELVES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_GET):
- fprintf(stdout,"INFO: LOCATE TIMINGS OF GRAIN-ONSETS IN A GRAINY-SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUT-TEXTFILE will contain a list of grain-onset timings, in seconds.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_POSITION):
- fprintf(stdout,"INFO: REPOSITION GRAIN-ONSETS IN A GRAINY-SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a textfile containing a list of grain-onset timings, in seconds.\n");
- fprintf(stdout,"INFO: (Which might be obtained with GRAIN GET)\n");
- fprintf(stdout,"INFO: if any inter-grain time reduced below MINGRAINTIME\n");
- fprintf(stdout,"INFO: it will be set to MINGRAINTIME.\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GRAINTIME OFFSET......added to ALL grain timings.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME....min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE..track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: ......................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GRAIN_ALIGN):
- fprintf(stdout,"INFO: SYNCHRONISE GRAIN-ONSETS IN 2nd GRAINY-SOUND\n");
- fprintf(stdout,"INFO: WITH THOSE IN THE 1st.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1st infile provides grain-onset times.\n");
- fprintf(stdout,"INFO: 2nd infile provides the actual grains to be retimed.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GRAINTIME OFFSET.........added to ALL output grain timings.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX TIME BETWEEN GRAINS..if program sends a warning that it has found grain too large for buffer.\n");
- fprintf(stdout,"INFO: increase this value until no warning is sent.\n");
- fprintf(stdout,"INFO: GATE LEVEL...............required signal level for grain to be seen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GATE LEVEL FOR 2nd FILE..is separate gate for file 2.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GRAIN-OFF TIME.......min duration of inter-grain holes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW-SIZE.....track signal level, with this windowsize (secs)\n");
- fprintf(stdout,"INFO: .........................0 value turns off tracking.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIX):
- fprintf(stdout,"INFO: MIX SOUNDS AS INSTRUCTED IN A MIXFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIXING STARTTIME...starttime in mix (to start mixing later than zero).\n");
- fprintf(stdout,"INFO: MIXING ENDTIME.....endtime in mix (to stop mix before its true end).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Note that the START and END params intended for mix TESTING purposes only.\n");
- fprintf(stdout,"INFO: If you want to keep output from such a testmix, you should TOPNTAIL it.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ATTENUATION.......reduce the mix level, if necessary.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ALTERNATIVE MIX....slower,but may avoid clipping in special circumstances.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXTEST):
- fprintf(stdout,"INFO: TEST THE SYNTAX OF A MIXFILE\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXMAX):
- fprintf(stdout,"INFO: TEST THE MAXIMUM LEVEL OF A MIX, DEFINED IN A MIXFILE\n");
- fprintf(stdout,"INFO: AND SUGGEST A GAIN FACTOR TO AVOID OVERLOAD, IF NECESSARY\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIXING STARTTIME..starttime in mix (to start mixing later than zero).\n");
- fprintf(stdout,"INFO: MIXING ENDTIME....endtime in mix (to stop mix before its true end).\n");
- fprintf(stdout,"INFO: OUTTEXTFILE.......stores clipping locations (& maxlevel, in mode MAXLEVEL & CLIPTIMES).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You can alter the overall level of a mix with 'SUBMIX ATTENUATE'.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXFORMAT):
- fprintf(stdout,"INFO: MIXFILES CONSIST OF LINES WITH ONE OF THE FOLLOWING FORMATS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: sndname starttime_in_mix chans level\n");
- fprintf(stdout,"INFO: sndname starttime_in_mix 1 level pan\n");
- fprintf(stdout,"INFO: sndname starttime_in_mix 2 leftlevel leftpan rightlevel rightpan\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SNDNAME....name of MONO or STEREO sndfile: ALL MUST HAVE SAME SAMPLING RATE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHANS......number of channels in this soundfile (1 or 2 ONLY)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LEVEL......loudness, as number (1 = unity gain) or dB (0dB = unity gain)\n" );
- fprintf(stdout,"INFO: ...........Mono & stereo files MAY have SINGLE level param (NO pan data).\n");
- fprintf(stdout,"INFO: ...........In this case, MONO files in STEREO mixes are panned centrally.\n");
- fprintf(stdout,"INFO: ...........OTHERWISE....\n");
- fprintf(stdout,"INFO: ...........MONO files MUST have 1 level & 1 pan parameter (ONLY).\n");
- fprintf(stdout,"INFO: ...........STEREO files MUST have 2 level & 2 pan params(1 for each channel)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PAN........is spatial positioning of file (or file channel) in output mix.\n");
- fprintf(stdout,"INFO: ...........-1 Hard Left : 0 Centre : 1 Hard Right\n");
- fprintf(stdout,"INFO: ...........< -1 hard left & attenuated : > 1 hard right & attenuated.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ALSO\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) The mixfile list need NOT be in starttime order.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2) Silence at start of mix IGNORED.(splice on afterwards if needed).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 3) With exclusively mono inputs, with NO pan information, OR \n");
- fprintf(stdout,"INFO: when ALL panned hard left, or ALL hard right, output is MONO.\n");
- fprintf(stdout,"INFO: All other situations produce stereo output.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TAKE CARE WHEN PANNING BOTH CHANNELS OF A STEREO FILE.\n");
- fprintf(stdout,"INFO: 4) The channel contributions sum, so e.g. if both channels are\n");
- fprintf(stdout,"INFO: panned to same position without attenuation, overload possible.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 5) You may test for max level in your mix output with SUBMIX GETLEVEL.\n");
- fprintf(stdout,"INFO: Reduce the mixfile level, if necessary, using SUBMIX ATTENUATE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 6) You may put comment lines in mixfiles : Start such line with a ';'\n");
- fprintf(stdout,"INFO: Blank lines are ignored.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXDUMMY):
- fprintf(stdout,"INFO: CONVERT A LIST OF SNDFILES INTO A BASIC MIXFILE (FOR EDITING)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIX_ON_GRID):
- fprintf(stdout,"INFO: CONVERT A LIST OF SNDFILES INTO A BASIC MIXFILE (FOR EDITING) ON A GRID OF TIMES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIX GRID .... is a list of times (in ascending order) at which sounds are to be placed.\n");
- fprintf(stdout,"INFO: ................ OR a list where times-to-be-used are marked by 'x' (before time, with no space)\n");
- fprintf(stdout,"INFO: ................ to indicate which grid points are to be used for successive input sounds.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ................ The number of (marked) times must be equal to the number of input sounds.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ................ Times may be followed (on the same line only) by comments e.g. grid numbering.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(AUTOMIX):
- fprintf(stdout,"INFO: MIX SEVERAL MONO OR STEREO FILES USING A TIME-CHANGING BALANCE-FUNCTION\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIX BALANCE FUNCTION .... is a list of value sets.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: .....Each set consists of a time, followed by the RELATIVE level of each file in the mix, at that time.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: .....The values WITHIN A LINE are used to set the RELATIVE levels of the sounds at that time.\n");
- 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");
- fprintf(stdout,"INFO: .....(This means that if all signals are at max level, the output will never exceed max level:\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: .....YOU CANNOT USE THIS DATA TO VARY THE OVERALL LEVEL FROM LINE TO LINE.\n");
- fprintf(stdout,"INFO: .....and, in particular, the values cannot ALL be zero.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: .....(Apply an envelope function (with ENVEL) to change the overall level of the mix output sound).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIX ENVELOPE FUNCTION ....Defines (possibly time-varying) gain to be apply to output AFTER BALANCING.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXTWARP):
- fprintf(stdout,"INFO: TIMEWARP THE DATA IN A MIXFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START LINE...mixfile-line at which warping begins (default: 1st in file)\n");
- fprintf(stdout,"INFO: END LINE.....mixfile-line at which warping ends (default: last in file).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SORT ENTRY TIMES sorts mixfile so lines are in time-order of entry.\n");
- fprintf(stdout,"INFO: REVERSE TIMING PATTERN: e.g. rit. of sound entries becomes an accel.\n");
- fprintf(stdout,"INFO: REVERSE TIMING & NAMES e.g. rit starting from file A to file Z becomes accel from file Z to A.\n");
- fprintf(stdout,"INFO: FREEZE TIMEGAPS all timegap between sound entries become same as FIRST timegap.\n");
- fprintf(stdout,"INFO: FREEZE TIMEGAPS & NAMES ditto, and all files take firstfile name.\n");
- 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");
- fprintf(stdout,"INFO: SHUFFLE UP ENTRY TIMES shuffle times in file forward by time DISPLACEMENT secs (e.g from a specified line).\n");
- fprintf(stdout,"INFO: ADD TO TIMEGAPS add fixed val PARAMETER secs, to timegaps between sounds.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THE CREATE & ENLARGE MODES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If the parameter value is X, then\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CREATE FIXED TIMEGAPS 1..between all sounds,timegap = X secs\n");
- fprintf(stdout,"INFO: CREATE FIXED TIMEGAPS 2..startval+X,startval+2X etc\n");
- fprintf(stdout,"INFO: CREATE FIXED TIMEGAPS 3..startval*X startval*2X etc\n");
- fprintf(stdout,"INFO: CREATE FIXED TIMEGAPS 4..startval*X startval*X*X etc\n");
- fprintf(stdout,"INFO: ENLARGE TIMEGAPS 1.......multiply them by X.\n");
- fprintf(stdout,"INFO: ENLARGE TIMEGAPS 2.......by +X, +2X,+3X etc\n");
- fprintf(stdout,"INFO: ENLARGE TIMEGAPS 3.......by *X *2X *3X\n");
- fprintf(stdout,"INFO: ENLARGE TIMEGAPS 4.......by *X, *X*X, *X*X*X etc. (CARE!!)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXSHUFL):
- fprintf(stdout,"INFO: SHUFFLE THE DATA IN A MIXFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) DUPLICATE LINES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2) REVERSE ORDER FILENAMES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 3) SCATTER ORDER FILENAMES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 4) FIRST FILENAME TO ALL.....and hence first sound in all lines.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 5) OMIT LINES................(closing up timegaps appropriately).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 6) OMIT ALTERNATE LINES......(closing up timegaps appropriately).\n");
- fprintf(stdout,"INFO: .............................In modes 5 & 6 mix must be in correct time-order.\n");
- fprintf(stdout,"INFO: .............................mixfiles can be time-ordered using timewarp mode 1\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) DUPL LINES, NEW FILENAME..duplicate each line with new sound, newname.\n");
- fprintf(stdout,"INFO: .............................Program checks 'newname' is compatible sndfile,BUT\n");
- fprintf(stdout,"INFO: .............................NO SNDNAME CHECK turns OFF this checking.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START LINE..line at which shuffling begins (default: 1st in file)\n");
- fprintf(stdout,"INFO: END LINE....line at which shuffling ends (default: last in file).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXGAIN):
- fprintf(stdout,"INFO: ALTER THE OVERALL LEVEL OF A MIXFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START LINE..line at which attenuation begins (default: 1st in file)\n");
- fprintf(stdout,"INFO: END LINE....line at which attenuation ends (default: last in file).\n");
- fprintf(stdout,"INFO: GAINVAL.....must be > 0.0\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You can test the overall level of a mix with 'SUBMIX GETLEVEL'\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXSWARP):
- fprintf(stdout,"INFO: ALTER THE SPATIAL DISTRIBUTION OF A MIXFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THE FOLLOWING MODES ARE TO BE UNDERSTOOD THUS----------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SCATTER ALTERNATING..gives random positions but alternating\n");
- fprintf(stdout,"INFO: .....................to left/right of centre of spatial range specified.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TWIST WHOLE MIX......Invert stereo in alternate lines of mixfile.\n");
- fprintf(stdout,"INFO: .....................(Can be used to avoid clipping).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TWIST A LINE.........Invert stereo in specified line of mixfile.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START LINE...........line at which warping begins (default: 1st in file)\n");
- fprintf(stdout,"INFO: END LINE.............line at which warping ends (default: last in file).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXSYNC):
- fprintf(stdout,"INFO: SYNCHRONISE SOUNDFILES IN A MIXFILE,\n");
- fprintf(stdout,"INFO: OR GENERATE SUCH A MIXFILE FROM A LIST OF SNDFILES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INTEXTFILE......is list of sndfiles OR an existing mixfile.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXSYNCATT):
- fprintf(stdout,"INFO: SYNCHRONISE ATTACKS OF SOUNDFILES, IN A MIXFILE,\n");
- fprintf(stdout,"INFO: OR GENERATE SUCH A MIXFILE FROM A LIST OF SNDFILES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Input file is a list of sndfiles OR an existing mixfile.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: With a sndfilelist (only), each sndname MAY be followed by 2 times,\n");
- fprintf(stdout,"INFO: which delimit the search area for the sound's attack.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: WINDOW DIVIDER..is factor shortening window which scans for the attack.\n");
- fprintf(stdout,"INFO: ................It can be 2,4,8,16, or 32 ONLY.\n");
- fprintf(stdout,"INFO: POWER METHOD....finds peak-power segment, before locating its max sample.\n");
- fprintf(stdout,"INFO: ................Default: program looks purely for maxsample.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The program estimates output levels required to prevent clipping,\n");
- fprintf(stdout,"INFO: But estimate may be over-cautiously low: adjust with 'SUBMIX ATTENUATE'.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXTWO):
- fprintf(stdout,"INFO: QUICK MIX OF 2 SNDFILES (HAVING SAME NUMBER OF CHANNELS)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STAGGER FILE2 ENTRY..2nd file enters, 'stagger' secs after first.\n");
- fprintf(stdout,"INFO: SKIP INTO 2ND FILE...by 'skip' secs, before starting to mix.\n");
- fprintf(stdout,"INFO: AMPLITUDE SKEW.......1st sound has 'skew' times more gain than 2nd.\n");
- fprintf(stdout,"INFO: START MIX AT.........Start the mix at the time specified.\n");
- fprintf(stdout,"INFO: CUT OFF MIX AT.......Stop the mix at the time specified.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Both files are halved in level\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXMANY):
- fprintf(stdout,"INFO: QUICK MIX OF SEVERAL SNDFILES (HAVING SAME NUMBER OF CHANNELS)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXBALANCE):
- fprintf(stdout,"INFO: MIX BETWEEN 2 SNDFILES USING A BALANCE FUNCTION.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BALANCE FUNCTION...Describes the relative level of the two sounds.\n");
- fprintf(stdout,"INFO: ............................File 1 level is multiplied by the balance value.\n");
- fprintf(stdout,"INFO: ............................File 2 level is multiplied by (1.0 minus the balance value).\n");
- fprintf(stdout,"INFO: START OF MIX....\n");
- fprintf(stdout,"INFO: END OF MIX......Use these to make just part of the mix.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXCROSS):
- fprintf(stdout,"INFO: QUICK CROSSFADE BETWEEN SNDFILES (WITH SAME NUMBER OF CHANNELS).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Crossfade is from sndfile1 towards sndfile2.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STAGGER FILE2 ENTRY..2nd file starts 'stagger' secs. after 1st.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CROSSFADE SKEW.......f 1, cosinusoidal-crossfade is normal.\n");
- fprintf(stdout,"INFO: .....................below 1, cosin-fade begins rapidly then slows.\n");
- fprintf(stdout,"INFO: .....................above 1, cosin-fade begins slowly, then speeds up.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Stagger approximated in c. hundredths of a sec. For more precise stagger,\n" );
- fprintf(stdout,"INFO: splice silence to start of sndfile2 & use stagger 0 (or use SUBMIX MIX).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: (Only spectral morphing will create true morph between 2 sounds).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXINTERL):
- fprintf(stdout,"INFO: INTERLEAVE MONO FILES TO MAKE MULTICHANNEL OUTFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: First sndfile goes to left channel of stereo, (or channel 1 of 4), etc.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIXINBETWEEN):
- fprintf(stdout,"INFO: GENERATE A SET OF SOUNDS IN-BETWEEN THE 2 INPUT SOUNDS\n");
- fprintf(stdout,"INFO: THROUGH WEIGHTED MIXES OF THE INPUT SOUNDS,\n");
- fprintf(stdout,"INFO: FROM MOSTLY SOUND1 TO MOSTLY SOUND2.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is your GENERIC name for the output sndfiles.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: New soundfiles will be called name001 name002 etc\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: AUTOMATIC......program generates amplitude ratios for the new sounds automatically\n");
- fprintf(stdout,"INFO: ...............and FILES BETWEEN is number of inbetween outfiles to produce.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIXING RATIOS..Mixing Ratios is a ratio, or a list of ratios in a textfile.\n");
- fprintf(stdout,"INFO: ...............These are the level of file2 RELATIVE to file 1,for each new outfile,\n");
- fprintf(stdout,"INFO: ...............as FRACTIONS (Range 0-1)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Ensure NONE of the files to be created already exists!!\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_CREATE):
- fprintf(stdout,"INFO: CREATE AN ENVELOPE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In mode BINARY OUTPUT....If you specify starttime > 0,\n");
- fprintf(stdout,"INFO: .........................envelope values from 0 to starttime hold your startlevel.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In mode TEXTFILE OUTPUT..File starts at time you specify.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required Data is a textfile with the following format:\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: time [e]level time [e]level ......\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: where time-level pairs can be repeated as often as desired.\n");
- fprintf(stdout,"INFO: Level is a number between 0 and 1, or a dB value between -96 and 0\n");
- fprintf(stdout,"INFO: (you must write 'dB' if you want dB).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If preceded by an 'e', envelope rises[falls] exponentially to that level.\n");
- fprintf(stdout,"INFO: Default is linear rise[fall].\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Times are in seconds, must increase through the file,\n");
- fprintf(stdout,"INFO: and be separated by a minimum amount to accomodate splices\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_EXTRACT):
- fprintf(stdout,"INFO: EXTRACT ENVELOPE FROM AN INPUT SOUNDFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DATA REDUCTION determines quantity v. accuracy of data written to brkfile\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_PROPOR):
- fprintf(stdout,"INFO: IMPOSE ENVELOPE, PROPORTIONALLY, ON AN INPUT SOUNDFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE IN TEXTFILE (envelope level values 0 - 32767)\n");
- fprintf(stdout,"INFO: the time values are scaled to run from time 0 to the duration of the soundfile.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_IMPOSE):
- fprintf(stdout,"INFO: IMPOSE AN ENVELOPE ON AN INPUT SOUNDFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ABOUT THE MODES----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENV FROM OTHER SNDFILE\n");
- fprintf(stdout,"INFO: ENV IN BINARY FILE......In these modes the whole sndfile is enveloped.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENV IN TEXTFILE\n");
- fprintf(stdout,"INFO: ENV IN DB TEXTFILE......In these modes, brkpnt may start (and end) at any time in file,\n");
- fprintf(stdout,"INFO: ........................effectively editing it. Must have at least 2 brkpnt pairs.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_REPLACE):
- fprintf(stdout,"INFO: REPLACE THE EXISTING ENVELOPE OF AN INPUT SOUNDFILE\n");
- fprintf(stdout,"INFO: WITH A DIFFERENT ENVELOPE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In all cases, the entire sndfile is enveloped\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Especially useful for restoring the amplitude contour of a sound\n");
- fprintf(stdout,"INFO: after filtering with time-varying Q-value.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_BRKTOENV):
- fprintf(stdout,"INFO: CONVERT A (TEXT) BRKPNT ENVELOPE TO A BINARY ENVELOPE FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If brkpnt starttime > zero, new envelope will start from zero,\n");
- fprintf(stdout,"INFO: holding the brktable startval as far as first brktable time.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_ENVTOBRK):
- fprintf(stdout,"INFO: CONVERT A BINARY ENVELOPE FILE TO A (TEXT) BRKPNT ENVELOPE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DATA REDUCTION determines quantity v. accuracy of data written to brkfile\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_ENVTODBBRK):
- fprintf(stdout,"INFO: CONVERT BINARY ENVELOPE FILE TO (TEXT) BRKPNT ENVELOPE WITH dB VALUES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DATA REDUCTION determines quantity v. accuracy of data written to brkfile\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_DOVETAILING):
- fprintf(stdout,"INFO: DOVETAIL SNDFILE BY ENVELOPING THE START AND END OF IT.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STANDARD linear or exponential fades\n");
- fprintf(stdout,"INFO: DOUBLE STRENGTH doubly exponential fades\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INFADE-DUR.......is duration of start-of-file fade-in.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTFADE-DUR......is duration of end-of-file fade-out.\n");
- fprintf(stdout,"INFO: .................Infade-dur and Outfade-dur must not overlap each another.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INFADE LINEAR....sets start fade to be linear: (default: exponential fade).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTFADE LINEAR....sets end fade to be linear: (default: exponential fade).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME TYPE ........ 0 takes param values in SECONDS: (default)\n");
- fprintf(stdout,"INFO: 1 takes param values in SAMPLES:\n");
- fprintf(stdout,"INFO: 2 takes param values in GROUPED_SAMPLES:\n");
- fprintf(stdout,"INFO: (e.g. in stereo, each sample-pair counts as 1 item)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_CURTAILING):
- fprintf(stdout,"INFO: CURTAIL SNDFILE BY FADING TO ZERO AT SOME TIME WITHIN IT.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START AND END : Give start and end times of fade.\n");
- fprintf(stdout,"INFO: START AND DUR : Give start time of fade, and its duration.\n");
- fprintf(stdout,"INFO: START OF FADE TO END : Give start time of fade only (fade proceeds to end of file).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The other modes are similar, with more pronounced fades...\n");
- fprintf(stdout,"INFO: START AND END, DOUBLE STRENGTH\n");
- fprintf(stdout,"INFO: START AND DUR, DOUBLE STRENGTH\n");
- fprintf(stdout,"INFO: START OF FADE TO END, DOUBLE STRENGTH\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LINEAR FADE...sets fade to be linear: (default: exponential fade).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME TYPE ........ 0 takes param values in SECONDS: (default)\n");
- fprintf(stdout,"INFO: 1 takes param values in SAMPLES:\n");
- fprintf(stdout,"INFO: 2 takes param values in GROUPED_SAMPLES:\n");
- fprintf(stdout,"INFO: (e.g. in stereo, each sample-pair counts as 1 item)\n");
- break;
- case(ENV_WARPING):
- case(ENV_RESHAPING):
- case(ENV_REPLOTTING):
- switch(process) {
- case(ENV_WARPING):
- fprintf(stdout,"INFO: MODIFY THE ENVELOPE OF A SOUNFILE\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_RESHAPING):
- fprintf(stdout,"INFO: MODIFY THE ENVELOPE OF A BINARY ENVELOPE FILE\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_REPLOTTING):
- fprintf(stdout,"INFO: MODIFY THE ENVELOPE OF A (TEXT) BRKPNT ENVELOPE FILE\n");
- fprintf(stdout,"INFO: \n");
- break;
- }
- fprintf(stdout,"INFO: --------------------------- MODES ----------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NORMALISE----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Expand envelope so that highest point has max possible value.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME-REVERSE-------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Reverse the timing of the envelope.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXAGGERATE---------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Exaggerate the envelope contour.\n");
- fprintf(stdout,"INFO: Exaggeration less than 1, Low envelope vals boosted\n");
- fprintf(stdout,"INFO: Exaggeration greater than 1, High envelope vals boosted.\n");
- fprintf(stdout,"INFO: Value 1, gives no change.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ATTENUATE----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Change level of envelope by the specified multiplier.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LIFT ALL-----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Lift entire envelope level by the specified amount.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME-STRETCH-------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Timestretch the envelope by the specified multiplier.\n");
- fprintf(stdout,"INFO: Note that a timestretch of less than 1 timeshrinks the envelope.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FLATTEN------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Flatten envelope contour.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GATE---------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Envelope values below the gate value are set to zero.\n");
- fprintf(stdout,"INFO: Smoothing zeroes low-level envelope chunks less than 'smoothing' windows long.\n");
- fprintf(stdout,"INFO: A value of zero turns off the smoothing effect.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INVERT-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Levels below Gate-level are set to zero. All other levels,\n");
- fprintf(stdout,"INFO: above & below Mirror value, are inverted to other side of mirror.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LIMIT--------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Levels above Threshold value squeezed down so envelope maxamp becomes Limit.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CORRUGATE----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Take all troughs in the envelope to zero.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXPAND-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Levels below Gate are set to zero. Other levels squeezed upwards\n");
- fprintf(stdout,"INFO: so minimum level becomes Threshold value.\n");
- fprintf(stdout,"INFO: Smoothing zeroes low-level envelope chunks less than 'smoothing' windows long.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TRIGGER BURSTS-----------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Create a new envelope of sudden on-bursts, from existing envelope,\n");
- fprintf(stdout,"INFO: triggered by the rate of rise of the current envelope.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Data file is a breakpoint envelope for the (triggered) bursts themselves.\n");
- fprintf(stdout,"INFO: To trigger, average-level must be greater than Gate level,\n");
- fprintf(stdout,"INFO: loudness-step must be greater than Min Trigger Level-rise,\n");
- fprintf(stdout,"INFO: and it must have duration less than Max Trigger Duration\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TO CEILING---------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Force envelope up to its maximum level, everywhere.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DUCKED-------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Create ducking envelope from existing envelope.\n");
- fprintf(stdout,"INFO: This can be used to create an envelope to apply to another sound\n");
- fprintf(stdout,"INFO: which is to be mixed with the original sound.\n");
- fprintf(stdout,"INFO: With Envelope WARPING:\n");
- fprintf(stdout,"INFO: When input envelope exceeds Threshold, output envelope is reduced\n");
- fprintf(stdout,"INFO: to Gate level. Elsewhere it is unchanged.\n");
- fprintf(stdout,"INFO: With Envelope RESHAPING or REPLOTTING:\n");
- fprintf(stdout,"INFO: When input envelope exceeds Threshold, output envelope takes\n");
- fprintf(stdout,"INFO: Gate level. Elsewhere it gives unity gain.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: COUNT PEAKS ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Count peaks in the envelope.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_DBBRKTOENV):
- fprintf(stdout,"INFO: CONVERT (TEXT) BRKPNT FILE WITH dB VALS TO BINARY ENVELOPE FILE\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_DBBRKTOBRK):
- fprintf(stdout,"INFO: CONVERT (TEXT) BRKPNT FILE WITH dB VALS TO GAIN VALS (0-1)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_BRKTODBBRK):
- fprintf(stdout,"INFO: CONVERT A (TEXT) BRKPNT FILE WITH GAIN (0-1) VALS TO dB VALS\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_SWELL):
- fprintf(stdout,"INFO: CAUSE SOUND TO FADE IN TO AND OUT FROM A PEAK MOMENT\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LINEAR FADE causes fades in and out to be linear: (default exponential).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_ATTACK):
- fprintf(stdout,"INFO: EMPHASIZE THE ATTACK OF A SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GAIN................Amplification of attack point.\n");
- fprintf(stdout,"INFO: ....................For strong attack,\n");
- fprintf(stdout,"INFO: ....................reduce overall level of src before processing.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ATTACK ONSET DUR....Attack onset duration (MS).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ATTACK DECAY DUR....Attack decay duration (MS).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LINEAR SLOPES.......sets fades to be linear (default exponential).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: and in various MODES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GATE LEVEL..........Level for attack point to be recognised.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: APPROX ATTACK TIME..Approx time in sound of attack point,in secs.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXACT ATTACK TIME...Exact time in sound of attack point,in secs.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_PLUCK):
- fprintf(stdout,"INFO: PLUCK START OF SOUND (MONO FILES ONLY)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STARTSAMP..Sample, in src sound, at which pluck will END:\n");
- fprintf(stdout,"INFO: ...........must be a sample AT A ZERO_CROSSING...\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: WAVELEN....no of (absolute) samples in pluck wavelen: \n");
- fprintf(stdout,"INFO: ...........set to same as src_signal's wavelen immediately after STARTSAMP\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ATKCYCLES..no of wavecycles in pluck-attack.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DECAYRATE..rate of decay of the pluck_attack.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ENV_TREMOL):
- fprintf(stdout,"INFO: TREMOLO A SOUND\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FRQWISE....Interpolate linearly between frqs in any frq brktable (default).\n");
- fprintf(stdout,"INFO: PITCHWISE..Interpolate logarithmically (like pitch). (Care with zero frqs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TREMOLO FREQUENCY..is frequency of the tremolo vibration itself.\n");
- fprintf(stdout,"INFO: TREMOLO DEPTH......amplitude depth of tremolo.\n");
- fprintf(stdout,"INFO: OVERALL GAIN.......Overall signal gain, or envelope.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SIMPLE_TEX):
- case(GROUPS):
- case(DECORATED):
- case(PREDECOR):
- case(POSTDECOR):
- case(ORNATE):
- case(PREORNATE):
- case(POSTORNATE):
- case(MOTIFS):
- case(MOTIFSIN):
- case(TIMED):
- case(TGROUPS):
- case(TMOTIFS):
- case(TMOTIFSIN):
- fprintf(stdout,"INFO: TEXTURE MADE FROM ONE OR SEVERAL INPUT SOUND FILES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: TYPES OF TEXTURE--------------------------------------------------------------\n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Texture can be SIMPLE,GROUPED,DECORATED,PREDECORATED,POSTDECORATED,\n");
- fprintf(stdout,"INFO: ORNATE,PREORNATE,POSTORNATE, or made up of MOTIFS\n");
- fprintf(stdout,"INFO: OR\n");
- fprintf(stdout,"INFO: a texture where sound-entries are SPECIFICALLY TIMED\n");
- fprintf(stdout,"INFO: and either simple,grouped, or made from motifs.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ORNAMENTS & MOTIFS........have user-specified pitch-shapes.\n");
- fprintf(stdout,"INFO: DECORATIONS & GROUPS......have random pitch-shapes.\n");
- fprintf(stdout,"INFO: DECORATIONS & ORNAMENTS...decorate the user-specified pitch-sequence.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: HARMONIC TYPES OF TEXTURE------------------------------------------------------\n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Textures are specified WITHIN A (possibly varying) RANGE OF PITCHES\n");
- fprintf(stdout,"INFO: and within that range, the chosen pitches may be\n");
- fprintf(stdout,"INFO: entirely RANDOM, on a HARMONIC SET (using pitches given),\n");
- fprintf(stdout,"INFO: on a HARMONIC FIELD (uses 8va transpositions of pitches given),\n");
- fprintf(stdout,"INFO: or on HARMONIC SETS, OR FIELDS, WHICH CHANGE THROUGH TIME.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: First note (only) of motifs are guaranateed to be on a harmonic set(field) note\n");
- fprintf(stdout,"INFO: except in MOTIFS IN HF, where motifs notes are forced onto set (field) notes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: PARAMETERS FOR TEXTURE---------------------------------------------------------\n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: (** starred items CANNOT vay in time)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTPUT DURATION...........**.(min) duration of outfile\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------- TIMING PARAMETERS -----------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EVENT PACKING ...............(average) time between event onsets.\n");
- fprintf(stdout,"INFO: SKIPTIME BETWEEN GROUP,MOTIF ONSETS..(average) time between group,motif onsets.\n");
- fprintf(stdout,"INFO: EVENT SCATTER................randomisation of event, group or motif onsets.\n");
- fprintf(stdout,"INFO: PAUSE BEFORE LINE REPEATS....time between last event of line & start of repetition.\n");
- fprintf(stdout,"INFO: TIME GRID UNIT...............minstep(MS) quantised timegrid (for event starttimes)\n");
- fprintf(stdout,"INFO: TIME GRID FOR NOTEGROUPS.....a timegrid (MS) applying WITHIN groups (for grouped textures)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------- SOUND PARAMETERS -----------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1ST SND-IN-LIST TO USE,LAST..1st,last snd to use,from listed input sounds.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------- LOUDNESS PARAMETERS -----------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN EVENT GAIN, MAX..........min & max level of input events\n");
- fprintf(stdout,"INFO: MIN EVENT SUSTAIN, MAX.......min & max sustain-time of events.\n");
- fprintf(stdout,"INFO: OVERALL ATTENUATION..........overall attenuation of the output\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: and for grouped textures\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GROUP AMPLITUDE CHANGE.......amplitude change within grouped-events\n");
- fprintf(stdout,"INFO: GROUP AMPCONTOUR TYPE.....**.amplitude contour within grouped-events\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------- PITCH PARAMETERS -----------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN PITCH, MAX...............min & max pitch(MIDI): (gives transposition of input)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------- SPATIAL PARAMETERS -----------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NB: If STEREO source files are USED, SPATIALISATION parameters are IGNORED\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPATIAL POSITION.............centre of output sound-image.\n");
- fprintf(stdout,"INFO: SPATIAL SPREAD...............spatial-spread of texture events.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: and for grouped textures\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GROUP SPATIALISATION TYPE.**.spatialisation of event within groups\n");
- fprintf(stdout,"INFO: GROUP SPATIALISATION RANGE...spatial range within event-groups\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------- OTHER GROUP PARAMETERS -----------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN GROUP-PACKING-TIME,MAX...smallest,largest number of events in groups\n");
- fprintf(stdout,"INFO: MIN GROUP PITCHRANGE, MAX....min,max pitchrange, in semitones, of events in groups\n");
- fprintf(stdout,"INFO: MIN HFIELD NOTES RANGE,MAX...min,max number of hfield-notes range in groups\n");
- fprintf(stdout,"INFO: MIN MOTIF-DUR-MULTIPLIER,MAX min,max multiplier of input duration of motif\n");
- fprintf(stdout,"INFO: PITCH CENTRING............**.how decor pitches centre on line pitches\n");
- fprintf(stdout,"INFO: FIXED TIMESTEP IN GROUP......notes in a group run at a fixed tempo.\n");
- fprintf(stdout,"INFO: FIXED NOTE-SUSTAIN IN MOTIFS all notes in motif have same sustain-time as first.\n");
- fprintf(stdout,"INFO: SCATTER DECOR INSTRS.........orns not confined to instr of ornd-note.\n");
- fprintf(stdout,"INFO: DECORS TO HIGHEST NOTE.......orns on highest note of any chord: default,1st note\n");
- fprintf(stdout,"INFO: DECORS ON EVERY NOTE.........ornaments on all notes of any chord.\n");
- fprintf(stdout,"INFO: DISCARD ORIGINAL LINE........after decoration\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------- OTHER PARAMETERS -----------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEED.........................same seed-number: reproducible output (0: not so)\n");
- fprintf(stdout,"INFO: PLAY ALL OF INSOUND..........always play whole input-sound (ignoring dur vals).\n");
- fprintf(stdout,"INFO: PLAY FILES CYCLICALLY........play sounds in input order (always uses ALL input sounds).\n");
- fprintf(stdout,"INFO: RANDOMLY PERMUTE EACH CYCLE..permute order of sounds, in each complete cycle.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: SOME SPECIAL PARAMETER VALUES---------------------------------------------------\n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GROUP SPATIALISATION TYPE VALUES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 0:still.................1:scattered(default)........2:towards-texture-centre\n");
- fprintf(stdout,"INFO: 3:away-from-centre......4:follow-texmotion..........5:contrary-to-motion\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 4 & 5 only function if spatial position varies in time..\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GROUP AMPCONTOUR TYPE VALUES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 0:mixed(default)\n");
- fprintf(stdout,"INFO: 1:cresc..............2:flat...............3:decresc..............4:cresc_or_flat\n");
- fprintf(stdout,"INFO: 5:cresc_or_decresc...6:decresc_or_flat....[7:directed_to_event....8:directed_or_flat]\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCH CENTRING VALUES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: how decoration pitches centre on decorated line pitches\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 0: centred(default)\n");
- fprintf(stdout,"INFO: 1: above.................2: below...............3: centred_and_above\n");
- fprintf(stdout,"INFO: 4: centred_and_below.....5: above_and_below.....6: all_types\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In all cases except 0, pitchrange shifts to tally with line pitch\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: NOTEDATA IS A TEXTFILE CONTAINING-----------------------------------------------\n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LINE 1: list of (possibly fictional) MIDI pitch of each input snd.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Then, where motifs, or event timings, or harmonic sets (fields) are required,\n");
- fprintf(stdout,"INFO: or a pitchline is required for ornamenting or decorating..\n");
- fprintf(stdout,"INFO: each subsequent group of lines specifies a NOTELIST\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: NOTELISTS MUST BE IN THIS ORDER-------------------------------------------------\n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Notelist of notes in any timing set\n");
- fprintf(stdout,"INFO: Notelist of notes in any line TO BE ornamented or decorated\n");
- fprintf(stdout,"INFO: Notelist of notes in any harmonic set(s) or field(s) specified.\n");
- fprintf(stdout,"INFO: Notelist(s) of notes in any ornament(s) or motif(s) specified.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: For more than one harmonic set (field),\n");
- fprintf(stdout,"INFO: data should specify chords, placed at appropriate times (see below).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: NOTELISTS HAVE THE FOLLOWING FORMAT---------------------------------------------\n");
- fprintf(stdout,"INFO: --------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: first line: #N\n");
- fprintf(stdout,"INFO: other lines: time(SECS) infile_no pitch(MIDI) amp(MIDI) dur(SECS)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: where N = number of notes (and therefore lines) in notelist to follow,\n");
- fprintf(stdout,"INFO: and times in notelist must never decrease.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MOD_LOUDNESS):
- fprintf(stdout,"INFO: ADJUST LOUDNESS OF A SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GAIN:.............adjust level by factor GAIN.\n");
- fprintf(stdout,"INFO: GAINdB:...........adjust level by factor GAIN dB.\n");
- fprintf(stdout,"INFO: NORMALISE:.. .....force level (if necessary) to given value.\n");
- fprintf(stdout,"INFO: FORCE LEVEL:......force level to given value.\n");
- fprintf(stdout,"INFO: BALANCE:..........force max level of file1 to max level of file 2.\n");
- fprintf(stdout,"INFO: INVERT PHASE:...Invert phase of file.\n");
- fprintf(stdout,"INFO: LOUDEST:..........Find loudest sound, and its level.\n");
- fprintf(stdout,"INFO: EQUALISE:..........Force level of all sounds to that of loudest.\n");
- fprintf(stdout,"INFO: PROPORTIONAL:......adjust level following envelope, which is stretched to match duration of infile.\n");
- fprintf(stdout,"INFO: PROPORTIONAL dB:...adjust level following dB envelope, which is stretched to match duration of infile.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MOD_SPACE):
- fprintf(stdout,"INFO: CREATE OR ALTER DISTRIBUTION OF SOUND IN STEREO SPACE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PAN:.........Position or move mono sound in a stereo field.\n");
- fprintf(stdout,"INFO: .............-1 Hard Left : 0 Centre : 1 Hard Right\n");
- fprintf(stdout,"INFO: .............< -1 hard left & attenuated : > 1 hard right & attenuated.\n");
- fprintf(stdout,"INFO: .............Prescale reduces input level to avoid clipping.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIRROR:......Invert stereo positions in a stereo file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIRROR PAN:..Invert stereo positions in a pan data file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NARROW:......Narrow the stereo image of a sound.\n");
- fprintf(stdout,"INFO: ............. 1 leaves stereo image as it is.\n");
- fprintf(stdout,"INFO: ............. .5 narrows stereo image by half.\n");
- fprintf(stdout,"INFO: ............. 0 converts stereo image to mono.\n");
- fprintf(stdout,"INFO: ............. -ve vals work similarly, but also invert stereo image.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SCALED_PAN):
- fprintf(stdout,"INFO: DISTRIBUTE SOUND IN STEREO SPACE, WITH BREAKPOINT DATA TIME_SCALED TO SOUNDFILE DURATION.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PAN:.........-1 Hard Left : 0 Centre : 1 Hard Right\n");
- fprintf(stdout,"INFO: .............< -1 hard left & attenuated : > 1 hard right & attenuated.\n");
- fprintf(stdout,"INFO: PRESCALE .....reduces input level to avoid clipping.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SIN_TAB):
- fprintf(stdout,"INFO: GENERATE A SINUSOIDALLY PANNING PAN-CONTROL FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CYCLE LENGTH....is duration of one complete sinusoidal pan cycle\n");
- fprintf(stdout,"INFO: PAN WIDTH.......is the width of the pan, from 0 to full width,1\n");
- fprintf(stdout,"INFO: DURATION........is the duration of the output data file.\n");
- fprintf(stdout,"INFO: QUANTISATION....is time step between successive space-positions specified in datafile.\n");
- fprintf(stdout,"INFO: STARTPHASE......is the angular position at which the pan starts.\n");
- fprintf(stdout,"INFO: 0 starts at centre and moves right.\n");
- fprintf(stdout,"INFO: 90 starts at right.\n");
- fprintf(stdout,"INFO: 180 starts at centre and moves left.\n");
- fprintf(stdout,"INFO: 270 starts at left.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CYCLE LENGTH and PAN WIDTH may vary over time\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MOD_PITCH):
- fprintf(stdout,"INFO: CHANGE THE SPEED & PITCH OF THE SRC SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) SPEED CHANGE...............also changing sound pitch.\n");
- fprintf(stdout,"INFO: 2) SPEED CHANGE IN SEMITONES..speed shift given in semitones.\n");
- fprintf(stdout,"INFO: 3) VARISPEED INFO.............see how outtimes relate to intimes.\n");
- fprintf(stdout,"INFO: 4) VARISPEED SEMITONES INFO...see how outtimes relate to intimes.\n");
- fprintf(stdout,"INFO: 5) ACCELERATE.................cause sound to accelerate.\n");
- fprintf(stdout,"INFO: 6) VIBRATO....................add vibrato to sound.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In MODES 1-4 brkpnt times are infiletimes, unless flagged as outfiletimes.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In MODE 5....Acceleration is multiplication of speed reached at goaltime.\n");
- fprintf(stdout,"INFO: .............If infile not exhausted by goaltime, outfile continues to accelerate.\n");
- fprintf(stdout,"INFO: .............If infile finishes before goaltime, outfile won't reach accel val.\n");
- fprintf(stdout,"INFO: ............ Starttime is time in input/output file at which acceleration begins.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: In MODE 6....Cycles-per-second is rate of vibrato shaking,\n");
- fprintf(stdout,"INFO: .............and Depth is vibrato depth in (possibly fractional) semitones.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MOD_REVECHO):
- fprintf(stdout,"INFO: CREATE ECHO OR REVERBERATION OR RESONANCE AROUND A SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DELAY..........with feedback.\n");
- fprintf(stdout,"INFO: VARYING DELAY..low frequency oscillator varying delay time.\n");
- fprintf(stdout,"INFO: STADIUM ECHO...create echos like stadium P.A.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DELAYED SIGNAL IN MIX.....0 gives 'dry' result.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FEEDBACK..................gives resonance related to delay time.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOFRQ MODULATION DEPTH....is the depth of delay-variation sweep.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODULATION FRQ............freq of sweep:\n");
- fprintf(stdout,"INFO: ..........................-ve frqs give random sweeping.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PHASE OF MODULATION.......determines where (high,low) sweep begins.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DELAY OF MODULATION...... determines when sweep begins.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LENGTH OF TAIL............to allow delayed signal to decay to zero.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INPUT PRESCALING..........prescales input level, to avoid overload.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RANDOM SEED...............Nonzero value gives reproducible output\n");
- fprintf(stdout,"INFO: ..........................(with same seed) for random oscillations.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INVERT DELAYED SIGNAL.....for phasing effects.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ------------------ AND FOR STADIUM ---------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INPUT GAIN................Attenuates signal input to stadium.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LEVEL LOSS WITH DISTANCE..across stadium.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STADIUM SIZE MULTIPLIER...Multiplies average time between echos.\n");
- fprintf(stdout,"INFO: ..........................(Default average echo time = 0.1 secs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NUMBER OF ECHOS...........Number of stadium echos produced.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MOD_RADICAL):
- fprintf(stdout,"INFO: RADICAL CHANGES TO THE SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: REVERSE: Sound plays backwards.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SHRED: Shred sound within its existing duration.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NUMBER OF SHREDS. ...number of repeats of shredding process.\n");
- fprintf(stdout,"INFO: AVERAGE CHUNKLENGTH..average length of chunks to cut & permute.\n");
- fprintf(stdout,"INFO: CUT SCATTER..........randomisation of cuts (0 to K): default 1.\n");
- fprintf(stdout,"INFO: .....................where K = total number of chunks (snd-duration/chunklen).\n");
- fprintf(stdout,"INFO: .....................If scatter = 0: snd reordered without shredding.\n");
- fprintf(stdout,"INFO: .....................NB: chunklen*scatter MUST be smaller than snd buffer.\n");
- fprintf(stdout,"INFO: .....................NB2: If Input sound > internal buffer len,\n");
- fprintf(stdout,"INFO: .....................each buffer of sound shredded independently.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SCRUB: BACK & FORTH, AS IF HANDWINDING OVER A TAPE-HEAD.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MINIMUM OUTPUT DURATION........min duration of outfile required.\n");
- fprintf(stdout,"INFO: LOWEST DOWNWARD TRANSPOSITION..(semitones).\n");
- fprintf(stdout,"INFO: HIGHEST UPWARD TRANSPOSITION...(semitones).\n");
- fprintf(stdout,"INFO: SCRUBS START NO LATER THAN.....start before time 'start' secs.\n");
- fprintf(stdout,"INFO: SRCUBS END NO EARLIER THAN.....end after time 'end' secs.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOSE RESOLUTION: CONVERT TO LOWER SRATE, OR BIT-RESOLUTION.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BIT_RESOLUTION....range(1 - 16): default 16-bit.\n");
- fprintf(stdout,"INFO: SRATE_DIVISION....range(1-256): default 1 (normal)\n");
- fprintf(stdout,"INFO: entered svalue will be rounded to a power of 2.\n");
- fprintf(stdout,"INFO: Works on MONO FILES ONLY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RING MODULATE AGAINST GIVEN FREQUENCY, CREATING SIDEBANDS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CROSS MODULATE TWO INFILES CREATING COMPLEX SIDEBANDS.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(BRASSAGE):
- fprintf(stdout,"INFO: GRANULAR RECONSTITUTION OF SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIMESHRINK..............Speed of advance in infile, relative to outfile. (>=0)\n");
- fprintf(stdout,"INFO: ........................Inverse of timestretch, (& permits infinite timestretch).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DENSITY.................Amount of grain overlap (>0 : <1 leaves intergrain silence)\n");
- fprintf(stdout,"INFO: ........................Extremely small values will cease to perform predictably.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GRAINSIZE...............grainsize in MS (must be > 2 * splicelen)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCHSHIFT..............is pitchshift of grains in +|- (fractions of) semitones.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOUDNESS RANGE..........is range of gain on grains.\n");
- fprintf(stdout,"INFO: ........................Use only if amp is to vary (over range &/or through time)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STARTSPLICE.............length of startsplices on grains,in MS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENDSPLICE...............length of endsplices on grains,in MS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPATIAL POSITION........stereo position in outputfile. 0=L,1=R.\n");
- fprintf(stdout,"INFO: ........................Space flag on MULTICHANNEL input, mixes it to mono before acting.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEARCHRANGE.............for nextgrain, before current 'now' in infile (Default 0 MS).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SCATTER.................Randomisation of grain position (Range 0-1).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTPUT LENGTH...........max outfile length (if end of data not reached).\n");
- fprintf(stdout,"INFO: ........................Set to ZERO (Default) for this parameter to be IGNORED.\n");
- fprintf(stdout,"INFO: ........................BUT if TIMESHRINK is ANYWHERE 0: OUTLENGTH must be given.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHANNEL TO EXTRACT......Positive value is channel to extract, and process.\n");
- fprintf(stdout,"INFO: ........................Zero (Default) processes all channels.\n");
- fprintf(stdout,"INFO: ........................Negative values create spatialisation > stereo.\n");
- fprintf(stdout,"INFO: ........................e.g. -5 creates a 5-channel spatialised output.\n");
- fprintf(stdout,"INFO: ........................NB spatialisation only happens if \"spatial position\" is itself non-zero.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCH NOT INTERPOLATED..No interpolation for transpose,(quick, dirty).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIMESHRINK LIMIT,\n");
- fprintf(stdout,"INFO: DENSITY LIMIT, ETC..... allow range of values to be specified for any of these params.\n");
- fprintf(stdout,"INFO: ........................e.g. With Density & Density Limit set\n");
- fprintf(stdout,"INFO: ........................random density chosen between these values.\n");
- fprintf(stdout,"INFO: ........................Density & Density Limit can THEMSELVES vary through time.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SAUSAGE):
- fprintf(stdout,"INFO: GRANULAR RECONSTITUTION OF SEVERAL SOUNDFILES, SCRAMBLED TOGETHER.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIMESHRINK..............Speed of advance in infiles, relative to outfile. (>=0)\n");
- fprintf(stdout,"INFO: ........................Inverse of timestretch, (& permits infinite timestretch).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DENSITY.................Amount of grain overlap (>0 : <1 leaves intergrain silence)\n");
- fprintf(stdout,"INFO: ........................Extremely small values will cease to perform predictably.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GRAINSIZE...............grainsize in MS (must be > 2 * splicelen)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCHSHIFT..............is pitchshift of grains in +|- (fractions of) semitones.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LOUDNESS RANGE..........is range of gain on grains.\n");
- fprintf(stdout,"INFO: ........................Use only if amp is to vary (over range &/or through time)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STARTSPLICE.............length of startsplices on grains,in MS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENDSPLICE...............length of endsplices on grains,in MS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPATIAL POSITION........stereo position in outputfile. 0=L,1=R.\n");
- fprintf(stdout,"INFO: ........................Space flag on MULTICHANNEL input, mixes it to mono before acting.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEARCHRANGE.............for nextgrain, before current 'now' in infile (Default 0 MS).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SCATTER.................Randomisation of grain position (Range 0-1).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTPUT LENGTH...........max outfile length (if end of data not reached).\n");
- fprintf(stdout,"INFO: ........................Set to zero (Default) for this parameter to be ignored.\n");
- fprintf(stdout,"INFO: ........................BUT if TIMESHRINK is ANYWHERE 0: OUTLENGTH must be given.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHANNEL TO EXTRACT......Causes process to work on just 1 specified channel\n");
- fprintf(stdout,"INFO: ........................of a multichannel snd. Zero (Default) processes all channels.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCH NOT INTERPOLATED..No interpolation for transpose,(quick, dirty).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIMESHRINK LIMIT,\n");
- fprintf(stdout,"INFO: DENSITY LIMIT ETC.......allow range of values to be specified for any of these params.\n");
- fprintf(stdout,"INFO: ........................e.g. With Density & Density Limit set\n");
- fprintf(stdout,"INFO: ........................random density chosen between these values.\n");
- fprintf(stdout,"INFO: ........................Density & Density Limit can THEMSELVES vary through time.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(PVOC_ANAL):
- fprintf(stdout,"INFO: CONVERT SOUNDFILE TO SPECTRAL FILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STANDARD ANALYSIS\n");
- fprintf(stdout,"INFO: OUTPUT SPECTRAL ENVELOPE VALS ONLY\n");
- fprintf(stdout,"INFO: OUTPUT SPECTRAL MAGNITUDE VALS ONLY\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ANALYSIS POINTS..(2-32768 (power of 2)): default 1024\n");
- fprintf(stdout,"INFO: .................More points give better freq resolution\n");
- fprintf(stdout,"INFO: .................but worse time-resolution (e.g. rapidly changing spectrum).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OVERLAP..........Filter overlap factor (1-4): default 3\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(PVOC_SYNTH):
- fprintf(stdout,"INFO: CONVERT SPECTRAL FILE TO SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(PVOC_EXTRACT):
- fprintf(stdout,"INFO: ANALYSE THEN RESYNTHESIZE SOUND WITH VARIOUS OPTIONS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ANALYSIS POINTS......(2-32768 (power of 2)): default 1024\n");
- fprintf(stdout,"INFO: .....................More points give better freq resolution\n");
- fprintf(stdout,"INFO: .....................but worse time-resolution (e.g. rapidly changing spectrum).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ANALWINDOW OVERLAP...Range (1-4): default 3\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SELECT A CHANNEL.....resynthesizes odd (1) or even (2) channels only\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BOTTOM RESYNTH CHAN..ignore analysis chans below this in resynth (default: 0)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TOP RESYNTH CHANNEL..ignore chans above this in resynth (dflt: highest channel)\n");
- fprintf(stdout,"INFO: .....................There is 1 channel for every 2 analysis points.\n");
- fprintf(stdout,"INFO: .....................hence Top Resynth Channel should not be > ANALYSIS POINTS/2\n");
- fprintf(stdout,"INFO: .....................To default to topmost channel, set it to ZERO.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NB If no parameters are set, the output sound will be the same as the input.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(EDIT_CUT):
- fprintf(stdout,"INFO: CUT & KEEP A SEGMENT OF A SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME OF STARTCUT..is time in infile where segment to keep begins.\n");
- fprintf(stdout,"INFO: TIME OF ENDCUT....is time in infile where segment to keep ends.\n");
- fprintf(stdout,"INFO: SPLICELEN.........splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
- fprintf(stdout,"INFO: \n");
- break;
- case(STACK):
- fprintf(stdout,"INFO: STACK TRANSPOSED COPIES OF A SOUND ON TOP OF ONE ANOTHER.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TRANSPOSITION DATA transposition in semitones.\n");
- fprintf(stdout,"INFO: ...................If numeric (e.g. N semitones) stack consists of original sound\n");
- fprintf(stdout,"INFO: ...................plus original sound transposed by N, 2N, 3N etc\n");
- fprintf(stdout,"INFO: ...................If data in a file, stack consists of copies of original source\n");
- fprintf(stdout,"INFO: ...................transposed by the values in the file.\n");
- fprintf(stdout,"INFO: NUMBER OF ITEMS....Number of (transposed) copies to mix.\n");
- fprintf(stdout,"INFO: STACK LEAN.........How much louder is highest sound in stack than lowest sound\n");
- fprintf(stdout,"INFO: ATTACK TIME........At what time (in the original file) should the copies be synchronised.\n");
- fprintf(stdout,"INFO: OVERALL GAIN.......Overall gain applied to the output stack\n");
- fprintf(stdout,"INFO: HOW MUCH OF OUTPUT.......What proportion of the output to generate\n");
- fprintf(stdout,"INFO: (if less than 1.0, output will cut off abruptly (click)\n");
- fprintf(stdout,"INFO: \n");
- case(EDIT_CUTMANY):
- fprintf(stdout,"INFO: CUT & KEEP SEVERAL SPECIFIED SEGMENTS OF A SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CUT TIMES.........Start and end times for each cut segment, in a file\n");
- fprintf(stdout,"INFO: SPLICELEN.........splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
- fprintf(stdout,"INFO: \n");
- break;
- case(EDIT_CUTEND):
- fprintf(stdout,"INFO: CUT & KEEP END PORTION OF A SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LENGTH TO KEEP..ending at end of input sound.\n");
- fprintf(stdout,"INFO: SPLICELEN.......splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
- fprintf(stdout,"INFO: \n");
- break;
- case(EDIT_ZCUT):
- fprintf(stdout,"INFO: CUT & KEEP SEGMENT OF MONO SOUND, CUTTING AT ZERO-CROSSINGS (NO SPLICES).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME OF STARTCUT..(approx) time in infile where segment to keep begins.\n");
- fprintf(stdout,"INFO: TIME OF ENDCUT....(approx) time in infile where segment to keep ends.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MANY_ZCUTS):
- fprintf(stdout,"INFO: CUT & KEEP SEVERAL SEGMENT OF A MONO SOUND, CUTTING AT ZERO-CROSSINGS (NO SPLICES).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CUT TIMES.........Start and end times for each cut segment, in a file.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(EDIT_EXCISE):
- fprintf(stdout,"INFO: DISCARD SPECIFIED CHUNK OF SOUND, CLOSING UP THE GAP.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME OF STARTCUT..starttime of excision.\n");
- fprintf(stdout,"INFO: TIME OF ENDCUT....endtime of excision.\n");
- fprintf(stdout,"INFO: SPLICELEN.........splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
- fprintf(stdout,"INFO: \n");
- break;
- case(EDIT_EXCISEMANY):
- fprintf(stdout,"INFO: DISCARD SPECIFIED CHUNKS OF A SOUND, CLOSING UP THE GAPS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXCISEFILE..is a texfile with (paired) start & end times of chunks\n");
- fprintf(stdout,"INFO: ............to be removed. These must be in increasing time order.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPLICELEN...splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
- fprintf(stdout,"INFO: \n");
- break;
- case(EDIT_INSERT):
- fprintf(stdout,"INFO: INSERT A 2nd SOUND INTO AN EXISTING SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INSERTION TIME..where 2nd file inserted into 1st.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPLICELEN.......splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INSERT LEVEL....gain multiplier on inserted file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OVERWRITE.......overwrite 1st file with inserted file.\n");
- fprintf(stdout,"INFO: ................(default .. insertion pushes infile apart).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(EDIT_INSERT2):
- fprintf(stdout,"INFO: INSERT A 2nd SOUND INTO AN EXISTING SOUND, REPLACING A SEGEMNT OF THAT SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INSERTION TIME..where 2nd file inserted into 1st.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: END TIME OF OVERWRITE..endtime of segment in 1st file to be overwritten by insertion.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPLICELEN.......splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INSERT LEVEL....gain multiplier on inserted file.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(EDIT_INSERTSIL):
- fprintf(stdout,"INFO: INSERT SILENCE INTO AN EXISTING SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INSERTION TIME.......where silence inserted.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DURATION OF SILENCE..duration of silence\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPLICELEN............splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OVERWRITE............overwrite infile with inserted silence.\n");
- fprintf(stdout,"INFO: .....................(default .. insertion pushes infile apart).\n");
- fprintf(stdout,"INFO: RETAIN TRAILING SILENCE....retain silence written over end of file.\n");
- fprintf(stdout,"INFO: .....................(default .. rejects insertion of silence at end of file).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(EDIT_JOIN):
- fprintf(stdout,"INFO: JOIN FILES TOGETHER, ONE AFTER ANOTHER.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPLICE........duration of splices, in MS (default 15)\n");
- fprintf(stdout,"INFO: SPLICE START..splices start of first file.\n");
- fprintf(stdout,"INFO: SPLICE END....splices end of last file.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HOUSE_COPY):
- fprintf(stdout,"INFO: PRODUCE COPIES OF THE INFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: COPY ONCE\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: COPY MANY\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NUMBER OF DUPLICATES....is number of copies to produce.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IGNORE EXISTING COPIES..don't overwrite files with any of these names.\n");
- fprintf(stdout,"INFO: ........................Otherwise process HALTS on discovering\n");
- fprintf(stdout,"INFO: ........................a pre-existing file.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HOUSE_DEL):
- fprintf(stdout,"INFO: DELETE EXISTING COPIES OF A FILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If you specify the generic name 'xx',\n");
- fprintf(stdout,"INFO: Deletes any files having names xxN, where N is an integer.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CARE: No checks are made that these ARE COPIES of file xx!!\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEARCH FOR ALL COPIES...Program checks all names in numbered sequence.\n");
- fprintf(stdout,"INFO: ........................Without this flag, once a numbered file is missing,\n");
- fprintf(stdout,"INFO: ........................program checks for %d more named files before halting.\n",COPYDEL_OVERMAX);
- fprintf(stdout,"INFO: ........................With flag, program searches for all possible\n");
- fprintf(stdout,"INFO: ........................duplicate filenames. This may take some time.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HOUSE_CHANS):
- fprintf(stdout,"INFO: EXTRACT OR CONVERT CHANNELS OF SOUNDFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXTRACT A CHANNEL\n");
- fprintf(stdout,"INFO: ..........CHANNEL TO GET is channel to extract\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXTRACT ALL CHANNELS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ZERO ONE CHANNEL\n");
- fprintf(stdout,"INFO: ..........CHANNEL TO ZERO is channel to set to zero.\n" );
- fprintf(stdout,"INFO: ..........mono file goes to just one side of stereo outfile.\n");
- fprintf(stdout,"INFO: ..........stereo file has one channel zeroed out.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: STEREO TO MONO\n");
- fprintf(stdout,"INFO: ..........INVERT CHANNEL2 PHASE: inverts channel 2 phase before mixing.\n" );
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MONO TO STEREO\n");
- fprintf(stdout,"INFO: ..........Creates a 2-channel equivalent of mono infile.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HOUSE_BUNDLE):
- fprintf(stdout,"INFO: COMPARE A LIST OF FILES BY TYPE OR PROPERTIES, AND LIST CHOSEN FILES IN A TEXTFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ANY FILES........Bundle all entered files.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NON-TEXT FILES...Bundle any non-text files entered.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SAME TYPE........Bundle all non-text files of same type as first\n");
- fprintf(stdout,"INFO: .................non-text file entered. e.g. all analysis files....\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SAME PROPERTIES..Bundle all non-text files with same properties\n");
- fprintf(stdout,"INFO: .................as first non-text file entered.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SAME CHANNELS....If first non-text file entered is a soundfile,\n");
- fprintf(stdout,"INFO: .................bundle only soundfiles with same channel count.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HOUSE_SORT):
- fprintf(stdout,"INFO: SORT FILES LISTED IN A TEXTFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BY FILETYPE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Sorts files into different types.\n");
- fprintf(stdout,"INFO: Lists filenames in separate textfiles.. \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BY SAMPLE RATE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Sorts any soundfiles to different sampling rates.\n");
- fprintf(stdout,"INFO: Lists filenames in separate textfiles.. \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BY DURATION\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Sorts any soundfiles to different lengths.\n");
- fprintf(stdout,"INFO: SMALL is max size of smallest files. (secs)\n");
- fprintf(stdout,"INFO: LARGE is min size of largest files. (secs)\n");
- fprintf(stdout,"INFO: STEP is size-steps between file types. (secs)\n");
- fprintf(stdout,"INFO: Use DON'T DISPLAY TIMINGS to suppress time values in outfile.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BY LOG DURATION\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The same, except STEP is duration ratio between file types.\n");
- fprintf(stdout,"INFO: Use DON'T DISPLAY TIMINGS to suppress time values in outfile.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INTO DURATION ORDER\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Sorts any sndfiles into duration order.\n");
- fprintf(stdout,"INFO: Use DON'T DISPLAY TIMINGS to suppress time values in outfile.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FIND ROGUES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Sort out any non- or invalid soundfiles (ONLY).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HOUSE_SPEC):
- fprintf(stdout,"INFO: ALTER THE SPECIFICATION OF A SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHANGE SAMPLING RATE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: New sampling rate must be one of...\n");
- fprintf(stdout,"INFO: 48000,24000,44100,22050,32000,16000\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CONVERT SAMPLE FORMAT\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Convert from integer to float, or vice versa.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHANGE PROPERTIES OF SOUND (USE WITH CAUTION!!)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SAMPLE RATE..is the new sample rate to impose.\n");
- fprintf(stdout,"INFO: .............NB: this does NOT RESAMPLE the data.\n");
- fprintf(stdout,"INFO: .............Simply causes data to be read at different srate.\n");
- fprintf(stdout,"INFO: .............Sound has same number of samples, different duration,\n");
- fprintf(stdout,"INFO: .............and will appear to be transposed in pitch.\n");
- fprintf(stdout,"INFO: CHANNELS.....is the new channel count to impose.\n");
- fprintf(stdout,"INFO: .............NB: this does NOT RECHANNEL the data. e.g.\n");
- fprintf(stdout,"INFO: .............Stereo file set to mono will appear twice as long.\n");
- fprintf(stdout,"INFO: SAMPLE TYPE..(0=integers 1=floats) New sample type to impose.\n");
- fprintf(stdout,"INFO: .............USE ONLY TO RESTORE A CORRUPTED HEADER.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HOUSE_EXTRACT):
- fprintf(stdout,"INFO: EXTRACT SIGNIFICANT DATA FROM SNDFILES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GATED EXTRACTION.....Cut out & keep significant events from sndfile.\n");
- fprintf(stdout,"INFO: .....................in separate files.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GATE LEVEL .........level below which sounds are omitted.\n");
- fprintf(stdout,"INFO: SPLICE LENGTH.......in milliseconds (default 15ms)\n");
- fprintf(stdout,"INFO: ENDGATE LEVEL.......level below which END of sound cut off.\n");
- fprintf(stdout,"INFO: (If set at zero, defaults to GATE value).\n");
- fprintf(stdout,"INFO: THRESHOLD ..........Level within extracted event must exceed threshold,\n");
- fprintf(stdout,"INFO: if event is to be retained.(default 0)\n");
- fprintf(stdout,"INFO: RETAIN TO ..........N sectors before start of next sound-segment.(default 0)\n");
- fprintf(stdout,"INFO: ('Sectors' are envelope blocks,see EXTRACTION PREVIEW)\n");
- fprintf(stdout,"INFO: BAKTRAK ............and keep N sectors prior to gate-on, but only if\n");
- fprintf(stdout,"INFO: any segment level is above INITIAL LEVEL (see below).\n");
- fprintf(stdout,"INFO: INITIAL LEVEL.......for use with baktraking.\n");
- fprintf(stdout,"INFO: MIN DURATION........of segments to keep (secs).\n");
- fprintf(stdout,"INFO: GATE WINDOWS........Sound gates OFF only if level stays below gate\n");
- fprintf(stdout,"INFO: for (GATE_WINDOWS+1) sectors. (default 0).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXTRACTION PREVIEW...create pseudo-sndfile showing envelope of sndfile,sector by sector.\n");
- fprintf(stdout,"INFO: .....................View this file to choose parameters for GATED EXTRACTION.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TOP AND TAIL.........Remove low level signal from start and end of a sound.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GATE LEVEL .....is level ABOVE which signal is accepted.\n");
- fprintf(stdout,"INFO: (Range 0-1 : default 0).\n");
- fprintf(stdout,"INFO: SPLICE LENGTH...in milliseconds (default 15ms)\n");
- fprintf(stdout,"INFO: NO START TRIM...Don't trim beginning of file.\n");
- fprintf(stdout,"INFO: NO END TRIM.....Don't trim end of file.\n");
- fprintf(stdout,"INFO: Default: trims BOTH.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: REMOVE DC............shift entire signal to eliminate DC drift.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FIX BY HAND............For each bad sample, give sample number and value you want it to be.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FIND AND LIST ONSETS.....Find start-times of significant events from sndfile.\n");
- fprintf(stdout,"INFO: ..........................................and store in a textdata file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GATE LEVEL .........level below which sounds are omitted.\n");
- fprintf(stdout,"INFO: ENDGATE LEVEL.......level below which END of sound cut off.\n");
- fprintf(stdout,"INFO: (If set at zero, defaults to GATE value).\n");
- fprintf(stdout,"INFO: THRESHOLD ..........Level within extracted event must exceed threshold,\n");
- fprintf(stdout,"INFO: if event is to be retained.(default 0)\n");
- fprintf(stdout,"INFO: BAKTRAK ............and keep N sectors prior to gate-on, but only if\n");
- fprintf(stdout,"INFO: any segment level is above INITIAL LEVEL (see below).\n");
- fprintf(stdout,"INFO: INITIAL LEVEL.......for use with baktraking.\n");
- fprintf(stdout,"INFO: MIN DURATION........of segments to keep (secs).\n");
- fprintf(stdout,"INFO: GATE WINDOWS........Sound gates OFF only if level stays below gate\n");
- fprintf(stdout,"INFO: for (GATE_WINDOWS+1) sectors. (default 0).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TOPNTAIL_CLICKS):
- fprintf(stdout,"INFO: REMOVE CLICKS FROM START AND/OR END OF SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GATE LEVEL .....is level ABOVE which signal is accepted.\n");
- fprintf(stdout,"INFO: (Range 0-1 : default 0).\n");
- fprintf(stdout,"INFO: SPLICE LENGTH...in milliseconds (default 2ms)\n");
- fprintf(stdout,"INFO: START TRIM......Trim beginning of file.\n");
- fprintf(stdout,"INFO: END TRIM........Trim end of file.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HOUSE_GATE):
- fprintf(stdout,"INFO: CUT UP A SOUNDFILE AT ZERO AMPLITUDE POINTS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MIN ZERO CNT FOR CUT POINT....minimum number of consecutive zero samples (per channel).\n");
- fprintf(stdout,"INFO: to indicate a silent gap in the file, where it can be cut.\n");
- break;
- case(HOUSE_BAKUP):
- fprintf(stdout,"INFO: CONCATENATE FILES INTO BACKUP FILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Takes any number of soundfiles and \n");
- fprintf(stdout,"INFO: creates a 'sndfile' containing those files separated by silent gaps.\n\n");
- fprintf(stdout,"INFO: Files must all have same number of channels.\n");
- break;
- case(HOUSE_DUMP):
- fprintf(stdout,"INFO: DUMP FILES TO SPECIAL BAKUP FILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Takes any number of any kind(s) of soundsystem files, and\n");
- fprintf(stdout,"INFO: creates a 'sndfile' containing those files PLUS their headers.\n");
- fprintf(stdout,"INFO: A textfile, listing the files SUCCESFULLY stored, is also created.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Each sound+HEADER is preceded by a 'bleep',\n");
- fprintf(stdout,"INFO: (for identification purposes when searching sound-tape),\n");
- fprintf(stdout,"INFO: and the output concluded by a longer bleep.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: This file can be stored and recovered from DAT, using DIGITAL OUTPUT and INPUT ONLY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Restore such dumped-files with RECOVER option.\n");
- break;
- case(HOUSE_RECOVER):
- fprintf(stdout,"INFO: RECOVER DUMPED FILES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: HEADER COPIES RETRIEVED..In dump file, each file has 100 header copies.\n");
- fprintf(stdout,"INFO: ......................This parameter specifies the minimum fraction of copies to retrieve\n");
- fprintf(stdout,"INFO: ......................to verify recovery. Range (0 to 1)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MARKER VALIDITY.......fraction of bytes in header-marker to recover\n");
- fprintf(stdout,"INFO: ......................to verify we've found a header. Range (0 to 1)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: HEADER CONSISTENCY....fraction of bytes in one of header copies\n");
- fprintf(stdout,"INFO: ......................that must tally with bytes in other versions\n");
- fprintf(stdout,"INFO: ......................to qualify it as a true 'copy'. Range (0 to 1)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SIGNAL SHIFT TO APLY..Bleep should be at level %d exactly,\n",SQUAREAMP);
- fprintf(stdout,"INFO: ......................and should start with +ve values.\n");
- fprintf(stdout,"INFO: ......................If not, this is the linear shift to apply to data\n");
- fprintf(stdout,"INFO: ......................to get rid of the anomaly. (view file first).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PHASE INVERSION.......If the data is phase inverted, this flag restores the original phase\n");
- fprintf(stdout,"INFO: ......................(it is applied AFTER any shift).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Recovered files will NOT be listed on the workspace.\n");
- fprintf(stdout,"INFO: Recovery information is written to a REPORT FILE as well as to the screen.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Dumped datafiles must be transferred DIGITALLY to & from tape.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HOUSE_DISK):
- fprintf(stdout,"INFO: DISPLAY AVAILABLE SPACE ON DISK.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: If a sndfile is input, its sample rate will govern space calculations.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_PROPS):
- fprintf(stdout,"INFO: DISPLAY PROPERTIES OF A SNDFILING-SYSTEM FILE\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_SFLEN):
- fprintf(stdout,"INFO: DISPLAY DURATION OF A SNDFILING-SYSTEM FILE\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_TIMELIST):
- fprintf(stdout,"INFO: LIST DURATIONS OF SEVERAL SNDFILING-SYSTEM FILES\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_LOUDLIST):
- fprintf(stdout,"INFO: LIST MAXIMUM LEVEL OF SEVERAL SOUNDFILES\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_TIMESUM):
- fprintf(stdout,"INFO: SUM DURATIONS OF SEVERAL SNDFILING-SYSTEM FILES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPLICELEN is in milliseconds. (Default: 15ms)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_TIMEDIFF):
- fprintf(stdout,"INFO: FIND DIFFERENCE IN DURATION OF TWO SOUND FILES\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_SAMPTOTIME):
- fprintf(stdout,"INFO: CONVERT SAMPLE COUNT TO TIME IN SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: with COUNT SAMPLES IN GROUPS e.g. stereo file: sample-PAIRS counted.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_TIMETOSAMP):
- fprintf(stdout,"INFO: CONVERT TIME TO SAMPLE COUNT IN SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: with COUNT SAMPLES IN GROUPS e.g. stereo file: sample-PAIRS counted.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_MAXSAMP):
- fprintf(stdout,"INFO: FIND MAXIMUM SAMPLE IN SOUNDFILE OR BINARY DATA FILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FORCE SEARCH IN SOUND Ignores any maxval written in header.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_MAXSAMP2):
- fprintf(stdout,"INFO: FIND MAXIMUM SAMPLE OVER GIVEN TIMERANGE IN SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START TIME OF SEARCH Time in soundfile to start search for a maximum.\n");
- fprintf(stdout,"INFO: END TIME OF SEARCH Time in soundfile to stop search for a maximum.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_LOUDCHAN):
- fprintf(stdout,"INFO: FIND LOUDEST CHANNEL IN A STEREO SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_FINDHOLE):
- fprintf(stdout,"INFO: FIND LARGEST LOW LEVEL HOLE IN A SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THRESHOLD....hole only if level falls and stays below threshold.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_DIFF):
- fprintf(stdout,"INFO: COMPARE 2 SOUND,ANALYSIS,PITCH,TRANSPOSITION,ENVELOPE, OR FORMANT FILES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THRESHOLD........................max permissible difference in data values:\n");
- fprintf(stdout,"INFO: CNT..............................max number of differences to accept (default 1).\n");
- fprintf(stdout,"INFO: IGNORE LENGTH DIFFERENCE.........continue comparing files anyway.\n");
- fprintf(stdout,"INFO: IGNORE CHANNEL COUNT DIFFERENCE..continue comparing files anyway.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NB: This process works only with binary (non-text) files.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_CDIFF):
- fprintf(stdout,"INFO: COMPARE CHANNELS IN A STEREO SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THRESHOLD..max permissible difference in data values.\n");
- fprintf(stdout,"INFO: CNT........MAX NUMBER of differences to accept (default 1).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NB: The output sample display is counted in sample-pairs.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_PRNTSND):
- fprintf(stdout,"INFO: PRINT SOUND SAMPLE DATA TO A TEXTFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CARE!!! large quantities of data.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INFO_MUSUNITS):
- fprintf(stdout,"INFO: CONVERT BETWEEN DIFFERENT MUSICAL UNITS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INTERVAL m2 = minor 2nd 2 = major 2nd\n");
- fprintf(stdout,"INFO: m3 = minor 3rd 3 = major 3rd\n");
- fprintf(stdout,"INFO: 4 = perfect 4th #4 = a tritone\n");
- fprintf(stdout,"INFO: 5 = perfect 5th\n");
- fprintf(stdout,"INFO: m6 = minor 6th 6 = major 6th\n");
- fprintf(stdout,"INFO: m7 = minor 7th 7 = major 7th\n");
- 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");
- fprintf(stdout,"INFO: up = an upward interval (default).\n");
- fprintf(stdout,"INFO: down = a downward interval.\n");
- fprintf(stdout,"INFO: Intervals may also be displaced by quartertones.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: QTONE + = a quarter-tone further up. - = a quarter-tone further down. no = no quarter-tone displacement.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCH As shown on the buttons. Pitches may be displaced by quartertones. Octave may be specified from the numeric pad.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NUMERIC May be used to specify Midi value, Frequency, Frequency Ratio, Semitones, Octaves, Gain, Gain in dB, Timestretching factor, etc.\n");
- fprintf(stdout,"INFO: OR the octave in which a Pitch occurs.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: INPUT The (possible) type(s) of data you are inputting.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTPUT The type of data which you wish to output.\n");
- fprintf(stdout,"INFO: When no output button is highlighted, click first on the relevant INPUT button.\n");
- fprintf(stdout,"INFO: Click on the appropriate output button to obtain the result.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Pitches are represented in the output by e.g. Ebu-2 or Ed3 where......\n");
- fprintf(stdout,"INFO: 'b' = flat '#' = sharp 'u' = up a quarter-tone 'd' = down a quarter-tone\n");
- 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");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BARS 4.3 represents 4 bars and 3 beats\n");
- break;
- case(SYNTH_WAVE):
- fprintf(stdout,"INFO: GENERATE SIMPLE WAVEFORMS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SAMPLING RATE.......can be 48000, 24000, 44100, 22050, 32000, or 16000\n");
- fprintf(stdout,"INFO: NUMBER OF CHANNELS..can be 1, 2 or 4\n");
- fprintf(stdout,"INFO: DURATION............is duration of output snd, in seconds.\n");
- fprintf(stdout,"INFO: FREQUENCY...........of output sound, in Hz\n");
- fprintf(stdout,"INFO: AMPLITUDE...........of output sound: 0.0 < Range <= 1.0 (max & default).\n");
- fprintf(stdout,"INFO: WAVEFORM TABLESIZE..is size of table storing waveform: defaults to 256\n");
- fprintf(stdout,"INFO: ....................input value always rounded to multiple of 4.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MULTI_SYN):
- fprintf(stdout,"INFO: GENERATE CHORD OVER SIMPLE WAVEFORM\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHORD DATA is a list of (possibly fractional) MIDI values, OR a list of Frequency Values\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SAMPLING RATE.......can be 48000, 24000, 44100, 22050, 32000, or 16000\n");
- fprintf(stdout,"INFO: NUMBER OF CHANNELS..can be 1, 2 or 4\n");
- fprintf(stdout,"INFO: DURATION............is duration of output snd, in seconds.\n");
- fprintf(stdout,"INFO: AMPLITUDE...........of output sound: 0.0 < Range <= 1.0 (max & default).\n");
- fprintf(stdout,"INFO: WAVEFORM TABLESIZE..is size of table storing waveform: defaults to 4096\n");
- fprintf(stdout,"INFO: ....................input value always rounded to multiple of 4.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SYNTH_NOISE):
- fprintf(stdout,"INFO: GENERATE NOISE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SAMPLING RATE.......can be 48000, 24000, 44100, 22050, 32000, or 16000\n");
- fprintf(stdout,"INFO: NUMBER OF CHANNELS..can be 1, 2 or 4\n");
- fprintf(stdout,"INFO: DURATION............is duration of output snd, in seconds.\n");
- fprintf(stdout,"INFO: AMPLITUDE...........of output sound: 0.0 < Range <= 1.0 (max & default).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SYNTH_SIL):
- fprintf(stdout,"INFO: MAKE SILENT SOUNDFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SAMPLING RATE.......can be 48000, 24000, 44100, 22050, 32000, or 16000\n");
- fprintf(stdout,"INFO: NUMBER OF CHANNELS..can be 1, 2 or 4\n");
- fprintf(stdout,"INFO: DURATION............is duration of output snd, in seconds.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SYNTH_SPEC):
- fprintf(stdout,"INFO: MAKE STEREO FILE BY DEFINING SPECTRAL BANDS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DURATION.........of output data files\n");
- fprintf(stdout,"INFO: CENTRE FREQUENCY.........Centre of the synthesized band\n");
- fprintf(stdout,"INFO: BAND SPREAD.... width of band, in Hz, or as a transposition ratio.\n");
- fprintf(stdout,"INFO: BAND FOCUS (MAX).... maximum tightness of the band.\n");
- fprintf(stdout,"INFO: BAND FOCUS (MIN).....minimum tightness of band. If different from max,\n");
- fprintf(stdout,"INFO: band tightness varies at random between the two.\n");
- fprintf(stdout,"INFO: TIME VARIATION.....extent to which band components fluctuate with time.\n");
- fprintf(stdout,"INFO: SAMPLE RATE........sample rate of output audio file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPREAD_AS_TRANSPOSITION_RATIO......(default, a Hz bandwidth)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(INSERTSIL_MANY):
- fprintf(stdout,"INFO: PUT (SEVERAL) SILENCING MASKS IN AN EXISTING SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME IN SECONDS..........Specify time in seconds.\n");
- fprintf(stdout,"INFO: TIME AS SAMPLE COUNT.....Specify time as sample count (rounded to multiples of channel-cnt).\n");
- fprintf(stdout,"INFO: TIME AS GROUPED SAMPLES..Specify time as grouped-sample count (e.g. 3 = 3 stereo-pairs).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXCISEFILE..is a texfile with (paired) start & end times of masks\n");
- fprintf(stdout,"INFO: ............These must be in increasing time order.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPLICELEN...splice window in MS (default: %.0lf)\n",EDIT_SPLICELEN);
- fprintf(stdout,"INFO: \n");
- break;
- case(RANDCUTS):
- fprintf(stdout,"INFO: CUT FILE RANDOMLY INTO CHUNKS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: AVERAGE CHUNKLENGTH..average length of chunks to cut & permute.\n");
- fprintf(stdout,"INFO: SCATTERING..........randomisation of cuts: default 1.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(RANDCHUNKS):
- fprintf(stdout,"INFO: CUT SEVERAL CHUNKS FROM A SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHUNKCNT..is the number of chunks to cut\n");
- fprintf(stdout,"INFO: MINCHUNK..is the length of the smallest chunk permitted\n");
- fprintf(stdout,"INFO: MAXCHUNK..is the length of the largest chunk permitted\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: LINEAR DISTRIBUTION...more regular distribution of sizes \n");
- fprintf(stdout,"INFO: ALL BEGIN AT SOUND START..all chunks start at start of sound \n");
- break;
- case(TE_3):
- fprintf(stdout,"INFO: POSSIBLE OPERATIONS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: There are 5 distinct ways to use the Table Editor, plus some additional options.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) SELECT A FILE CONTAINING COLUMNS OF DATA: MANIPULATE THE DATA IN A CHOSEN COLUMN.\n");
- fprintf(stdout,"INFO: 2) CREATE A COLUMN OF DATA FROM SCRATCH.\n");
- fprintf(stdout,"INFO: 3) CREATE A TABLE OF DATA FROM SCRATCH.\n");
- fprintf(stdout,"INFO: 4) COMBINE THE DATA IN TWO DIFFERENT COLUMNS\n");
- fprintf(stdout,"INFO: 5) COMBINE THE DATA IN TWO DIFFERENT TABLES\n");
- fprintf(stdout,"INFO: +) EDIT OR TEST DATA, OR FIND PARTICULAR ITEMS, IN COLUMNS OF DATA\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: These are described below.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) SELECT A FILE CONTAINING COLUMNS OF DATA: MANIPULATE THE DATA IN A CHOSEN COLUMN.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: a) Choose a file from those listed in the 'FILES' list, by clicking on it.\n");
- fprintf(stdout,"INFO: It will be displayed in the 'INPUT TABLE' display.\n");
- fprintf(stdout,"INFO: 1) If NO FILES are listed, this means you have NO (appropriate) textfiles listed on the workspace.\n");
- 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");
- fprintf(stdout,"INFO: In particular, if your file does not have columns of data with the same number of items\n");
- fprintf(stdout,"INFO: in every column, Try switching to 'Free Text Mode'.\n");
- fprintf(stdout,"INFO: If this does not bring up your file, the Table Editor cannot handle it.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: b) Select a column from the file, by entering a column number and pressing OK,\n");
- fprintf(stdout,"INFO: on the 'INPUT TABLE' display.\n");
- fprintf(stdout,"INFO: 1) The column will normally be displayed in COLUMN IN.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: c) Select where you want the RESULT of the operation to go.\n");
- fprintf(stdout,"INFO: 1) Normally the result will be displayed in COLUMN OUT.\n");
- fprintf(stdout,"INFO: 2) Select 'Result HERE' to put the result in COLUMN IN, overwriting the original.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: d) Select an operation from one of the menus.\n");
- fprintf(stdout,"INFO: 1) You may also need to enter a parameter (at N) or several parameters\n");
- fprintf(stdout,"INFO: (in which case a dialogue box will appear).\n");
- fprintf(stdout,"INFO: 2) If the operation is successful, a modified column should appear.\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: f) IF you are happy with the result, you can save it to a table.\n");
- fprintf(stdout,"INFO: 1) You can keep just the column, as it is.\n");
- fprintf(stdout,"INFO: 2) You can replace the column you got from the original table, inside that table.\n");
- fprintf(stdout,"INFO: 3) You can replace some other column in the original table.\n");
- fprintf(stdout,"INFO: 4) You can insert the column as a NEW column, in the original table.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: g) You can select further columns and process them in similar ways.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: h) You can put the resulting columns into either the ORIGINAL table (still displayed at left).\n");
- fprintf(stdout,"INFO: or into the NEW table you are building.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: i) Save the New table you have made, by giving it a name.\n");
- fprintf(stdout,"INFO: 1) You may save the whole table, as is.\n");
- fprintf(stdout,"INFO: 2) You may save each column of the table to a separate file.\n");
- fprintf(stdout,"INFO: 3) You may save each row of the table to a separate file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: j) You can also RECYCLE the table, from the OUTPUT TABLE display to the INPUT TABLE.\n");
- fprintf(stdout,"INFO: N.B. You must be in 'File to Table' mode to do this.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2) CREATE A COLUMN OF DATA FROM SCRATCH.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: a) Select a process from the CREATE or CREATE2 menu.\n");
- fprintf(stdout,"INFO: 1) You may also need to enter a parameter (at N) or several parameters\n");
- fprintf(stdout,"INFO: (in which case a dialogue box will appear).\n");
- fprintf(stdout,"INFO: 2) If the operation is successful, a column should appear in COLUMN OUT.\n");
- fprintf(stdout,"INFO: 3) If the operation fails, a message will be displayed.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: b) You can force the column to be created in COLUMN IN, by selecting 'Result HERE'.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: c) You can transform the column with processes selected from the menus, as described above.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: d) You can save the resulting column as a table. (as described above)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: e) You can create further columns and ADD then as new columns to the OUTPUT TABLE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: f) You can save the output tabe, as described above.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 3) CREATE A TABLE OF DATA FROM SCRATCH.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: a) Select a process from the CREATE options in the TABLES menu.\n");
- fprintf(stdout,"INFO: Then write values (numeric or text) into a new table.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: b) You can now use the new table in the normal way described above.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 4) COMBINE THE DATA IN TWO DIFFERENT COLUMNS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: a) If you have data in both COLUMN IN and COLUMN OUT displays, you can combine their data.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: b) If you have data in COLUMN IN,\n");
- fprintf(stdout,"INFO: you can get a single column of data DIRECTLY FROM A FILE, into COLUMN OUT,\n");
- fprintf(stdout,"INFO: by selecting 'File to column output' mode,\n");
- fprintf(stdout,"INFO: then selecting a file (from the FILES list) which contains JUST ONE column of data.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: (Be sure to switch back to 'File to Table' mode afterwards).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: c) Select a process from the COMBINE or BRK menu.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: d) The result will usually appear in the OUTPUT TABLE,\n");
- fprintf(stdout,"INFO: and you can treat this in the usual ways (see above).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: e) Some COMBINE options write their result into one of the column displays,\n");
- fprintf(stdout,"INFO: (COLUMN IN or OUT depending on whether you have selected 'Result HERE'\n");
- fprintf(stdout,"INFO: or 'Result to OUTPUT). overwriting the original data,\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You can treat this resulting column in the usual ways.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 5) COMBINE THE DATA IN TWO DIFFERENT TABLES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: a) Select Multiple Files mode.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: b) Select files from the FILES listing.\n");
- fprintf(stdout,"INFO: 1) Their NAMES will be listed in the OUTPUT TABLE display.\n");
- fprintf(stdout,"INFO: 2) As each one is selected you will see its contents in INPUT TABLE.\n");
- fprintf(stdout,"INFO: 3) You can de-select a file: click on its name in OUTPUT TABLE display.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: c) Select a process from the JOIN menu.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: d) The result of combining the tables will now appear in the OUTPUT TABLE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: e) It is possible to use the JOIN menu to create Vectored Batchfiles (see JOIN menu\n");
- fprintf(stdout,"INFO: for further information). In this case, there is the possibility to\n");
- fprintf(stdout,"INFO: save the Output Table as a BATCH FILE (the appropriate button will be highlighted).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------------------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: +) EDIT OR TEST DATA, OR FIND PARTICULAR ITEMS, IN COLUMNS OF DATA\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: a) Use the EDIT IN, EDIT OUT, AT CURSOR, FIND or TEST menus.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_2):
- fprintf(stdout,"INFO: MENU FUNCTIONS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MOST FUNCTIONS convert values in COLUMN IN to new values.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: a) Usually the new values appear in COLUMN OUT.\n");
- fprintf(stdout,"INFO: b) You can perform multiple operations on column data,\n");
- fprintf(stdout,"INFO: using 'Copy to IN' to recycle the COLUMN OUT data back to COLUMN IN.\n");
- fprintf(stdout,"INFO: c) You can force results to appear in COLUMN IN (overwriting original values),\n");
- fprintf(stdout,"INFO: by selecting 'Result HERE'.\n");
- fprintf(stdout,"INFO: You can then work 'in situ' in COLUMN IN, overwriting the original data as you go.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: d) You can also swap around the COLUMN IN & COLUMN OUT data.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CREATE and CREATE2 Menu functions create values in the Column display you select\n");
- fprintf(stdout,"INFO: ('Result HERE' or 'Result to OUT').\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: COMBINE Menu functions (and some BRK functions) combine values in COLUMN IN and OUT displays.\n");
- fprintf(stdout,"INFO: The result is placed in the New Table display, unless otherwise stated.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TABLES Menu functions act directly on TABLE INPUT display, giving the result in TABLE OUTPUT.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: JOIN Menu functions combine data directly from FILES into the OUTPUT TABLE display.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BRK Menu functions are designed for use with breakpoint file data.\n");
- fprintf(stdout,"INFO: They only become active when the input table is a breakpoint file.\n");
- fprintf(stdout,"INFO: However, most other functions can be applied to the values in such files.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVEL Menu functions are designed for use with normalised envelope file data.\n");
- fprintf(stdout,"INFO: They only become active when input file is such.\n");
- fprintf(stdout,"INFO: However, many other functions can be applied to the values in such file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEQ Menu functions are designed for use with sequencing file data (triples of time,transposition,level).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_4):
- fprintf(stdout,"INFO: PARAMETERS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Most functions take a parameter (N).\n");
- fprintf(stdout,"INFO: Some functions take no parameter (any value you enter is ignored).\n");
- fprintf(stdout,"INFO: Some functions work with or without a parameter.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Some functions take a 2nd parameter in the 'Threshold' box.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Some functions take several parameters (x1,x2 etc.).\n");
- fprintf(stdout,"INFO: A special entry box will appear for you to enter these values.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Each process checks parameter ranges, and advises if you are outside the limits.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_5):
- fprintf(stdout,"INFO: THRESHOLD\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THRESHOLD is either a special extra 'threshold' value, or a 2nd parameter to a process.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MATHS Menu Functions Add, Multiply, Divide, Find Reciprocals, and Raise to a Power\n");
- fprintf(stdout,"INFO: can be applied solely to values in input above or below a threshold value.\n");
- fprintf(stdout,"INFO: Other values remaining unaffected.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: COMBINE Menu's search for values Equal to an input parameter, (and one or two other functions)\n");
- fprintf(stdout,"INFO: may use the threshold value as the maximum error allowed in assessing the equality of values.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: One or two functions take Threshold values as a parameter (e.g. SPAN functions in CREATE2).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Most functions ignore the threshold value.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_1):
- fprintf(stdout,"INFO: FILE TO TABLE \n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Contents of the selected file are listed in the TABLE INPUT, on the left.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FILE TO COLUMN OUTPUT ('File->Col' on MAC)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Data from file selected from filelist goes directly to COLUMN OUT display,\n");
- fprintf(stdout,"INFO: but ONLY if it contains just a single column of data.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MULTIPLE FILES ('Many Files' on MAC)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: File selected from the filelist, which must contain one or more columns of data,\n");
- fprintf(stdout,"INFO: can be combined directly into multiple column tables, using the JOIN menu.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FREE TEXT MODE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Free Text mode handles most kinds of text input.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: This contrasts with the normal mode of operation, which handles only textfiles in which...\n");
- fprintf(stdout,"INFO: a) data is aligned in columns.\n");
- fprintf(stdout,"INFO: b) each column contains the same number of entries.\n");
- fprintf(stdout,"INFO: c) All the entries in any one column are of the same type (e.g. numeric, dB vals, text).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Free Text mode can be used to edit files with comment-lines, or mixfiles with lines of different lengths,\n");
- fprintf(stdout,"INFO: or Csound scores with 'e' and 's' lines.\n");
- break;
- case(TE_14):
- fprintf(stdout,"INFO: CHANGE SLOPE BY FACTOR\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Assumes input represents a graph of values. Changes the slope of the graph.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_6):
- fprintf(stdout,"INFO: CREATE X1 STEPS IN INTERVAL BETWEEN X2 AND X3, CURVATURE X4\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Curvature = 1 rises (or falls) evenly.\n");
- fprintf(stdout,"INFO: Curvature < 1 rises quicker at start or falls quicker at end.\n");
- fprintf(stdout,"INFO: Curvature > 1 rises quicker at end or falls quicker at start.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_7):
- fprintf(stdout,"INFO: ENTRYTIMES OF EVENTS OF GIVEN DURATIONS TO MAINTAIN A GIVEN DENSITY\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Input values are event durations.\n");
- fprintf(stdout,"INFO: Outputs are start times of successive events required to maintain the specified (vertical) density of events.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_8):
- fprintf(stdout,"INFO: ISOLATE GROUPS OF EVENTS USING SEPARATION <= N (ASCENDING ONLY) \n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: while isolated items (separated from others by > N) are duplicated.\n");
- fprintf(stdout,"INFO: The resulting pairs-of-times serve to bracket these isolated event-groups (groups having 1 or more members).\n");
- fprintf(stdout,"INFO: This data might be 'SPANNED' to create an envelope.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: RANDOMLY DELETE X1 ITEMS,BUT <= X2 ADJACENT ITEMS: SETS OF ADJACENT ITEMS REMAINING <= X3\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: For controlled random deletion.\n");
- fprintf(stdout,"INFO: In a sequnce of events, randomly delete X1 items. Ensure that no more than X2 adjacent items are deleted.\n");
- fprintf(stdout,"INFO: Ensure that the remaining sets of undeleted items are no longer than x3.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_9):
- fprintf(stdout,"INFO: OVERLAP\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Time by which each event entry in a sequence overlaps the previous event.\n");
- fprintf(stdout,"INFO: e.g. overlap = splice-length when items edited together.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_10):
- fprintf(stdout,"INFO: PARTITIONS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You can partition a set into subsets ....\n");
- fprintf(stdout,"INFO: For example, you have a set of 144 values in column1.\n");
- fprintf(stdout,"INFO: Generate a column2 (with 144 entries) using the values 1,2 & 3 distributed at random.\n");
- fprintf(stdout,"INFO: (See the CREATE menu).\n");
- 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");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_11):
- fprintf(stdout,"INFO: RAISE NEGATIVE VALS TO POWER\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Negative vals raised to a power are TREATED IN A SPECIAL WAY.\n");
- 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");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_21):
- fprintf(stdout,"INFO: RANDOMISATION\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Imagine the items spaced out evenly.\n");
- fprintf(stdout,"INFO: Each sits in a local space stretching from the midpoint between it and its lower neighbour,\n");
- fprintf(stdout,"INFO: to the midpoint between it and its upper neighbour. (first and last points are handled differently).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Randomisation 0 Creates no randomisation of these original (equal-spaced) positions.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Randomisation 1 Each item can appear anywhere in its local space.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Randomisation > 0 < 1 Each item has its position randomised within its local space.\n");
- fprintf(stdout,"INFO: the randomisation increases with higher values.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Randomisation > 1 If the randomisation is N, each group of N items is placed at random\n");
- fprintf(stdout,"INFO: in the TOTAL space occupied by their N adjacent local spaces.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_12):
- fprintf(stdout,"INFO: RANK\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Lists each different-value item once only,\n");
- fprintf(stdout,"INFO: placing most frequently occuring items at top of list,\n");
- fprintf(stdout,"INFO: down to the least frequent, at the foot of the list.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_13):
- fprintf(stdout,"INFO: SCATTER VALUES OVER A QUANTISED GRID\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: X1 VALS, QUANTISED OVER X2, SPREAD IN INTERVAL X3, WITH RANDOMISATION X4\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: The accents are to be placed randomly, with a degree of randomness specified by X4.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IF the randomness X4 <= 1 : Imagine the duration divided into X1 EQUAL chunks.\n");
- 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");
- fprintf(stdout,"INFO: Randomness 0 gives no scatter (acents are regular), Randomness 1 gives maximum scatter of this type.\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: scatters each succesive group of X4 events randomly over the whole duration of the next N-length chunk.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: X1 RANDOM VALS QUANTISED OVER X2: MIN OF X3, MAX OF X4, BETWEEN EACH INPUT COL PAIR\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: The accents must fall only in time slots defined by successive pairs of values in the input column.\n");
- fprintf(stdout,"INFO: There must be at least x3 and no more than x4 such accents in each time slot.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_15):
- fprintf(stdout,"INFO: SPAN VALUES BY OTHERS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EACH VALUE (T) GOES TO (T-THRESHOLD,T+N+THRESHOLD)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: e.g. Create the time-sequence for an an envelope with which to isolate individual events of roughly equal length.\n");
- fprintf(stdout,"INFO: Threshold is splice length, N the typical event length. Use an alternating sequence (0110011..) to generate the envelope.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPAN: EACH PAIR (T1,T2) GOES TO (T1-THRESHOLD,T1,T2,T2+N+THRESHOLD) \n");
- fprintf(stdout,"INFO: \n");
- 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");
- 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");
- fprintf(stdout,"INFO: Associate the new times created with an alternating sequence (0110011...) to generate the envelope. This creates an envelope\n");
- 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");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_16):
- fprintf(stdout,"INFO: STACK VALUES FROM ZERO\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Assume input lists durations of successive events. Output gives start time of each event in such a list.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_17):
- fprintf(stdout,"INFO: SUM THE ABSOLUTE DIFFERENCES\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_18):
- fprintf(stdout,"INFO: SUPERIMPOSE ENVELOPES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: e.g. Extract part of a sound, treat it, and reinsert it in the original at the same place.\n");
- 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");
- fprintf(stdout,"INFO: This inverted envelope can be superimposed on any existing original-file envelope, using the 'superimpose inverted envelope' option.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: This process works only with NORMALISED envelopes (envelope levels lie between 0 and 1).\n");
- fprintf(stdout,"INFO: In general, an inserted envelope should start and end with level 0 or 1.\n");
- 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");
- fprintf(stdout,"INFO: and its end level (or its inverse) on all time points occuring after the insertion endtime.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_19):
- fprintf(stdout,"INFO: TEMPER\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: With no parameter, adjust data onto standard (12 semitones per octave) equal-temperament scale.\n");
- fprintf(stdout,"INFO: With e.g. parameter 9, adjust data onto a 9-steps-per-octave equal-temperament scale.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_20):
- fprintf(stdout,"INFO: TIME SEQUENCE ,DURATION X1, FROM MIN STEP X2 TO MAX X3\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_22):
- fprintf(stdout,"INFO: VECTORED BATCHFILES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: A Batchfile is a textfile containing several lines: each line is a command to run a program.\n");
- fprintf(stdout,"INFO: Running the batchfile runs each program in turn.\n");
- fprintf(stdout,"INFO: Batchfiles can be run from the Workspace page.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: A Vectored Batchfile is either:\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) a Batchfile which applies the SAME process to the SAME input file on each line,\n");
- fprintf(stdout,"INFO: using a different value for ONE (or more) of the parameters, in each line, OR....\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2) a Batchfile which applies the SAME process to a DIFFERENT input file on each line,\n");
- fprintf(stdout,"INFO: using a different value for ONE (or more) of the parameters, in each line.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The list of the different values for the SAME parameter, is the PARAMETER VECTOR.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_23):
- fprintf(stdout,"INFO: TO CREATE A VECTORED BATCHFILE\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: but INSTEAD OF RUNNING IT, save the process AS A BATCHFILE.\n");
- fprintf(stdout,"INFO: (This creates an elementary batchfile from which you will generate the Vectored Batchfile).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: (2) Now put all the file(s) you want to process into the Chosen Files list on the Workspace.\n");
- fprintf(stdout,"INFO: (Lets assume you want to generate 6 processes). There are TWO DIFFERENT OPTIONS.........\n");
- 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");
- 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");
- 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");
- fprintf(stdout,"INFO: to produce 6 separate outputs from the same input file.\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: (in our example, the file will contain 6 values).\n");
- fprintf(stdout,"INFO: You can create vectors for more than one parameter of the batchfile you are working on,\n");
- 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");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: (4) Switch the Table Editor to Multiple Files mode.\n");
- fprintf(stdout,"INFO: (5) Select the Batchfile you just made, followed by the Vector file(s) you just created.\n");
- fprintf(stdout,"INFO: (6) Select 'Create a Vectored Batchfile' from the JOIN menu.\n");
- fprintf(stdout,"INFO: \n");
- case(TE_24):
- fprintf(stdout,"INFO: PARAMETERS, SAVING AND RUNNING\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: (a) The batchfile column-number having the INPUT FILE.\n");
- fprintf(stdout,"INFO: (b) The batchfile column-number having the OUTPUT FILE.\n");
- fprintf(stdout,"INFO: (c) The batchfile column-number of (each) PARAMETER you are replacing with a vector.\n");
- 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");
- fprintf(stdout,"INFO: IN THE SAME ORDER as the parameter vector-files you have listed on the Table Editor.\n");
- fprintf(stdout,"INFO: (8) ***** SAVE the resulting table AS A BATCHFILE !!!!! *****\n");
- fprintf(stdout,"INFO: (9) Run the resulting batchfile from the Workspace.\n");
- break;
- case(TE_25):
- fprintf(stdout,"INFO: WARPING TIMES OR DATA\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Enter the File with the Data (DATAFILE) followed by the Warping File (WARPFILE).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The WARPFILE is a Breakpoint File of time-value pairs, where times MUST BEGIN AT ZERO.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TO WARP TIMES:\n");
- fprintf(stdout,"INFO: 1) Times in Warpfile correspond to (prewarped) times in Datafile.\n");
- fprintf(stdout,"INFO: 2) Warp Values must be greater than zero.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TO WARP VALUES IN AN EXISTING BREAKPOINT FILE:\n");
- fprintf(stdout,"INFO: 1) Times in Warpfile correspond to times in Datafile.\n");
- fprintf(stdout,"INFO: 2) Warp Values can take any value.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TO WARP VALUES IN AN EXISTING LIST OF VALUES:\n");
- fprintf(stdout,"INFO: 1) Range of times in Warpfile is arbitrary, and will be mapped to length of the data in Datafile.\n");
- fprintf(stdout,"INFO: 2) Warp Values can take any value.\n");
- break;
- case(TE_26):
- fprintf(stdout,"INFO: ******* MUSIC WORKPAD *******\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) TO GET (&/OR REMOVE) FILES\n");
- fprintf(stdout,"INFO: select file from right hand display, and press 'GET' or 'GET & REMOVE'\n");
- fprintf(stdout,"INFO: **** 'GET' IS NOT CUMULATIVE : do a 'PUT' before selecting more files ****\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2) TO PUT FILES INTO A LIST\n");
- fprintf(stdout,"INFO: You must 'GET' files first.\n");
- fprintf(stdout,"INFO: Select a position in the Right Hand display, and press 'PUT FILES'\n");
- fprintf(stdout,"INFO: (with NO POSITION selected, files go to the END of the display)\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_27):
- fprintf(stdout,"INFO: The MUSIC TESTBED has various higher level facilities for organising musical material.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) BACKGROUND LISTINGS.\n");
- fprintf(stdout,"INFO: Files which you feel are musically related, can be gathered together in a BACKGROUND LISTING (B-List).\n");
- fprintf(stdout,"INFO: These B-Lists are NOT mutually exclusive i.e. any file can be listed in any number of B-lists.\n");
- 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");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The MUSIC WORKPAD allows you to sort and reorganise the sound materials you have previously stored in B-Lists.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2) INTERPOLATION WORKSHOP.\n");
- fprintf(stdout,"INFO: Make sounds intermediate between two given sounds, by proportional mixing..\n");
- fprintf(stdout,"INFO: The INTERPOLATION WORKSHOP provides flexible ways to do this and to assess the results (by listening).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 3) NAME GAMES.\n");
- fprintf(stdout,"INFO: Numerous operations may be performed upon SEGMENTS WITHIN FILENAMES.\n");
- fprintf(stdout,"INFO: If these segments refer to processes applied to the named sound, this allows such processes to be ordered & organised.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 4) PITCH MARKS.\n");
- fprintf(stdout,"INFO: A sound file may be assigned a PITCH MARK, indicating its pitch or pitches.\n");
- fprintf(stdout,"INFO: Pitch Marks may be compared, transferred from one sound to another, etc. etc..\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 5) PROPERTIES FILES.\n");
- fprintf(stdout,"INFO: Soundfiles can be assigned any number of (user-defined) properties, and these listed in a PROPERTIES FILE.\n");
- fprintf(stdout,"INFO: Property Files can be used to select sounds (e.g. those sharing one or more property) etc.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 7) SKETCH SCORE\n");
- 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");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_28):
- fprintf(stdout,"INFO: ******* BACKGROUND LISTINGS *******\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Background listings only accept files which are NOT in the CDP base directory (back them up first).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: B-lists allow files to be grouped together 'experimentally' while you test out musical ideas.\n");
- fprintf(stdout,"INFO: Files in the same B-List can come from DIFFERENT directories.\n");
- fprintf(stdout,"INFO: ALSO, Placing a file in one B-list does not preclude it from being placed in another.\n");
- fprintf(stdout,"INFO: Hence different ideas about how sounds are (to be) grouped can be tested, remembered, and recalled.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Sounds in B-Lists Can be LOADED ONTO THE WORKSPACE AS A SET (or individually),\n");
- fprintf(stdout,"INFO: either adding to what is already on the Workspace, or replacing it,\n");
- fprintf(stdout,"INFO: so that these B-listed sounds can be worked on as a group.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: A sound in a B-List may be assigned a PITCHMARK, indicating the principle pitch(es) of the sound.\n");
- 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");
- fprintf(stdout,"INFO: Pitchmarks are preserved when sounds are copied (e.g. to a new directory),\n");
- fprintf(stdout,"INFO: and can themselves be copied from one sound to another.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PITCHMARKS CAN BE COMPARED, pairwise or with the Pitchmark of every other Pitchmarked sound.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_29):
- fprintf(stdout,"INFO: ******* MUSIC WORKPAD *******\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The MUSIC WORKPAD enables you to CREATE & DESTROY B-LISTS, GET FILES to them, and REORGANISE MATERIALS amongst them.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You may work with existing B-lists, or Create new ones.\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You may SEARCH ALL THE B-LISTS for files with similar names, or for files from the same directory,\n");
- fprintf(stdout,"INFO: (e.g. to discover what other B-lists you have placed a particular file in).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You may LOAD THE DIRECTORY of a selected file onto the Workspace.\n");
- fprintf(stdout,"INFO: (e.g. to discover other related sounds ....assuming you stored related sounds in the same directory.)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You may SEARCH THE SOUND LOOM LOGS, to discover how a particular file was made.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You may VIEW THE PITCHMARK of any file that has one, and MAKE COMPARISONS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You may LOAD a file, or the directory of the file, ONTO THE WORKSPACE, for further work.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_30):
- fprintf(stdout,"INFO: ******* SKETCH SCORE *******\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: You can also write Descriptive Comments on the Score.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) Files can be grabbed from Background Listings,from the Workspace, of from elsewhere and positioned on the score.\n");
- fprintf(stdout,"INFO: 2) Files may be placed anywhere on this score, dragged from one position to another, or removed.\n");
- fprintf(stdout,"INFO: 3) Any single file on the Score can be Played, by clicking on it.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The Sequence of files on the score (or a specified part of it) can be joined together and\n");
- fprintf(stdout,"INFO: Played. You can use the complete sounds OR JUST A SMALL PART OF EACH.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The sequence of files (or a specified part of it) can be .....\n");
- fprintf(stdout,"INFO: 1) Saved to a temporary mixfile, ready for more detailed work.\n");
- fprintf(stdout,"INFO: 2) Grabbed to the Chosen Files list on the Workspace, for further work.\n");
- fprintf(stdout,"INFO: 3) Saved to a new, or an existing, Background Listing.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The SKETCH SCORE is a 'pre-sequencer', rather than a true sequencer or mixing environment.\n");
- fprintf(stdout,"INFO: It allows you to quickly test ideas before committing to a real mix.\n");
- fprintf(stdout,"INFO: It is intended as an aid in decision-making about the larger-scale form of a piece, once\n");
- fprintf(stdout,"INFO: substantial chunks of material have already been made which need to be appropriately ordered.\n");
- fprintf(stdout,"INFO: You can quickly test ideas about the ultimate sequence of events \n");
- fprintf(stdout,"INFO: by joining just a small part of each large file and listening to the result.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NB: Scores are always backed up in the last state in which they contained sounds.\n");
- fprintf(stdout,"INFO: If you exit from an EMPTY score, then recall it, the last sounds which appeared on it will reapear.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(TE_31):
- fprintf(stdout,"INFO: ******* INTERPOLATION WORKSHOP *******\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The INTERPOLATION WORKSHOP uses the program 'submix inbetween' to generate sounds intermediate between two given sounds,\n");
- fprintf(stdout,"INFO: through a simple mixing process. True spectral interpolation happens only if the 2 sounds are synchronised at zero-crossings\n");
- fprintf(stdout,"INFO: (as happens with the CDP 'DISTORT' processes). However, aurally convincing results can be obtained with other sounds.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TO MAKE AN INTERPOLATION\n");
- fprintf(stdout,"INFO: 1) Select onto the Chosen Files list of the Workspace the two sounds you wish to interpolate between.\n");
- fprintf(stdout,"INFO: 2) Start the INTERPOLATION WORKSHOP : the two sounds will now appear on its own display panel.\n");
- fprintf(stdout,"INFO: 3) You can create intermediate sounds immediately (or at any time you have ONLY 2 sounds in this list) by...\n");
- fprintf(stdout,"INFO: a) Specifying how many intermediate sounds to make.\n");
- fprintf(stdout,"INFO: b) Giving those new sounds a (generic) name.\n");
- fprintf(stdout,"INFO: c) Specifying the interpolation skew. (Use default value 1: if dissatisfied with the result, try a different value.)\n");
- fprintf(stdout,"INFO: d) Hitting the interpolate button.\n");
- fprintf(stdout,"INFO: 4) The newly created sounds will be listed in the panel BETWEEN the two original sounds.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: YOU CAN NOW LISTEN....\n");
- fprintf(stdout,"INFO: a) To the whole listed sequence of sounds.\n");
- fprintf(stdout,"INFO: b) To a sequence of sounds (or any individual sound) you select with the mouse.\n");
- fprintf(stdout,"INFO: c) To the listed sequence of sounds, APART FROM those you select with the mouse.\n");
- fprintf(stdout,"INFO: YOU CAN DELETE...\n");
- 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");
- fprintf(stdout,"INFO: b) The entire interpolation sequence you just made (e.g. in order to try different parameters for the interpolation).\n");
- fprintf(stdout,"INFO: YOU CAN MAKE ADDITIONAL INTERPOLATIONS between ANY ADJACENT PAIR of sounds on the list....\n");
- fprintf(stdout,"INFO: a) Choose two adjacent sounds with the mouse.\n");
- fprintf(stdout,"INFO: b) Proceed exactly as for the original interpolation.\n");
- fprintf(stdout,"INFO: AND YOU CAN FINISH by...\n");
- fprintf(stdout,"INFO: a) CONCLUDING: retaining all the files remaining on the listing.\n");
- fprintf(stdout,"INFO: b) QUITTING: Which deletes all the interpolated files you made (but NOT the original two sources).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ACC_STREAM):
- fprintf(stdout,"INFO: REPEAT A SOUND AT A SERIES OF SPECIFIED TIMES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME OF EVENTS..times at which the sound will play.\n");
- fprintf(stdout,"INFO: ATTENUATION.......level reduction (e.g. to accomodate attack overlaps).\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HF_PERM1):
- fprintf(stdout,"INFO: GENERATE ALL CHORDS POSSIBLE FROM NOTES IN A GIVEN SET,\n");
- fprintf(stdout,"INFO: RESTRICTING CHORDS TO WITHIN A GIVEN RANGE OF PITCH,\n");
- fprintf(stdout,"INFO: AND USING EACH NOTE (OR ITS OCTAVE TRANSPOSITION) ONCE ONLY PER CHORD.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SOUND OUT................Outputs 1 soundfile of the chords.\n");
- fprintf(stdout,"INFO: SOUNDS OUT...............Outputs several soundfiles, chords grouped by the sort prodecure(s) you specify.\n");
- fprintf(stdout,"INFO: TEXT OUT ................Outputs list of chords described by their note names.\n");
- fprintf(stdout,"INFO: MIDI OUT ................Outputs list of chords described by the MIDI values of the notes in them.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Sound-out & Sounds-Out modes only....\n");
- fprintf(stdout,"INFO: SAMPLE RATE OF THE SOUND OUTPUT\n");
- fprintf(stdout,"INFO: DURATION OF EACH CHORD GENERATED (SECS)\n");
- fprintf(stdout,"INFO: DURATION OF PAUSES BETWEEN CHORDS (SECS)\n");
- fprintf(stdout,"INFO: Sound-out only: ....\n");
- fprintf(stdout,"INFO: DURATION OF PAUSES BETWEEN CHORD-GROUPS (SECS)\n");
- fprintf(stdout,"INFO: All modes....\n");
- fprintf(stdout,"INFO: MIN NUMBER OF NOTES PER CHORD\n");
- fprintf(stdout,"INFO: BOTTOM NOTE OF THE PITCH RANGE OF THE CHORDS\n");
- fprintf(stdout,"INFO: OCTAVE IN WHICH THIS NOTE OCCURS...zero = octave upwards from Middle C\n");
- fprintf(stdout,"INFO: TOP NOTE OF THE PITCH RANGE OF THE CHORDS\n");
- fprintf(stdout,"INFO: OCTAVE IN WHICH THIS NOTE OCCURS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SORT CHORDS BY ....ROOT Chord with lowest root note comes first.\n");
- fprintf(stdout,"INFO: ....TOPNOTE Chord with highest top note comes first.\n");
- fprintf(stdout,"INFO: ....PITCHCLASS SET Chords with same (8va equivalent) notes grouped together.\n");
- fprintf(stdout,"INFO: ....CHORD TYPE Chords of same interval structure grouped together.\n");
- fprintf(stdout,"INFO: .... 1 of each: only 1 representative of each chord retained.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHORDS ONLY OF SPECIFIED MIN NO OF NOTES\n");
- fprintf(stdout,"INFO: .... Don't generate chords with more notes than minimum specified.\n");
- fprintf(stdout,"INFO: SMALLEST SPAN FIRST (ELSE LARGEST) (inoperative with CHORD TYPE sorts)\n");
- fprintf(stdout,"INFO: .... In each subgroup, put smallest span chord first (otherwise it goes last).\n");
- fprintf(stdout,"INFO: SORT BY ALTERNATIVE METHOD (ELSE BY DENSITY) (inoperative with CHORD TYPE sorts)\n");
- fprintf(stdout,"INFO: .... By default, chords in each subgroup are sorted by density.\n");
- fprintf(stdout,"INFO: .... If flag is set,\n");
- fprintf(stdout,"INFO: .... For ROOT or TOP NOTE sort, subgroups sorted by the way intervals are stacked inside chord.\n");
- fprintf(stdout,"INFO: .... For PITCHCLASS SET sort, subgroups sorted by size of containing interval, then by density.\n");
- fprintf(stdout,"INFO: ELIMINATE CHORDS DUPLICATED AT OCTAVES\n");
- fprintf(stdout,"INFO: .... Where exactly same chord occurs in more than one octave, eliminate duplicates.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(HF_PERM2):
- fprintf(stdout,"INFO: GENERATE ALL CHORDS POSSIBLE FROM MIDI VALUES IN A GIVEN SET,\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SOUND OUT................Outputs 1 soundfile of the chords.\n");
- fprintf(stdout,"INFO: SOUNDS OUT...............Outputs several soundfiles, chords grouped by the sort prodecure(s) you specify.\n");
- fprintf(stdout,"INFO: TEXT OUT ................Outputs list of chords described by their note names.\n");
- fprintf(stdout,"INFO: MIDI OUT ................Outputs list of chords described by the MIDI values of the notes in them.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Sound-out & Sounds-Out modes only....\n");
- fprintf(stdout,"INFO: SAMPLE RATE OF THE SOUND OUTPUT\n");
- fprintf(stdout,"INFO: DURATION OF EACH CHORD GENERATED (SECS)\n");
- fprintf(stdout,"INFO: DURATION OF PAUSES BETWEEN CHORDS (SECS)\n");
- fprintf(stdout,"INFO: Sound-out only: ....\n");
- fprintf(stdout,"INFO: DURATION OF PAUSES BETWEEN CHORD-GROUPS (SECS)\n");
- fprintf(stdout,"INFO: All modes....\n");
- fprintf(stdout,"INFO: MIN NUMBER OF NOTES PER CHORD\n");
- fprintf(stdout,"INFO: SORT CHORDS BY ....ROOT Chord with lowest root note comes first.\n");
- fprintf(stdout,"INFO: ....TOPNOTE Chord with highest top note comes first.\n");
- fprintf(stdout,"INFO: ....PITCHCLASS SET Chords with same (8va equivalent) notes grouped together.\n");
- fprintf(stdout,"INFO: ....CHORD TYPE Chords of same interval structure grouped together.\n");
- fprintf(stdout,"INFO: .... 1 of each: only 1 representative of each chord retained.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: CHORDS ONLY OF SPECIFIED MIN NO OF NOTES\n");
- fprintf(stdout,"INFO: .... Don't generate chords with more notes than minimum specified.\n");
- fprintf(stdout,"INFO: SMALLEST SPAN FIRST (ELSE LARGEST) (inoperative with CHORD TYPE sorts)\n");
- fprintf(stdout,"INFO: .... In each subgroup, put smallest span chord first (otherwise it goes last).\n");
- fprintf(stdout,"INFO: SORT BY ALTERNATIVE METHOD (ELSE BY DENSITY) (inoperative with CHORD TYPE sorts)\n");
- fprintf(stdout,"INFO: .... By default, chords in each subgroup are sorted by density.\n");
- fprintf(stdout,"INFO: .... If flag is set,\n");
- fprintf(stdout,"INFO: .... For ROOT or TOP NOTE sort, subgroups sorted by the way intervals are stacked inside chord.\n");
- fprintf(stdout,"INFO: .... For PITCHCLASS SET sort, subgroups sorted by size of containing interval, then by density.\n");
- fprintf(stdout,"INFO: ELIMINATE CHORDS DUPLICATED AT OCTAVES\n");
- fprintf(stdout,"INFO: .... Where exactly same chord occurs in more than one octave, eliminate duplicates.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(DEL_PERM):
- fprintf(stdout,"INFO: DELAY AND TRANSFORM EACH INPUT MIDI VALUE, CUMULATIVELY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: DELAY PERMUTATION\n");
- fprintf(stdout,"INFO: ......list of pairs of values, in textfile\n");
- fprintf(stdout,"INFO: ......1st value of the pair is a semitone transposition\n");
- fprintf(stdout,"INFO: ......2nd value of pair is a time-multiplier of duration (<1)\n");
- fprintf(stdout,"INFO: ......Sum of all time-multipliers must be equal to 1\n");
- fprintf(stdout,"INFO: SAMPLE RATE sample rate of the sound output\n");
- fprintf(stdout,"INFO: INITIAL DURATION OF NOTES length of each input note, before it is transformed\n");
- fprintf(stdout,"INFO: CYCLES OF PERMUTATION number of times the permutation is recursively applied.\n");
- break;
- case(DEL_PERM2):
- fprintf(stdout,"INFO: DELAY AND TRANSFORM INPUT SOUND (assumed to be at MIDI 60) AT INPUT MIDI VALUES, CUMULATIVELY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: DELAY PERMUTATION\n");
- fprintf(stdout,"INFO: ......list of pairs of values, in textfile\n");
- fprintf(stdout,"INFO: ......1st value of the pair is a semitone transposition\n");
- fprintf(stdout,"INFO: ......2nd value of pair is a time-multiplier of duration (<1)\n");
- fprintf(stdout,"INFO: ......Sum of all time-multipliers must be equal to 1\n");
- fprintf(stdout,"INFO: CYCLES OF PERMUTATION number of times the permutation is recursively applied.\n");
- break;
- case(TWIXT):
- fprintf(stdout,"INFO: SWITCH, AT GIVEN TIMES, BETWEEN SEVERAL FILES, AS THEY 'PLAY' IN PARALLEL.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME-SEGMENTS IN SEQUENCE.........Proceed from first time-segment to 2nd to 3rd etc.\n");
- fprintf(stdout,"INFO: TIME-SEGMENTS PERMUTED............Permute the sequence of time-segments.\n");
- fprintf(stdout,"INFO: TIME-SEGMENTS AT RANDOM..........Chose any time-segment, at random.\n");
- fprintf(stdout,"INFO: TEST SWITCH TIMES....................Chops up first file (only) at the given times,\n");
- fprintf(stdout,"INFO: ............................................producing segments as separate output files.\n");
- fprintf(stdout,"INFO: ............................................to test accuracy of file segmentation times.\n");
- fprintf(stdout,"INFO: PREVIEW SOURCE1 ENVELOPE........Generate a view of the envelope of 1st file,\n");
- fprintf(stdout,"INFO: ............................................to permit choice of intelligent gating.\n");
- fprintf(stdout,"INFO: EXTRACT SWITCH TIMES..............Use intelligent gating to generate switch times from first file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SWITCH TIMES ....... is a texfile containing times which divide the files into segments.\n");
- fprintf(stdout,"INFO: Include time zero if you want start of files to be used as a segment.\n");
- fprintf(stdout,"INFO: SPLICE LENGTH (MS) ....... is (approx) length of splices used on segments, in milliseconds.\n");
- fprintf(stdout,"INFO: NUMBER OF SEGMENTS TO OUTPUT ....... (Only relevant with the random modes).\n");
- fprintf(stdout,"INFO: WEIGHTING OF FIRST FILE ....... First file occurs N times more often then other files.\n");
- fprintf(stdout,"INFO: RANDOM PERM OF FILES ....... Sequence of files chosen is randomly permuted..\n");
- fprintf(stdout,"INFO: except that output always begins with first file in your list.\n");
- fprintf(stdout,"INFO: (default: files taken in order given in chosen-files list.)\n");
- break;
- case(SPHINX):
- fprintf(stdout,"INFO: SWITCH, AT GIVEN INPUT-FILE TIMES, BETWEEN SEVERAL FILES,\n");
- fprintf(stdout,"INFO: BUT SWITCH-TIMES ASSOCIATED WITH EACH FILE ARE NOT NECESSARILY THE SAME.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: IN TIME ORDER..................Proceed from 1st time-segment to 2nd to 3rd etc.\n");
- fprintf(stdout,"INFO: RANDOMLY REORDERED.......Permute the sequence of time-segments.\n");
- fprintf(stdout,"INFO: RANDOM CHOICE...............Chose any time-segment, at random.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SWITCH TIMES ....... is a texfile containing times which divide the files into segments.\n");
- fprintf(stdout,"INFO: Include zero if start of files to be used, and file endtime, if end of file to be used.\n");
- fprintf(stdout,"INFO: The 1st times in each file should all be on line 1.\n");
- fprintf(stdout,"INFO: The 2nd times in each file should all be on line 2. ETC.....\n");
- fprintf(stdout,"INFO: Each file must have the SAME NUMBER of switch times.\n");
- fprintf(stdout,"INFO: SPLICE LENGTH (MS) ....... is (approx) length of splices used on segments, in milliseconds.\n");
- fprintf(stdout,"INFO: NUMBER OF SEGMENTS TO OUTPUT ....... (Only relevant with the random modes).\n");
- fprintf(stdout,"INFO: WEIGHTING OF FIRST FILE ....... First file occurs N times more often then other files.\n");
- fprintf(stdout,"INFO: RANDOM PERM OF FILES ....... File sequence randomly permuted (except 1st file always starts output)\n");
- fprintf(stdout,"INFO: (default: files taken in order given in chosen-files list.)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GENERATING A DATA FILE FOR SPHINX ------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) Run Mode PREVIEW SOURCE1 ENVELOPE and then EXTRACT SWITCH TIMES\n");
- fprintf(stdout,"INFO: to automatically generate list of segment onsets for 1st file in your list.\n");
- fprintf(stdout,"INFO: 2) Run Mode TEST SWITCH TIMES to check segment onset times are good.\n");
- fprintf(stdout,"INFO: 3) IF NOT: Use 'Nudge Times' on Parameters page to modify (& test) segment onset times.\n");
- fprintf(stdout,"INFO: 4) Rotate the file-list on workspace, and generate the next edit-times file. ETC.\n");
- fprintf(stdout,"INFO: 5) Use the TABLE EDITOR in MULTIPLE FILES MODE to merge all these individual datafiles.\n");
- fprintf(stdout,"INFO: a) Select the data files you have created from the listing at left,\n");
- fprintf(stdout,"INFO: b) Use the JOIN menu, 'Put Cols of one file next to cols of another'\n");
- fprintf(stdout,"INFO: c) Save resulting output table as your sphinx datafile.\n");
- break;
- case(NOISE_SUPRESS):
- fprintf(stdout,"INFO: REPLACE NOISE CONSTITUENTS IN FILE BY SILENCE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SPLICE LENGTH (MS) for splice editing out noise.\n");
- fprintf(stdout,"INFO: MINIMUM NOISE FREQUENCY (HZ) frequency above which signal treated as potential noise.\n");
- fprintf(stdout,"INFO: MAXIMUM DURATION OF NOISE TO KEEP (MS)\n");
- fprintf(stdout,"INFO: MINIMUM DURATION OF TONE TO KEEP (MS)\n");
- fprintf(stdout,"INFO: RETAIN NOISE RATHER THAN TONE keeps only the noise components\n");
- break;
- case(TIME_GRID):
- fprintf(stdout,"INFO: DIVIDE SOURCE INTO SET OF ADJACENT GRIDS.\n");
- fprintf(stdout,"INFO: A GRID SHOWS WINDOWS OF SOURCE, AT ORIGINAL TIMES, SEPARATED BY SILENCE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NUMBER OF GRIDS: number of grids into which source is to be partitioned.\n");
- fprintf(stdout,"INFO: WIDTH OF GRID WINDOWS: size of grid windows, in seconds.\n");
- fprintf(stdout,"INFO: SPLICE LENGTH: length of splices, in milliseconds.\n");
- break;
- case(SEQUENCER):
- fprintf(stdout,"INFO: PRODUCE SEQUENCE OF INPUT SOUND PLAYED AT TRANSPOSITIONS & TIMES SPECIFIED.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEQUENCE VALUES IN FILE\n");
- fprintf(stdout,"INFO: Required data is a textfile containing TIME : TRANSPOSITION : LEVEL triples.\n");
- fprintf(stdout,"INFO: Transpositions are (+ve or -ve) semitone shifts.\n");
- fprintf(stdout,"INFO: Level values multiple the original event's level.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ATTENUATION: to reduce level, should sequencing overload.\n");
- break;
- case(SEQUENCER2):
- fprintf(stdout,"INFO: PRODUCE SEQUENCE OF SEVERAL INPUT SOUNDS PLAYED AT TRANSPOSITIONS & TIMES SPECIFIED.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) SEQUENCE VALUES IN FILE : Required data is a textfile containing ......\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: On the FIRST line: The (MIDI) pitch of each input file.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: On ALL OTHER lines: A set of Five values for each event in ther output...\n");
- fprintf(stdout,"INFO: a) Input Sound Number.\n");
- fprintf(stdout,"INFO: b) Time (secs). (times must be in increasing order).\n");
- fprintf(stdout,"INFO: c) MIDI pitch.\n");
- fprintf(stdout,"INFO: d) Loudness (a multiplier).\n");
- fprintf(stdout,"INFO: e) Duration (if [transposed]-source is shorter than 'Duration'.\n");
- fprintf(stdout,"INFO: sound duration cannot be extended)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2) ATTENUATION: to reduce level, should sequencing overload.\n");
- fprintf(stdout,"INFO: 2) SPLICE (MS): to cut short events, if they are too long.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(CONVOLVE):
- fprintf(stdout,"INFO: CONVOLVE THE FIRST SOUND WITH THE SECOND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Each sample of the first sound is multiplied by each sample of the 2nd.\n");
- fprintf(stdout,"INFO: Typically, the 2nd sound is a loud all-frequency sound (e.g. a gunshot)\n");
- fprintf(stdout,"INFO: in a reverberant space. Convolution imposes the reverberant characteristics\n");
- fprintf(stdout,"INFO: of that space onto the first sound.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The second (convolving) sound must not be longer than the first (convolved) sound.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: This process is very slow!!.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NORMAL.\n");
- fprintf(stdout,"INFO: TIME_VARYING.....convolving file can be transposed in a time-varying way.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS (TIME_VARYING MODE ONLY) ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEMITONE TRANSPOSITION OF CONVOLVING FILE....may vary through time.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(BAKTOBAK):
- fprintf(stdout,"INFO: JOIN A TIME-REVERSED COPY OF THE SOUND, TO A NORMAL COPY, IN THAT ORDER.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME OF JOIN Time in src file where join-cut is to be made.\n");
- fprintf(stdout,"INFO: SPLICE LENGTH (MS) Length of the splice, in milliseconds.\n");
- break;
- case(ADDTOMIX):
- fprintf(stdout,"INFO: ADD SOUNDFILES TO AN EXISTING MIXFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SOUNDFILES ARE ADDED, (AT MAX LEVEL AND TIME ZERO), TO FOOT OF AN EXISTING MIXFILE.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIX_PAN):
- fprintf(stdout,"INFO: PAN ENTRIES IN A MIXFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SOUNDFILES ARE PLACED AT POSITIONS SPECIFIED BY A PAN VALUE,\n");
- fprintf(stdout,"INFO: or BY VALUES READ FROM A TIME-VARYING BRKPOINT FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THE SOUNDS THEMSELVES DO NOT PAN.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IF THERE IS ANY STEREO FILE IN THE ORIGINAL MIX,\n");
- fprintf(stdout,"INFO: WHEN THE RESULTING MIX IS USED TO GENERATE SOUND OUTPUT\n");
- fprintf(stdout,"INFO: THAT STEREO FILE WILL BE MERGED TO A MONO STREAM,\n");
- fprintf(stdout,"INFO: AND THAT STREAM POSITIONED IN THE STEREO SPACE OF THE OUTPUT.\n");
- break;
- case(SHUDDER):
- fprintf(stdout,"INFO: SHUDDER\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PRODUCE (RANDOMISED) TREMULATIONS ON STEREO FILE\n");
- fprintf(stdout,"INFO: WHICH CAN BE SPREAD OVER THE STEREO STAGE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START_TIME of the Shuddering.\n");
- fprintf(stdout,"INFO: FREQUENCY of the Shuddering.\n");
- fprintf(stdout,"INFO: RANDOMISATION of the Shuddering. (0 - 1)\n");
- fprintf(stdout,"INFO: SPATIAL_SPREAD of the Shuddering. (0 - 1)\n");
- fprintf(stdout,"INFO: LOUDNESS DEPTH (MIN & MAX) of the Shuddering. (0 - 1)\n");
- fprintf(stdout,"INFO: EVENT WIDTH (MIN & MAX), in seconds, of the Shudder events.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: BALACE CHANNEL LEVELS, Boost overall level of quieter channel,\n");
- fprintf(stdout,"INFO: if peak level more than 1dB lower than peak level of other channel.\n");
- break;
- case(MIX_AT_STEP):
- fprintf(stdout,"INFO: CREATE MIXFILE FROM TWO OR MORE SOUNDS, WITH GIVEN TIME STEP BETWEEN ENTRIES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TIME STEP between entry of the sounds.\n");
- break;
- case(FIND_PANPOS):
- fprintf(stdout,"INFO: FIND PAN POSITION OF SOUND IN STEREO IMAGE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: AT TIME : Time in file at which to assess stereo position.\n");
- fprintf(stdout,"INFO: N.B. IF TIME IS SET TO ZERO, the process assesses the ENTIRE FILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: The process only works with Stereo files.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: This process assumes that (approx) the SAME sound is present in both the Left & Right channels.\n");
- fprintf(stdout,"INFO: This will be the case if the stereo file is the result of panning a previously mono sound source.\n");
- break;
- case(CLICK):
- fprintf(stdout,"INFO: GENERATE A SEQUENCE OF CLICKS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: TAKES DATAFILE CONTAINING SEQUENCE OF DATA LINES -------------------\n");
- 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");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: GP 0 27.3 for a general pause of 27.3 secs.\n");
- fprintf(stdout,"INFO: GP 1 18.7 for a general pause of 18.7 secs. with an accent at start.\n");
- fprintf(stdout,"INFO: TIME 123.5 Set the absolute time to 123.5 (time must be LATER than previous event).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OR the following set of items.....\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) TEMPO : in form....(with no spaces around '=')\n");
- fprintf(stdout,"INFO: 1=144 (for crotchet = 144) 2=75.3 (for minim = 75.3)\n");
- fprintf(stdout,"INFO: 0.5=180 (for quaver = 180) 1.5=100 (for dotted crotchet = 100)\n");
- fprintf(stdout,"INFO: 1=144.3to89.5 (for tempo change from crotchet = 144.3 to crotchet = 89.5)\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: A SINGLE DOT ('.') can be used to indicate 'same tempo', BUT not after a changing tempo\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2) BARRING : in form 4:4 or 6:8 or 7:16 etc. (no spaces around ':')\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: A SINGLE DOT ('.') can be used to indicate 'same barring', BUT only after barring has been established.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 3) COUNT : i.e. number of bars in this format.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------- and optionally -----------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 4) ACCENTS : in one of the forms....(no spaces within the pattern)\n");
- fprintf(stdout,"INFO: 1..... strong beat followed by 5 weak beats\n");
- fprintf(stdout,"INFO: 1..1.. strong beat (start) and secondary beat (at 4) with weak beats between\n");
- fprintf(stdout,"INFO: 100100 strong beat and secondary beat, with NO intermediate beats\n");
- fprintf(stdout,"INFO: ETC.\n");
- fprintf(stdout,"INFO: IF ACCENT PATTERN OMITTED, default patterns used. These are....\n");
- fprintf(stdout,"INFO: An accent on start of each bar, plus....\n");
- 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");
- fprintf(stdout,"INFO: Sound on every specified unit (4,8,16,32 etc.) with Secondary accents every 3rd beat.\n");
- fprintf(stdout,"INFO: b) in all other meters,\n");
- fprintf(stdout,"INFO: Sound on every specified unit (4,8,16,32 etc.), but NO secondary accents\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ----------------------- also -----------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: comments preceded by ';' can be used e.g. ;Section 1\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OTHER PARAMETERS-----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN MODE 'FROM TIME'\n");
- fprintf(stdout,"INFO: MAKE CLICK FROM TIME ..... Generate clicktrack, beginning at score time given here.\n");
- fprintf(stdout,"INFO: If time is given as ZERO, output will include any clicks prior to music zero.\n");
- fprintf(stdout,"INFO: MAKE CLICK TO TIME ......... Generate clicktrack, ending at score time given here.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN MODE 'FROM LINE'\n");
- fprintf(stdout,"INFO: MAKE CLICK FROM DATA LINE ..... Generate clicktrack, beginning at data line.\n");
- fprintf(stdout,"INFO: MAKE CLICK TO DATA LINE ......... Generate clicktrack, ending at data line.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN ALL MODES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MUSIC STARTS AT LINE...........Usually clicks will begin BEFORE the true start of the music,\n");
- fprintf(stdout,"INFO: and in this case music-zero-time will come AFTER the start of the clicks.\n");
- fprintf(stdout,"INFO: This parameter allows you to specify at which line in the data the music itself begins.\n");
- fprintf(stdout,"INFO: SHOW LINE TIMES ..... Running display of times at which each data line begins (relative to music zero).\n");
- break;
- case(DOUBLETS):
- fprintf(stdout,"INFO: SLICE UP SOUND, REPEATING SLICED SEGMENTS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEGMENTATION LENGTH .... duration of sliced segments.\n");
- fprintf(stdout,"INFO: SEGMENT REPEATS .............. number of times each segment is repeated.\n");
- fprintf(stdout,"INFO: RETAIN ORIGINAL DURATION ...step through file fast enough to keep up with time in source file.\n");
- break;
- case(SYLLABS):
- fprintf(stdout,"INFO: SLICE TEXT INTO ITS CONTIGUOUS SYLLABLES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS----------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SYLLABLE TIMES .... List of syllable starttimes, plus endtime of last syllable.\n");
- fprintf(stdout,"INFO: DOVETAIL ...........Time (MS) allowed for syllable overlap.\n");
- fprintf(stdout,"INFO: SPLICELENGTH .......Duration (MS) of editing splices.\n");
- fprintf(stdout,"INFO: IN PAIRS .......Cut all syllable-pairs (default, cut individual syllables).\n");
- break;
- case(JOIN_SEQ):
- fprintf(stdout,"INFO: JOIN FILES TOGETHER, ONE AFTER ANOTHER, IN A GIVEN PATTERN\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PATTERN.......File numbers, in the sequence in which they are to be joined.\n");
- fprintf(stdout,"INFO: SPLICE........duration of splices, in MS (default 15)\n");
- fprintf(stdout,"INFO: SPLICE START..splices start of first file.\n");
- fprintf(stdout,"INFO: SPLICE END....splices end of last file.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(JOIN_SEQDYN):
- fprintf(stdout,"INFO: JOIN FILES TOGETHER, ONE AFTER ANOTHER, IN A GIVEN PATTERN, WITH A LOUDNESS PATTERNING\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PATTERN.......File numbers, in the sequence in which they are to be joined.\n");
- fprintf(stdout,"INFO: .....................each followed by the relative loudness of that pattern item.\n");
- fprintf(stdout,"INFO: SPLICE........duration of splices, in MS (default 15)\n");
- fprintf(stdout,"INFO: SPLICE START..splices start of first file.\n");
- fprintf(stdout,"INFO: SPLICE END....splices end of last file.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MAKE_VFILT):
- fprintf(stdout,"INFO: CONVERT EACH VALUE IN A LIST OF MIDI VALUES IN A TEXTFILE\n");
- fprintf(stdout,"INFO: TO A FIXED-PITCH FILTER-DATA-FILE FOR THE VARI-FILTER\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(BATCH_EXPAND):
- fprintf(stdout,"INFO: USE EXISTING BATCHFILE AS A MODEL TO WORK ON OTHER SOUNDFILES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES---------------------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1) ONE PARAM.\n");
- fprintf(stdout,"INFO: a) EXISTING BATCHFILE MUST OPERATE ON A SINGLE SOUNDFILE.\n");
- fprintf(stdout,"INFO: b) PARAMETER TO BE REPLACED MUST BE SAME VALUE FOR EACH BATCHFILE LINE.\n");
- fprintf(stdout,"INFO: SAME SEQUENCE OF OPERATIONS APPLIED TO EACH IN-SNDFILE USING EACH NEW PARAM IN TURN\n");
- fprintf(stdout,"INFO: e.g. Batchfile\n");
- fprintf(stdout,"INFO: filter varibank 2 in1.wav in1_a filt0.txt 10 2 14 -h36 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 in1.wav in1_b filt1.txt 20 2 14 -h38 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 in1.wav in1_c filt2.txt 30 2 14 -h40 -r0.0 -d\n");
- fprintf(stdout,"INFO: with sndlist and datafile entries \n");
- fprintf(stdout,"INFO: ex2.wav 22\n");
- fprintf(stdout,"INFO: ff3.wav 99\n");
- fprintf(stdout,"INFO: and parameter column 9: gives\n");
- fprintf(stdout,"INFO: filter varibank 2 ex2.wav ex2_b0 filt0.txt 10 2 22 -h36 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 ex2.wav ex2_b1 filt1.txt 20 2 22 -h38 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 ex2.wav ex2_b2 filt2.txt 30 2 22 -h40 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 ff3.wav in1_b0 filt0.txt 10 2 99 -h36 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 ff3.wav in1_b1 filt1.txt 20 2 99 -h38 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 ff3.wav in1_b2 filt2.txt 30 2 99 -h40 -r0.0 -d\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 2) MANY PARAMS.\n");
- fprintf(stdout,"INFO: a) EXISTING BATCHFILE CAN OPERATE ON DIFFERENT SOUNDFILES.\n");
- fprintf(stdout,"INFO: b) SOUNDFILES IN ORIG BATCHFILE REPLACED BY CHOSEN FILES, AND USING NEW PARAMS.\n");
- fprintf(stdout,"INFO: TAKING EACH LINE IN TURN.\n");
- fprintf(stdout,"INFO: e.g. Batchfile\n");
- fprintf(stdout,"INFO: filter varibank 2 in1.wav in1_a filt0.txt 10 2 14 -h36 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 in0.wav in0_b filt1.txt 20 2 17 -h38 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 in7.wav in7_c filt2.txt 30 2 11 -h40 -r0.0 -d\n");
- fprintf(stdout,"INFO: e.g. and same Params as above, gives...\n");
- fprintf(stdout,"INFO: filter varibank 2 ex2.wav ex2_b filt0.txt 10 2 22 -h36 -r0.0 -d\n");
- fprintf(stdout,"INFO: filter varibank 2 ff3.wav ff3_b filt1.txt 20 2 99 -h38 -r0.0 -d\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: COLUMN NUMBER OF INFILE, IN BATCHFILE.\n");
- fprintf(stdout,"INFO: COLUMN NUMBER OF OUTFILE, IN BATCHFILE.\n");
- fprintf(stdout,"INFO: COLUMN NUMBER OF PARAM TO BE REPLACED, IN BATCHFILE.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(MIX_MODEL):
- fprintf(stdout,"INFO: SUBSTITUTE NEW SOUNDFILES IN EXISTING MIXFILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: 1st FILE MUST BE AN EXISTING MIXFILE.\n");
- fprintf(stdout,"INFO: OTHER FILES ARE SOUNDFILES.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THERE MUST BE ONE SOUNDFILE FOR EACH MIXFILE LINE.\n");
- fprintf(stdout,"INFO: CHANNEL-CNT OF SOUND MUST CORRESPOND TO CHANNEL-CNT ON CORERSPONDING MIXFILE LINE.\n");
- break;
- case(CYCINBETWEEN):
- fprintf(stdout,"INFO: CREATE NEW FILES INTERMEDIATE BETWEEN 2 GIVEN FILES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: FILES ARE INTERPOLATED, ATTEMPTING TO KEEP ZER-CROSSINGS PEGGED.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NUMBER OF INTERMEDIATE FILES.\n");
- fprintf(stdout,"INFO: HIGH FREQUENCY CUTOFF.\n");
- break;
- case(ENVSYN):
- fprintf(stdout,"INFO: CREATE ENVELOPE WITH REPEATING PATTERN, IN BINARY ENVELOPE FILE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW SIZE ....is the resolution of the envelope (smaller window gives finer resolution) .\n");
- fprintf(stdout,"INFO: .........................Window size is in MILLIseconds.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DURATION OF OUTFILE.......The duration (in secs) of the file you want to generate.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: DURATION OF REPEATING UNIT......Duration (in secs) of the repeating units. This can vary over time.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START POINT WITHIN FIRST UNIT......0 starts at beginning of unit, 1 at the very end.\n");
- fprintf(stdout,"INFO: ......................................values in between start within the unit.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: HEIGHT OF ENVELOPE TROUGH......Lowest value reached by the envelope units (can vary over time).\n");
- fprintf(stdout,"INFO: ........................................(Does not apply to USER DEFINED envelopes).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: EXPONENT OF ENVELOPE RISE OR DECAY......can vary over time.(Does not apply to USER DEFINED envelopes).\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: in USER-DEFINED MODE\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Required data is a textfile of time/val(0-1) pairs defining an envelope, where time units are arbitrary\n");
- fprintf(stdout,"INFO: as the envelope is stretched to each unit duration.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(P_BINTOBRK):
- fprintf(stdout,"INFO: CONVERT BINARY PITCH DATA TO PITCH DATA TEXTFILE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Pitch data is written to textfile as frequency values.\n");
- break;
- case(RRRR_EXTEND):
- fprintf(stdout,"INFO: EXTEND ITERATIVE SOUNDS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ATTEMPT TO 'TIME-STRETCH' NATURAL ITERATIVE SOUNDS (LIKE ROLLED 'rrr' IN SPEECH) IN A PLAUSIBLE WAY.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS IN MODE 1 ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: START OF SECTION TO BE EXTENDED ................ time of start of the iterated material in the source.\n");
- fprintf(stdout,"INFO: END OF SECTION TO BE EXTENDED ................... time of end of the iterated material in the source.\n");
- fprintf(stdout,"INFO: ANTICIPATED NO OF SEGMENTS TO FIND IN SRC... Estimate how many iterations you hear in marked area.\n");
- fprintf(stdout,"INFO: APPROX RANGE OF ITERATIVE SOUND (OCTAVES)\n");
- fprintf(stdout,"INFO: A guesstimate of the pitch-range of the iteration\n");
- fprintf(stdout,"INFO: This is the pitch range of the (low_frq) iteration, and NOT the resonant frequency.\n");
- fprintf(stdout,"INFO: e.g. for a rolled 'rrr' it is the frq of the 'rrr' itself (even if unvoiced)\n");
- fprintf(stdout,"INFO: and not the pitch of any sung note (if the 'rrr' is voiced).\n");
- fprintf(stdout,"INFO: TIMESTRETCH OF SECTION ........................... How much to time-stretch the marked material.\n");
- fprintf(stdout,"INFO: MAX ADJACENT OCCURENCES OF ANY SEG IN OUTPUT\n");
- fprintf(stdout,"INFO: The iterated material is extended by reusing the individual segments in a randomised pattern.\n");
- fprintf(stdout,"INFO: In this pattern, segment A may occur next to an identical copy of segment A, or not.\n");
- fprintf(stdout,"INFO: This parameter specifies how many adjacent copies of any segment you are prepared to allow.\n");
- fprintf(stdout,"INFO: AMPLITUDE SCATTER\n");
- fprintf(stdout,"INFO: The iterated segments may vary in amplitude.\n");
- fprintf(stdout,"INFO: 0 retains original amplitude: N produces random amplitudes between orig and (1-N) * orig.\n");
- fprintf(stdout,"INFO: PITCH SCATTER\n");
- fprintf(stdout,"INFO: The iterated segments may vary in pitch.\n");;
- fprintf(stdout,"INFO: 0 retains original pitch: N produces random pitchshift between N and -N semitones.\n");
- fprintf(stdout,"INFO: KEEP EXTENDED ITERATE ONLY....................... If flag is set, rest of file is not retained.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS MODE 2 ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN THIS MODE THE PROCESS ATTEMPTS TO LOCATE THE (FIRST) OCCURENCE OF THE ITERATIVE.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: Hence there is no 'START..' or 'END OF SECTION TO BE EXTENDED'\n");
- fprintf(stdout,"INFO: and 'ANTICIPATED NO OF SEGMENTS TO FIND' is replaced by ...\n");
- fprintf(stdout,"INFO: MINUMUM NO OF SEGMENTS TO FIND\n");
- fprintf(stdout,"INFO: APPROX SIZE OF GRANULE_(MS) and\n");
- fprintf(stdout,"INFO: GATE LEVEL BELOW WHICH SIGNAL ENVELOPE IGNORED\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: You can also cause the time-stretched iterate to ritardando to a specified speed, using...\n");
- fprintf(stdout,"INFO: TIME IN EXTENDED ITERATIVE BEFORE RITARNDO\n");
- fprintf(stdout,"INFO: EVENT SEPARATION IN FULLY SLOWED ITERATIVE and\n");
- fprintf(stdout,"INFO: TIME IN EXTENDED ITERATIVE WHERE RIT ENDS\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: And.....\n");
- fprintf(stdout,"INFO: NUMBER OF ITERATED ITEMS TO SKIP BEFORE USING ITEMS TO CREATE OUTPUT.\n");
- fprintf(stdout,"INFO: allows you to play through first N iterate-items before using the ensuing material for time-extension.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN MODE 3 ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PROCESS EDITS THE SOUND INTO ITS START, THE ITERATE-UNITS AND THE END\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(SSSS_EXTEND):
- fprintf(stdout,"INFO: FIND AND TIME-STRETCH (FIRST) NOISE COMPONENT IN A SOUND.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: OUTPUT DURATION............................. Duration of output file.\n");
- fprintf(stdout,"INFO: MIN FRQ (HZ) JUDGED TO REPRESENT NOISE ..... Lowest signal 'frequency' (Hz) viewed as noise.\n");
- fprintf(stdout,"INFO: MINIMUM NOISE DURATION (MS)................. Minimum acceptable duration of usable block of noise in source signal.\n");
- fprintf(stdout,"INFO: MAXIMUM NOISE DURATION (SECS)............... Maximum acceptable duration of usable block of noise in source signal.\n");
- fprintf(stdout,"INFO: KEEP EXTENDED NOISE ONLY.................... Kepp ONLY the extended noise: Otherwise, keep whole src with extended noise.\n");
- break;
- case(HOUSE_GATE2):
- fprintf(stdout,"INFO: SUPPRESS GLITCHES\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: THIS PROGRAM ATTEMPTS TO CUT SHORT GLITCHES OUT OF SOUNDS.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MAX GLITCH DURATION (MS) .... maximum duration of event recognisable as a glitch.\n");
- fprintf(stdout,"INFO: MIN GLITCH SEPARATION (MS) ...minimum time signal must fall below threshold on either side of glitch.\n");
- fprintf(stdout,"INFO: GATING LEVEL AT GLITCH EDGE...maxmimum signal level at edges of glitch.\n");
- fprintf(stdout,"INFO: SPLICE LENGTH (MS).............must be less than half the minimum glitch-separation.\n");
- fprintf(stdout,"INFO: SEARCH WINDOW (MS).............size of window where average signal level is calculated.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: SEE DETAILS...................If selected,will list size and position of each (possible) glitch found.\n");
- fprintf(stdout,"INFO: \n");
- 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");
- fprintf(stdout,"INFO: 2) Use larger windows to remove larger features.\n");
- fprintf(stdout,"INFO: 3) Very short windows may mistake parts of the waveform for 'silence' and also miss larger features.\n");
- break;
- case(GRAIN_ASSESS):
- fprintf(stdout,"INFO: ASSESS GATE LEVEL TO RETRIEVE MAXIMUM NUMBER OF GRAINS IN A SOUND.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(ZCROSS_RATIO):
- fprintf(stdout,"INFO: FIND PROPORTION OF ZERO CROSSINGS IN FILE BETWEEN SPECIFIED TIMES.\n");
- fprintf(stdout,"INFO: \n");
- break;
- case(GREV):
- fprintf(stdout,"INFO: LOCATE AND MANIPULATE 'GRAINS', USING ENVELOPE TROUGHS AND ZERO-CROSSING.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: This process locates elements of a sound by searching for troughs in the envelope.\n");
- fprintf(stdout,"INFO: It does not need a clear attack to recognise a 'grain' in a sound, and is\n");
- fprintf(stdout,"INFO: more appropriate for e.g. separating syllables in speech.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: MODES ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: REVERSE ....... Reverse the order of the (grouped) grains.\n");
- fprintf(stdout,"INFO: REPEAT ......... Repeat each of the (grouped) grains.\n");
- fprintf(stdout,"INFO: DELETE ......... Delete a proportion of the (grouped) grains.\n");
- fprintf(stdout,"INFO: OMIT ............. Replace a proportion of the (grouped) grains with silence.\n");
- fprintf(stdout,"INFO: TIME STRETCH .. Time stretch the output, without timestretching the grains.\n");
- fprintf(stdout,"INFO: GET ..................... Get the times of the grains to a textfile.\n");
- fprintf(stdout,"INFO: PUT ..................... Reposition grains at times suppied in textfile.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: PARAMETERS ----------------------------------------------------\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ENVELOPE WINDOW SIZE (MS) .... This determines vthe size of grains that might be found..\n");
- fprintf(stdout,"INFO: DEPTH OF TROUGHS AS PROPORTION OF PEAK HEIGHT .... ee,g, with value .5, troughs between peaks\n");
- fprintf(stdout,"INFO: which do not fall to half the peak-height, are ignored\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN TIME STRETCH MODE -----------.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ........ TIME STRETCH RATIO (which may be greater [slow down] or less [speed up] than 1, and may vary over time.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN ALL OTHER MODES -----------.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ........ NO OF GRAINS GROUPED AS ONE UNIT ... operations are carried out on the unit,\n");
- fprintf(stdout,"INFO: which might be single grains, and may vary over time\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN DELETE & OMIT MODES -----------.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NO OF UNITS TO KEEP | OUT OF ......... e.g. keep 3 out of 7\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN REPEAT MODE -----------.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: NO OF UNIT REPETITIONS ............. Number of times each unit is repeated, which can vary over time.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: IN PUT MODE-----------.\n");
- fprintf(stdout,"INFO: \n");
- fprintf(stdout,"INFO: ........ GRAIN-TIMINGS is a textfile of the times where the grains are to be repositioned.\n");
- fprintf(stdout,"INFO: \n");
- break;
- default:
- fprintf(stdout,"ERROR: Unknown PROCESS\n");
- fprintf(stdout,"INFO: \n");
- break;
- }
- return 0;
- }
|