display.c 62 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <structures.h>
  4. #include <tkglobals.h>
  5. #include <cdparams.h>
  6. #include <globcon.h>
  7. #include <localcon.h>
  8. #include <processno.h>
  9. #include <modeno.h>
  10. #include <pnames.h>
  11. #include <sfsys.h>
  12. #define SUBRANGE (TRUE)
  13. void setup_display(int paramno,int dtype,int subrang,double lo,double hi,aplptr ap);
  14. /****************************** ESTABLISH_DISPLAY *********************************/
  15. int establish_display(int process,int mode,int total_params,float frametime,double duration,aplptr ap)
  16. {
  17. double mintime;
  18. if((ap->display_type = (char *)malloc((total_params)* sizeof(char)))==NULL) {
  19. sprintf(errstr,"INSUFFICIENT MEMORY: for display_type array\n");
  20. return(MEMORY_ERROR);
  21. }
  22. if((ap->has_subrange = (char *)malloc((total_params) * sizeof(char)))==NULL) {
  23. sprintf(errstr,"INSUFFICIENT MEMORY: for subrange array\n");
  24. return(MEMORY_ERROR);
  25. }
  26. if((ap->lolo = (double *)malloc((total_params) * sizeof(double)))==NULL) {
  27. sprintf(errstr,"INSUFFICIENT MEMORY: for lo subrange vals\n");
  28. return(MEMORY_ERROR);
  29. }
  30. if((ap->hihi = (double *)malloc((total_params) * sizeof(double)))==NULL) {
  31. sprintf(errstr,"INSUFFICIENT MEMORY: for hi subrange vals\n");
  32. return(MEMORY_ERROR);
  33. }
  34. /******************************* SPEC *******************************/
  35. /******************************* SPEC *******************************/
  36. /******************************* SPEC *******************************/
  37. switch(process) {
  38. case(ACCU):
  39. setup_display(ACCU_DINDEX,LINEAR,0,0.0,0.0,ap);
  40. setup_display(ACCU_GINDEX,LINEAR,SUBRANGE,-1.0,1.0,ap);
  41. break;
  42. case(ALT):
  43. break;
  44. case(ARPE):
  45. setup_display(ARPE_WTYPE,WAVETYPE,0,0.0,0.0,ap);
  46. setup_display(ARPE_ARPFRQ,LINEAR,0,0.0,0.0,ap);
  47. if(mode==ABOVE_BOOST || mode==ONCE_ABOVE)
  48. setup_display(ARPE_PHASE,NUMERIC,0,0.0,0.0,ap);
  49. else
  50. setup_display(ARPE_PHASE,NUMERIC,0,0.0,0.0,ap);
  51. setup_display(ARPE_LOFRQ,PLOG,0,0.0,0.0,ap);
  52. setup_display(ARPE_HIFRQ,PLOG,0,0.0,0.0,ap);
  53. setup_display(ARPE_HBAND,LINEAR,SUBRANGE,ap->lo[ARPE_HBAND],min(ap->hi[ARPE_HBAND],200.0),ap);
  54. setup_display(ARPE_AMPL,LINEAR,SUBRANGE,ap->lo[ARPE_AMPL],64.0,ap);
  55. if(mode==ON
  56. || mode==BOOST
  57. || mode==BELOW_BOOST
  58. || mode==ABOVE_BOOST) {
  59. setup_display(ARPE_NONLIN,LOG,SUBRANGE,0.25,4.0,ap);
  60. setup_display(ARPE_SUST,LINEAR,SUBRANGE,ap->lo[ARPE_SUST],min(ap->hi[ARPE_SUST],64.0),ap);
  61. }
  62. break;
  63. case(AVRG):
  64. setup_display(AVRG_AVRG,LINEAR,0,0.0,0.0,ap);
  65. break;
  66. case(BARE):
  67. break;
  68. case(BLUR):
  69. setup_display(BLUR_BLURF,LINEAR,SUBRANGE,ap->lo[BLUR_BLURF],min(ap->hi[BLUR_BLURF],64.0),ap);
  70. break;
  71. case(BLTR):
  72. setup_display(BLUR_BLURF,LINEAR,SUBRANGE,ap->lo[BLUR_BLURF],min(ap->hi[BLUR_BLURF],64.0),ap);
  73. setup_display(BLTR_TRACE,LOG,0,0.0,0.0,ap);
  74. break;
  75. case(BRIDGE):
  76. setup_display(BRG_OFFSET,NUMERIC,0,0.0,0.0,ap);
  77. setup_display(BRG_SF2,NUMERIC,0,0.0,0.0,ap);
  78. setup_display(BRG_SA2,NUMERIC,0,0.0,0.0,ap);
  79. setup_display(BRG_EF2,NUMERIC,0,0.0,0.0,ap);
  80. setup_display(BRG_EA2,NUMERIC,0,0.0,0.0,ap);
  81. setup_display(BRG_STIME,NUMERIC,0,0.0,0.0,ap);
  82. setup_display(BRG_ETIME,NUMERIC,0,0.0,0.0,ap);
  83. break;
  84. case(CHANNEL):
  85. setup_display(CHAN_FRQ,NUMERIC,0,0.0,0.0,ap);
  86. break;
  87. case(CHORD):
  88. case(MULTRANS):
  89. setup_display(CHORD_LOFRQ,PLOG,0,0.0,0.0,ap);
  90. setup_display(CHORD_HIFRQ,PLOG,0,0.0,0.0,ap);
  91. break;
  92. case(CHORUS):
  93. if(mode==CH_AMP
  94. || mode==CH_AMP_FRQ
  95. || mode==CH_AMP_FRQ_UP
  96. || mode==CH_AMP_FRQ_DN)
  97. setup_display(CHORU_AMPR,LOG,0,0.0,0.0,ap);
  98. if(mode==CH_FRQ
  99. || mode==CH_FRQ_UP
  100. || mode==CH_FRQ_DN
  101. || mode==CH_AMP_FRQ
  102. || mode==CH_AMP_FRQ_UP
  103. || mode==CH_AMP_FRQ_DN)
  104. setup_display(CHORU_FRQR,LINEAR,0,0.0,0.0,ap);
  105. break;
  106. case(CLEAN):
  107. switch(mode) {
  108. case(FROMTIME):
  109. case(ANYWHERE):
  110. setup_display(CL_SKIPT,NUMERIC,0,0.0,0.0,ap);
  111. break;
  112. case(FILTERING):
  113. setup_display(CL_FRQ,PLOG,0,0.0,0.0,ap);
  114. break;
  115. }
  116. setup_display(CL_GAIN,NUMERIC,0,0.0,0.0,ap);
  117. break;
  118. case(CROSS):
  119. setup_display(CROS_INTP,LINEAR,0,0.0,0.0,ap);
  120. break;
  121. case(CUT):
  122. setup_display(CUT_STIME,NUMERIC,0,0.0,0.0,ap);
  123. setup_display(CUT_ETIME,NUMERIC,0,0.0,0.0,ap);
  124. break;
  125. case(DIFF):
  126. setup_display(DIFF_CROSS,LINEAR,0,0.0,0.0,ap);
  127. break;
  128. case(DRUNK):
  129. setup_display(DRNK_RANGE,LINEAR,SUBRANGE,ap->lo[DRNK_RANGE],min(ap->hi[DRNK_RANGE],64.0),ap);
  130. setup_display(DRNK_STIME,NUMERIC,0,0.0,0.0,ap);
  131. /* OLD setup_display(DRNK_DUR,NUMERIC,0,0.0,0.0,ap); */
  132. setup_display(DRNK_DUR,LINEAR,SUBRANGE,0.0,duration * 4.0,ap);
  133. break;
  134. case(EXAG):
  135. setup_display(EXAG_EXAG,LOG,SUBRANGE,0.25,4.0,ap);
  136. break;
  137. case(FILT):
  138. setup_display(FILT_PG,LINEAR,SUBRANGE,ap->lo[FILT_PG],16.0,ap);
  139. setup_display(FILT_FRQ1,PLOG,0,0.0,0.0,ap);
  140. setup_display(FILT_QQ,LOG,0,0.0,0.0,ap);
  141. setup_display(FILT_FRQ2,PLOG,0,0.0,0.0,ap);
  142. break;
  143. case(FMNTSEE):
  144. case(FORMANTS):
  145. case(FORMSEE):
  146. break;
  147. case(FOCUS):
  148. setup_display(FOCU_PKCNT,NUMERIC,0,0.0,0.0,ap);
  149. setup_display(FOCU_BW,LOG,0,0.0,0.0,ap);
  150. setup_display(FOCU_LOFRQ,PLOG,0,0.0,0.0,ap);
  151. setup_display(FOCU_HIFRQ,PLOG,0,0.0,0.0,ap);
  152. setup_display(FOCU_STABL,LINEAR,SUBRANGE,ap->lo[FOCU_STABL],64.0,ap);
  153. break;
  154. case(FOLD):
  155. setup_display(FOLD_LOFRQ,PLOG,0,0.0,0.0,ap);
  156. setup_display(FOLD_HIFRQ,PLOG,0,0.0,0.0,ap);
  157. break;
  158. case(FORM):
  159. setup_display(FORM_FTOP,PLOG,0,0.0,0.0,ap);
  160. setup_display(FORM_FBOT,PLOG,0,0.0,0.0,ap);
  161. setup_display(FORM_GAIN,LINEAR,SUBRANGE,ap->lo[FORM_GAIN],16.0,ap);
  162. break;
  163. case(FREEZE):
  164. case(FREEZE2):
  165. break;
  166. case(FREQUENCY):
  167. setup_display(FRQ_CHAN,LINEAR,SUBRANGE,ap->lo[FRQ_CHAN],64.0,ap);
  168. break;
  169. case(GAIN):
  170. setup_display(GAIN_GAIN,LINEAR,SUBRANGE,ap->lo[GAIN_GAIN],16.0,ap);
  171. break;
  172. case(GLIDE):
  173. setup_display(GLIDE_DUR,NUMERIC,0,0.0,0.0,ap);
  174. break;
  175. case(GLIS):
  176. setup_display(GLIS_RATE,LINEAR,SUBRANGE,-4.0,4.0,ap);
  177. setup_display(GLIS_HIFRQ,PLOG,0,0.0,0.0,ap);
  178. if(mode==INHARMONIC)
  179. setup_display(GLIS_SHIFT,LINEAR,SUBRANGE,ap->lo[GLIS_SHIFT],min(ap->hi[GLIS_SHIFT],200.0),ap);
  180. break;
  181. case(GRAB):
  182. setup_display(GRAB_FRZTIME,NUMERIC,0,0.0,0.0,ap);
  183. break;
  184. case(GREQ):
  185. break;
  186. case(INVERT):
  187. break;
  188. case(LEAF):
  189. setup_display(LEAF_SIZE,LINEAR,SUBRANGE,ap->lo[LEAF_SIZE],min(ap->hi[LEAF_SIZE],16.0),ap);
  190. break;
  191. case(LEVEL):
  192. break;
  193. case(MAGNIFY):
  194. setup_display(MAG_FRZTIME,NUMERIC,0,0.0,0.0,ap);
  195. setup_display(MAG_DUR,LINEAR,SUBRANGE,0.0,60.0,ap);
  196. break;
  197. case(MAKE):
  198. break;
  199. case(MAX):
  200. break;
  201. case(MEAN):
  202. setup_display(MEAN_LOF,PLOG,0,0.0,0.0,ap);
  203. setup_display(MEAN_HIF,PLOG,0,0.0,0.0,ap);
  204. setup_display(MEAN_CHAN,NUMERIC,0,0.0,0.0,ap);
  205. break;
  206. case(MORPH):
  207. setup_display(MPH_ASTT,NUMERIC,0,0.0,0.0,ap);
  208. setup_display(MPH_AEND,NUMERIC,0,0.0,0.0,ap);
  209. setup_display(MPH_FSTT,NUMERIC,0,0.0,0.0,ap);
  210. setup_display(MPH_FEND,NUMERIC,0,0.0,0.0,ap);
  211. setup_display(MPH_AEXP,LOG,SUBRANGE,0.25,4.0,ap);
  212. setup_display(MPH_FEXP,LOG,SUBRANGE,0.25,4.0,ap);
  213. setup_display(MPH_STAG,NUMERIC,0,0.0,0.0,ap);
  214. break;
  215. case(NOISE):
  216. setup_display(NOISE_NOIS,LINEAR,0,0.0,0.0,ap);
  217. break;
  218. case(OCT):
  219. setup_display(OCT_HMOVE,LINEAR,SUBRANGE,ap->lo[OCT_HMOVE],64.0,ap);
  220. setup_display(OCT_BREI,LINEAR,0,0.0,0.0,ap);
  221. break;
  222. case(OCTVU):
  223. mintime = min(ap->hi[OCTVU_TSTEP],DEFAULT_TIME_STEP * 2.0);
  224. mintime = min(mintime,duration * SECS_TO_MS);
  225. setup_display(OCTVU_TSTEP,LINEAR,SUBRANGE,ap->lo[OCTVU_TSTEP],mintime,ap);
  226. setup_display(OCTVU_FUND,PLOG,0,0.0,0.0,ap);
  227. break;
  228. case(P_APPROX):
  229. setup_display(PA_PRANG,LINEAR,SUBRANGE,ap->lo[PA_PRANG],12.0,ap);
  230. setup_display(PA_TRANG,LINEAR,SUBRANGE,ap->lo[PA_TRANG],min(ap->hi[PA_TRANG],200.0),ap);
  231. setup_display(PA_SRANG,LINEAR,SUBRANGE,ap->lo[PA_SRANG],min(ap->hi[PA_SRANG],200.0),ap);
  232. break;
  233. case(P_CUT):
  234. setup_display(PC_STT,NUMERIC,0,0.0,0.0,ap);
  235. setup_display(PC_END,NUMERIC,0,0.0,0.0,ap);
  236. break;
  237. case(P_EXAG):
  238. setup_display(PEX_RANG,LINEAR,0,0.0,0.0,ap);
  239. setup_display(PEX_MEAN,LINEAR,0,0.0,0.0,ap);
  240. setup_display(PEX_CNTR,LINEAR,0,0.0,0.0,ap);
  241. break;
  242. case(P_FIX):
  243. setup_display(PF_SCUT,NUMERIC,0,0.0,0.0,ap);
  244. setup_display(PF_ECUT,NUMERIC,0,0.0,0.0,ap);
  245. setup_display(PF_LOF,PLOG,0,0.0,0.0,ap);
  246. setup_display(PF_HIF,PLOG,0,0.0,0.0,ap);
  247. setup_display(PF_SMOOTH,LINEAR,SUBRANGE,ap->lo[PF_SMOOTH],8.0,ap);
  248. setup_display(PF_SMARK,PLOG,0,0.0,0.0,ap);
  249. setup_display(PF_EMARK,PLOG,0,0.0,0.0,ap);
  250. break;
  251. case(P_HEAR):
  252. setup_display(PH_GAIN,NUMERIC,0,0.0,0.0,ap);
  253. break;
  254. case(P_INFO):
  255. break;
  256. case(P_INVERT):
  257. setup_display(PI_MEAN,LINEAR,0,0.0,0.0,ap);
  258. setup_display(PI_TOP,NUMERIC,0,0.0,0.0,ap);
  259. setup_display(PI_BOT,NUMERIC,0,0.0,0.0,ap);
  260. break;
  261. case(P_QUANTISE):
  262. break;
  263. case(P_RANDOMISE):
  264. setup_display(PR_MXINT,LINEAR,SUBRANGE,ap->lo[PR_MXINT],12.0,ap);
  265. setup_display(PR_TSTEP,LINEAR,SUBRANGE,ap->lo[PR_TSTEP],min(ap->hi[PR_TSTEP],200.0),ap);
  266. setup_display(PR_SLEW,LINEAR,SUBRANGE,-8,8.0,ap);
  267. break;
  268. case(P_SEE):
  269. setup_display(PSEE_SCF,LINEAR,SUBRANGE,ap->lo[PSEE_SCF],200.0,ap);
  270. break;
  271. case(P_SMOOTH):
  272. setup_display(PS_TFRAME,LINEAR,SUBRANGE,ap->lo[PS_TFRAME],min(ap->hi[PS_TFRAME],200.0),ap);
  273. setup_display(PS_MEAN,LINEAR,0,0.0,0.0,ap);
  274. break;
  275. case(P_SYNTH):
  276. case(P_INSERT):
  277. case(P_SINSERT):
  278. case(P_PTOSIL):
  279. case(P_NTOSIL):
  280. case(ANALENV):
  281. case(P_BINTOBRK):
  282. case(MAKE2):
  283. case(P_INTERP):
  284. break;
  285. case(P_VOWELS):
  286. setup_display(PV_HWIDTH,LOGNUMERIC,0,0.0,0.0,ap);
  287. setup_display(PV_CURVIT,LOGNUMERIC,0,0.0,0.0,ap);
  288. setup_display(PV_PKRANG,LINEAR,0,0.0,0.0,ap);
  289. setup_display(PV_FUNBAS,LINEAR,0,0.0,0.0,ap);
  290. setup_display(PV_OFFSET,LINEAR,0,0.0,0.0,ap);
  291. break;
  292. case(VFILT):
  293. setup_display(PV_HWIDTH,LOGNUMERIC,0,0.0,0.0,ap);
  294. setup_display(PV_CURVIT,LOGNUMERIC,0,0.0,0.0,ap);
  295. setup_display(PV_PKRANG,LINEAR,0,0.0,0.0,ap);
  296. setup_display(VF_THRESH,LINEAR,0,0.0,0.0,ap);
  297. break;
  298. case(P_GEN):
  299. setup_display(PGEN_SRATE,SRATE,0,0.0,0.0,ap);
  300. setup_display(PGEN_CHANS_INPUT,POWTWO,0,0.0,0.0,ap);
  301. setup_display(PGEN_WINOVLP_INPUT,NUMERIC,0,0.0,0.0,ap);
  302. break;
  303. case(P_TRANSPOSE):
  304. setup_display(PT_TVAL,LINEAR,SUBRANGE,-12.0,12.0,ap);
  305. break;
  306. case(P_VIBRATO):
  307. setup_display(PV_FRQ,LINEAR,0,0.0,0.0,ap);
  308. setup_display(PV_RANG,LINEAR,SUBRANGE,ap->lo[PV_RANG],4.0,ap);
  309. break;
  310. case(P_WRITE):
  311. setup_display(PW_DRED,LINEAR,SUBRANGE,ap->lo[PW_DRED],1.0,ap);
  312. break;
  313. case(P_ZEROS):
  314. break;
  315. case(PEAK):
  316. setup_display(PEAK_CUTOFF,PLOG,0,0.0,0.0,ap);
  317. setup_display(PEAK_TWINDOW,LINEAR,SUBRANGE,ap->lo[PEAK_TWINDOW],min(ap->hi[PEAK_TWINDOW],1.0),ap);
  318. setup_display(PEAK_FWINDOW,LINEAR,SUBRANGE,ap->lo[PEAK_FWINDOW],min(ap->hi[PEAK_FWINDOW],200.0),ap);
  319. break;
  320. case(PICK):
  321. setup_display(PICK_FUND,PLOG,0,0.0,0.0,ap);
  322. setup_display(PICK_LIN,LINEAR,SUBRANGE,ap->lo[PICK_LIN],min(ap->hi[PICK_LIN],200.0),ap);
  323. setup_display(PICK_CLAR,LINEAR,0,0.0,0.0,ap);
  324. break;
  325. case(PITCH):
  326. setup_display(PICH_RNGE,NUMERIC,0,0.0,0.0,ap);
  327. setup_display(PICH_VALID,LINEAR,SUBRANGE,ap->lo[PICH_VALID],min(ap->hi[PICH_VALID],8.0),ap);
  328. setup_display(PICH_SRATIO,NUMERIC,0,0.0,0.0,ap);
  329. setup_display(PICH_MATCH,NUMERIC,0,0.0,0.0,ap);
  330. setup_display(PICH_HILM,PLOG,0,0.0,0.0,ap);
  331. setup_display(PICH_LOLM,PLOG,0,0.0,0.0,ap);
  332. if(mode==PICH_TO_BRK)
  333. setup_display(PICH_DATAREDUCE,LINEAR,SUBRANGE,ap->lo[PICH_DATAREDUCE],1.0,ap);
  334. break;
  335. case(PLUCK):
  336. setup_display(PLUK_GAIN,LINEAR,SUBRANGE,ap->lo[PLUK_GAIN],16.0,ap);
  337. break;
  338. case(PRINT):
  339. setup_display(PRNT_STIME,NUMERIC,0,0.0,0.0,ap);
  340. setup_display(PRNT_WCNT,LINEAR,SUBRANGE,ap->lo[PRNT_WCNT],min(ap->hi[PRNT_WCNT],16.0),ap);
  341. break;
  342. case(REPITCH):
  343. break;
  344. case(REPITCHB):
  345. setup_display(RP_DRED,LINEAR,SUBRANGE,ap->lo[RP_DRED],1.0,ap);
  346. break;
  347. case(REPORT):
  348. setup_display(REPORT_PKCNT,NUMERIC,0,0.0,0.0,ap);
  349. setup_display(REPORT_LOFRQ,PLOG,0,0.0,0.0,ap);
  350. setup_display(REPORT_HIFRQ,PLOG,0,0.0,0.0,ap);
  351. setup_display(REPORT_STABL,NUMERIC,0,0.0,0.0,ap);
  352. break;
  353. case(SCAT):
  354. setup_display(SCAT_CNT,LINEAR,0,0.0,0.0,ap);
  355. setup_display(SCAT_BLOKSIZE,LINEAR,SUBRANGE,ap->lo[SCAT_BLOKSIZE],min(ap->hi[SCAT_BLOKSIZE],200.0),ap);
  356. break;
  357. case(SHIFT):
  358. setup_display(SHIFT_SHIF,LINEAR,SUBRANGE,max(ap->lo[SHIFT_SHIF],-200.0),min(ap->hi[SHIFT_SHIF],200.0),ap);
  359. setup_display(SHIFT_FRQ1,PLOG,0,0.0,0.0,ap);
  360. setup_display(SHIFT_FRQ2,PLOG,0,0.0,0.0,ap);
  361. break;
  362. case(SHIFTP):
  363. setup_display(SHIFTP_FFRQ,PLOG,0,0.0,0.0,ap);
  364. setup_display(SHIFTP_SHF1,LINEAR,SUBRANGE,-24.0,24.0,ap);
  365. setup_display(SHIFTP_SHF2,LINEAR,SUBRANGE,-24.0,24.0,ap);
  366. setup_display(SHIFTP_DEPTH,LINEAR,0,0.0,0.0,ap);
  367. break;
  368. case(SHUFFLE):
  369. setup_display(SHUF_GRPSIZE,LINEAR,SUBRANGE,ap->lo[SHUF_GRPSIZE],16.0,ap);
  370. break;
  371. case(SPLIT):
  372. break;
  373. case(SPREAD):
  374. setup_display(SPREAD_SPRD,LINEAR,0,0.0,0.0,ap);
  375. break;
  376. case(STEP):
  377. setup_display(STEP_STEP,LINEAR,SUBRANGE,ap->lo[STEP_STEP],min(ap->hi[STEP_STEP],1.0),ap);
  378. break;
  379. case(STRETCH):
  380. setup_display(STR_FFRQ,PLOG,0,0.0,0.0,ap);
  381. setup_display(STR_SHIFT,LOG,SUBRANGE,.25,4.0,ap);
  382. setup_display(STR_EXP,LOG,SUBRANGE,.25,4.0,ap);
  383. setup_display(STR_DEPTH,LINEAR,0,0.0,0.0,ap);
  384. break;
  385. case(SUM):
  386. setup_display(SUM_CROSS,LINEAR,0,0.0,0.0,ap);
  387. break;
  388. case(SUPR):
  389. setup_display(SUPR_INDX,LINEAR,0,0.0,0.0,ap);
  390. break;
  391. case(S_TRACE):
  392. setup_display(TRAC_INDX,LINEAR,0,0.0,0.0,ap);
  393. setup_display(TRAC_LOFRQ,PLOG,0,0.0,0.0,ap);
  394. setup_display(TRAC_HIFRQ,PLOG,0,0.0,0.0,ap);
  395. break;
  396. case(TRACK):
  397. setup_display(TRAK_PICH,PLOG,0,0.0,0.0,ap);
  398. setup_display(TRAK_RNGE,LINEAR,0,0.0,0.0,ap);
  399. setup_display(TRAK_VALID,LINEAR,SUBRANGE,ap->lo[TRAK_VALID],min(ap->hi[TRAK_VALID],16.0),ap);
  400. setup_display(TRAK_SRATIO,LINEAR,0,0.0,0.0,ap);
  401. setup_display(TRAK_HILM,PLOG,0,0.0,0.0,ap);
  402. if(mode==TRK_TO_BRK)
  403. setup_display(TRAK_DATAREDUCE,LINEAR,SUBRANGE,ap->lo[PICH_DATAREDUCE],1.0,ap);
  404. break;
  405. case(TRNSF):
  406. setup_display(TRNSF_HIFRQ,PLOG,0,0.0,0.0,ap);
  407. setup_display(TRNSF_LOFRQ,PLOG,0,0.0,0.0,ap);
  408. break;
  409. case(TRNSP):
  410. setup_display(TRNSP_HIFRQ,PLOG,0,0.0,0.0,ap);
  411. setup_display(TRNSP_LOFRQ,PLOG,0,0.0,0.0,ap);
  412. break;
  413. case(TSTRETCH):
  414. setup_display(TSTR_STRETCH,LOG,SUBRANGE,0.0625,16.0,ap);
  415. break;
  416. case(TUNE):
  417. setup_display(TUNE_FOC,LINEAR,0,0.0,0.0,ap);
  418. setup_display(TUNE_CLAR,LINEAR,0,0.0,0.0,ap);
  419. setup_display(TUNE_INDX,LINEAR,0,0.0,0.0,ap);
  420. setup_display(TUNE_BFRQ,PLOG,0,0.0,0.0,ap);
  421. break;
  422. case(VOCODE):
  423. setup_display(VOCO_LOF,PLOG,0,0.0,0.0,ap);
  424. setup_display(VOCO_HIF,PLOG,0,0.0,0.0,ap);
  425. setup_display(VOCO_GAIN,NUMERIC,0,0.0,0.0,ap);
  426. break;
  427. case(WARP):
  428. setup_display(WARP_PRNG,LINEAR,SUBRANGE,ap->lo[WARP_PRNG],12.0,ap);
  429. setup_display(WARP_TRNG,LINEAR,SUBRANGE,ap->lo[WARP_TRNG],min(ap->hi[WARP_TRNG],200.0),ap);
  430. setup_display(WARP_SRNG,LINEAR,SUBRANGE,ap->lo[WARP_SRNG],min(ap->hi[WARP_SRNG],200.0),ap);
  431. break;
  432. case(WAVER):
  433. setup_display(WAVER_VIB,LINEAR,SUBRANGE,ap->lo[WAVER_VIB],min(ap->hi[WAVER_VIB],64.0),ap);
  434. setup_display(WAVER_STR,LINEAR,SUBRANGE,ap->lo[WAVER_STR],min(ap->hi[WAVER_STR],4.0),ap);
  435. setup_display(WAVER_LOFRQ,PLOG,0,0.0,0.0,ap);
  436. setup_display(WAVER_EXP,LOG,SUBRANGE,0.25,4.0,ap);
  437. break;
  438. case(WEAVE):
  439. break;
  440. case(WINDOWCNT):
  441. break;
  442. case(LIMIT):
  443. setup_display(LIMIT_THRESH,LINEAR,0,0.0,0.0,ap);
  444. break;
  445. /******************************* GROUCHO *******************************/
  446. /******************************* GROUCHO *******************************/
  447. /******************************* GROUCHO *******************************/
  448. case(DISTORT):
  449. setup_display(DISTORT_POWFAC,LOG,SUBRANGE,0.25,4.0,ap);
  450. break;
  451. case(DISTORT_ENV):
  452. setup_display(DISTORTE_CYCLECNT,LINEAR,0,0.0,0.0,ap);
  453. setup_display(DISTORTE_TROF,LINEAR,0,0.0,0.0,ap);
  454. setup_display(DISTORTE_EXPON,LOG,SUBRANGE,0.25,4.0,ap);
  455. break;
  456. case(DISTORT_AVG):
  457. setup_display(DISTORTA_CYCLECNT,LINEAR,SUBRANGE,ap->lo[DISTORTA_CYCLECNT],64.0,ap);
  458. setup_display(DISTORTA_MAXLEN,NUMERIC,0,0.0,0.0,ap);
  459. setup_display(DISTORTA_SKIPCNT,LINEAR,SUBRANGE,ap->lo[DISTORTA_SKIPCNT],64.0,ap);
  460. break;
  461. case(DISTORT_OMT):
  462. setup_display(DISTORTO_OMIT,LINEAR,SUBRANGE,ap->lo[DISTORTO_OMIT],63.0,ap);
  463. setup_display(DISTORTO_KEEP,LINEAR,SUBRANGE,ap->lo[DISTORTO_KEEP],64.0,ap);
  464. break;
  465. case(DISTORT_MLT):
  466. case(DISTORT_DIV):
  467. setup_display(DISTORTM_FACTOR,LINEAR,0,0.0,0.0,ap);
  468. break;
  469. case(DISTORT_HRM):
  470. setup_display(DISTORTH_PRESCALE,LINEAR,SUBRANGE,0.0625,16.0,ap);
  471. break;
  472. case(DISTORT_FRC):
  473. setup_display(DISTORTF_SCALE,LINEAR,SUBRANGE,ap->lo[DISTORTF_SCALE],min(ap->hi[DISTORTF_SCALE],64.0),ap);
  474. setup_display(DISTORTF_AMPFACT,LINEAR,SUBRANGE,0.0625,1.0,ap);
  475. setup_display(DISTORTF_PRESCALE,LINEAR,SUBRANGE,0.0625,1.0,ap);
  476. break;
  477. case(DISTORT_REV):
  478. setup_display(DISTORTR_CYCLECNT,LINEAR,SUBRANGE,ap->lo[DISTORTR_CYCLECNT],64.0,ap);
  479. break;
  480. case(DISTORT_SHUF):
  481. setup_display(DISTORTS_CYCLECNT,LINEAR,SUBRANGE,ap->lo[DISTORTS_CYCLECNT],64.0,ap);
  482. setup_display(DISTORTS_SKIPCNT,LINEAR,SUBRANGE,ap->lo[DISTORTS_SKIPCNT],64.0,ap);
  483. break;
  484. case(DISTORT_RPTFL):
  485. setup_display(DISTRPT_CYCLIM,LOGNUMERIC,0,0.0,0.0,ap);
  486. /* fall thro */
  487. case(DISTORT_RPT):
  488. case(DISTORT_RPT2):
  489. setup_display(DISTRPT_MULTIPLY,LINEAR,SUBRANGE,ap->lo[DISTRPT_MULTIPLY],64.0,ap);
  490. setup_display(DISTRPT_CYCLECNT,LINEAR,SUBRANGE,ap->lo[DISTRPT_CYCLECNT],64.0,ap);
  491. setup_display(DISTRPT_SKIPCNT,LINEAR,SUBRANGE,ap->lo[DISTRPT_SKIPCNT],64.0,ap);
  492. break;
  493. case(DISTORT_INTP):
  494. setup_display(DISTINTP_MULTIPLY,LINEAR,SUBRANGE,ap->lo[DISTINTP_MULTIPLY],64.0,ap);
  495. setup_display(DISTINTP_SKIPCNT,LINEAR,SUBRANGE,ap->lo[DISTINTP_SKIPCNT],64.0,ap);
  496. break;
  497. case(DISTORT_DEL):
  498. setup_display(DISTDEL_CYCLECNT,LINEAR,SUBRANGE,ap->lo[DISTDEL_CYCLECNT],64.0,ap);
  499. setup_display(DISTDEL_SKIPCNT,LINEAR,SUBRANGE,ap->lo[DISTDEL_SKIPCNT],64.0,ap);
  500. break;
  501. case(DISTORT_RPL):
  502. setup_display(DISTRPL_CYCLECNT,LINEAR,SUBRANGE,ap->lo[DISTRPL_CYCLECNT],64.0,ap);
  503. setup_display(DISTRPL_SKIPCNT,LINEAR,SUBRANGE,ap->lo[DISTRPL_SKIPCNT],64.0,ap);
  504. break;
  505. case(DISTORT_TEL):
  506. setup_display(DISTTEL_CYCLECNT,LINEAR,SUBRANGE,ap->lo[DISTTEL_CYCLECNT],64.0,ap);
  507. setup_display(DISTTEL_SKIPCNT,LINEAR,SUBRANGE,ap->lo[DISTTEL_SKIPCNT],64.0,ap);
  508. break;
  509. case(DISTORT_FLT):
  510. setup_display(DISTFLT_LOFRQ_CYCLELEN,PLOG,0,0.0,0.0,ap);
  511. setup_display(DISTFLT_HIFRQ_CYCLELEN,PLOG,0,0.0,0.0,ap);
  512. setup_display(DISTFLT_SKIPCNT,LINEAR,SUBRANGE,ap->lo[DISTFLT_SKIPCNT],64.0,ap);
  513. break;
  514. case(DISTORT_INT):
  515. break;
  516. case(DISTORT_CYCLECNT):
  517. break;
  518. case(DISTORT_PCH):
  519. setup_display(DISTPCH_OCTVAR,LOG,SUBRANGE,ap->lo[DISTPCH_OCTVAR],8.0,ap);
  520. setup_display(DISTPCH_CYCLECNT,LINEAR,SUBRANGE,ap->lo[DISTPCH_CYCLECNT],64.0,ap);
  521. setup_display(DISTPCH_SKIPCNT,LINEAR,SUBRANGE,ap->lo[DISTPCH_SKIPCNT],64.0,ap);
  522. break;
  523. case(DISTORT_OVERLOAD):
  524. setup_display(DISTORTER_MULT,LINEAR,0,0.0,0.0,ap);
  525. setup_display(DISTORTER_DEPTH,LINEAR,0,0.0,0.0,ap);
  526. if(mode==OVER_SINE)
  527. setup_display(DISTORTER_FRQ,LOG,0,0.0,0.0,ap);
  528. break;
  529. case(DISTORT_PULSED):
  530. setup_display(PULSE_STARTTIME,NUMERIC,0,0.0,0.0,ap);
  531. setup_display(PULSE_DUR,NUMERIC,0,0.0,0.0,ap);
  532. setup_display(PULSE_FRQ,PLOG,0,0.0,0.0,ap);
  533. setup_display(PULSE_FRQRAND,NUMERIC,0,0.0,0.0,ap);
  534. setup_display(PULSE_TIMERAND,NUMERIC,0,0.0,0.0,ap);
  535. setup_display(PULSE_SHAPERAND,NUMERIC,0,0.0,0.0,ap);
  536. if(mode==PULSE_SYN)
  537. setup_display(PULSE_WAVETIME,LOGNUMERIC,0,0.0,0.0,ap);
  538. else if(mode==PULSE_SYNI)
  539. setup_display(PULSE_WAVETIME,NUMERIC,0,0.0,0.0,ap);
  540. setup_display(PULSE_TRANSPOS,LINEAR,0,0.0,0.0,ap);
  541. setup_display(PULSE_PITCHRAND,NUMERIC,0,0.0,0.0,ap);
  542. break;
  543. case(ZIGZAG):
  544. setup_display(ZIGZAG_START,NUMERIC,0,0.0,0.0,ap);
  545. setup_display(ZIGZAG_END,NUMERIC,0,0.0,0.0,ap);
  546. setup_display(ZIGZAG_DUR,NUMERIC,0,0.0,0.0,ap);
  547. setup_display(ZIGZAG_MIN,LINEAR,SUBRANGE,ap->lo[ZIGZAG_MIN],min(ap->hi[ZIGZAG_MIN],0.25),ap);
  548. setup_display(ZIGZAG_SPLEN,NUMERIC,0,0.0,0.0,ap);
  549. if(mode==ZIGZAG_SELF) {
  550. setup_display(ZIGZAG_MAX,LINEAR,SUBRANGE,ap->lo[ZIGZAG_MAX],min(ap->hi[ZIGZAG_MAX],2.0),ap);
  551. setup_display(ZIGZAG_RSEED,LINEAR,SUBRANGE,ap->lo[ZIGZAG_RSEED],64.0,ap);
  552. }
  553. break;
  554. case(LOOP):
  555. setup_display(LOOP_OUTDUR,LINEAR,SUBRANGE,0,60.0,ap);
  556. setup_display(LOOP_REPETS,LINEAR,SUBRANGE,ap->lo[LOOP_REPETS],256.0,ap);
  557. setup_display(LOOP_START,NUMERIC,0,0.0,0.0,ap);
  558. setup_display(LOOP_LEN,NUMERIC,0,0.0,0.0,ap);
  559. setup_display(LOOP_STEP,LINEAR,SUBRANGE,ap->lo[LOOP_STEP],min(ap->hi[LOOP_STEP],1000.0),ap);
  560. setup_display(LOOP_SPLEN,NUMERIC,0,0.0,0.0,ap);
  561. setup_display(LOOP_SRCHF,LINEAR,SUBRANGE,ap->lo[LOOP_SRCHF],min(ap->hi[LOOP_SRCHF],1000.0),ap);
  562. break;
  563. case(SCRAMBLE):
  564. switch(mode) {
  565. case(SCRAMBLE_RAND):
  566. setup_display(SCRAMBLE_MIN,NUMERIC,0,0.0,0.0,ap);
  567. setup_display(SCRAMBLE_MAX,NUMERIC,0,0.0,0.0,ap);
  568. break;
  569. case(SCRAMBLE_SHRED):
  570. setup_display(SCRAMBLE_LEN,NUMERIC,0,0.0,0.0,ap);
  571. setup_display(SCRAMBLE_SCAT,LINEAR,SUBRANGE,ap->lo[SCRAMBLE_SCAT],min(ap->hi[SCRAMBLE_SCAT],duration*2.0),ap);
  572. break;
  573. }
  574. setup_display(SCRAMBLE_DUR,LINEAR,SUBRANGE,0,60.0,ap);
  575. setup_display(SCRAMBLE_SPLEN,LINEAR,SUBRANGE,5.0,200.0,ap);
  576. setup_display(SCRAMBLE_SEED,LINEAR,SUBRANGE,ap->lo[SCRAMBLE_SEED],64.0,ap);
  577. break;
  578. case(ITERATE):
  579. switch(mode) {
  580. case(ITERATE_DUR):
  581. setup_display(ITER_DUR,LINEAR,SUBRANGE,0,60.0,ap);
  582. break;
  583. case(ITERATE_REPEATS):
  584. setup_display(ITER_REPEATS,LINEAR,SUBRANGE,ap->lo[ITER_REPEATS],64.0,ap);
  585. break;
  586. }
  587. setup_display(ITER_DELAY,LINEAR,SUBRANGE,ap->lo[ITER_DELAY],min(ap->hi[ITER_DELAY],duration),ap);
  588. setup_display(ITER_RANDOM,LINEAR,0,0.0,0.0,ap);
  589. setup_display(ITER_PSCAT,LINEAR,0,0.0,0.0,ap);
  590. setup_display(ITER_ASCAT,LINEAR,0,0.0,0.0,ap);
  591. setup_display(ITER_FADE,LINEAR,0,0.0,0.0,ap);
  592. setup_display(ITER_RSEED,LINEAR,SUBRANGE,ap->lo[ITER_RSEED],min(ap->hi[ITER_RSEED],64.0),ap);
  593. setup_display(ITER_GAIN,NUMERIC,0,0.0,0.0,ap);
  594. break;
  595. case(ITERATE_EXTEND):
  596. switch(mode) {
  597. case(ITERATE_DUR):
  598. setup_display(ITER_DUR,LINEAR,SUBRANGE,0,60.0,ap);
  599. break;
  600. case(ITERATE_REPEATS):
  601. setup_display(ITER_REPEATS,LINEAR,SUBRANGE,ap->lo[ITER_REPEATS],64.0,ap);
  602. break;
  603. }
  604. setup_display(ITER_DELAY,LINEAR,SUBRANGE,ap->lo[ITER_DELAY],min(ap->hi[ITER_DELAY],duration),ap);
  605. setup_display(ITER_RANDOM,LINEAR,0,0.0,0.0,ap);
  606. setup_display(ITER_PSCAT,LINEAR,0,0.0,0.0,ap);
  607. setup_display(ITER_ASCAT,LINEAR,0,0.0,0.0,ap);
  608. setup_display(CHUNKSTART,NUMERIC,0,0.0,0.0,ap);
  609. setup_display(CHUNKEND,NUMERIC,0,0.0,0.0,ap);
  610. setup_display(ITER_LGAIN,NUMERIC,0,0.0,0.0,ap);
  611. setup_display(ITER_RRSEED,LINEAR,SUBRANGE,ap->lo[ITER_RRSEED],min(ap->hi[ITER_RRSEED],64.0),ap);
  612. break;
  613. case(DRUNKWALK):
  614. setup_display(DRNK_TOTALDUR,LINEAR,SUBRANGE,0.0,60.0,ap);
  615. setup_display(DRNK_LOCUS,LINEAR,0,0.0,0.0,ap);
  616. setup_display(DRNK_AMBITUS,LINEAR,SUBRANGE,ap->lo[DRNK_AMBITUS],min(ap->hi[DRNK_AMBITUS],1.0),ap);
  617. setup_display(DRNK_GSTEP,LINEAR,SUBRANGE,ap->lo[DRNK_GSTEP],min(ap->hi[DRNK_GSTEP],1.0),ap);
  618. setup_display(DRNK_CLOKTIK,LINEAR,SUBRANGE,ap->lo[DRNK_CLOKTIK],min(ap->hi[DRNK_CLOKTIK],1.0),ap);
  619. setup_display(DRNK_MIN_DRNKTIK,LINEAR,SUBRANGE,ap->lo[DRNK_MIN_DRNKTIK],64.0,ap);
  620. setup_display(DRNK_MAX_DRNKTIK,LINEAR,SUBRANGE,ap->lo[DRNK_MAX_DRNKTIK],64.0,ap);
  621. setup_display(DRNK_SPLICELEN,LINEAR,SUBRANGE,ap->lo[DRNK_SPLICELEN],min(ap->hi[DRNK_SPLICELEN],500.0),ap);
  622. setup_display(DRNK_CLOKRND,LINEAR,0,0.0,0.0,ap);
  623. setup_display(DRNK_OVERLAP,LINEAR,0,0.0,0.0,ap);
  624. setup_display(DRNK_RSEED,LINEAR,SUBRANGE,ap->lo[DRNK_RSEED],64.0,ap);
  625. if(mode==HAS_SOBER_MOMENTS) {
  626. setup_display(DRNK_MIN_PAUS,LINEAR,SUBRANGE,ap->lo[DRNK_MIN_PAUS],min(ap->hi[DRNK_MIN_PAUS],2.0),ap);
  627. setup_display(DRNK_MAX_PAUS,LINEAR,SUBRANGE,ap->lo[DRNK_MAX_PAUS],min(ap->hi[DRNK_MAX_PAUS],2.0),ap);
  628. }
  629. break;
  630. case(SIMPLE_TEX): case(TIMED): case(GROUPS): case(TGROUPS):
  631. case(DECORATED): case(PREDECOR): case(POSTDECOR):
  632. case(ORNATE): case(PREORNATE):case(POSTORNATE):
  633. case(MOTIFS): case(MOTIFSIN): case(TMOTIFS): case(TMOTIFSIN):
  634. setup_display(TEXTURE_DUR,LINEAR,SUBRANGE,0.0,60.0,ap);
  635. switch(process) {
  636. case(SIMPLE_TEX): case(GROUPS): case(MOTIFS): case(MOTIFSIN):
  637. setup_display(TEXTURE_PACK,LOG,SUBRANGE,0.002,2.0,ap);
  638. break;
  639. case(TIMED): case(TGROUPS): case(TMOTIFS): case(TMOTIFSIN):
  640. case(DECORATED): case(PREDECOR): case(POSTDECOR):
  641. case(ORNATE): case(PREORNATE): case(POSTORNATE):
  642. setup_display(TEXTURE_SKIP,LINEAR,SUBRANGE,0.0,10.0,ap);
  643. break;
  644. }
  645. setup_display(TEXTURE_SCAT,LINEAR,SUBRANGE,ap->lo[TEXTURE_SCAT],2.0,ap);
  646. setup_display(TEXTURE_TGRID,LINEAR,SUBRANGE,ap->lo[TEXTURE_TGRID],100.0,ap);
  647. setup_display(TEXTURE_INSLO,LINEAR,SUBRANGE,ap->lo[TEXTURE_INSLO],64.0,ap);
  648. setup_display(TEXTURE_INSHI,LINEAR,SUBRANGE,ap->lo[TEXTURE_INSHI],64.0,ap);
  649. setup_display(TEXTURE_MAXAMP,LINEAR,0,0.0,0.0,ap);
  650. setup_display(TEXTURE_MINAMP,LINEAR,0,0.0,0.0,ap);
  651. setup_display(TEXTURE_MAXDUR,LINEAR,SUBRANGE,ap->lo[TEXTURE_MAXDUR],min(ap->hi[TEXTURE_MAXDUR],2.0),ap);
  652. setup_display(TEXTURE_MINDUR,LINEAR,SUBRANGE,ap->lo[TEXTURE_MINDUR],min(ap->hi[TEXTURE_MINDUR],2.0),ap);
  653. setup_display(TEXTURE_MAXPICH,LINEAR,0,0.0,0.0,ap);
  654. setup_display(TEXTURE_MINPICH,LINEAR,0,0.0,0.0,ap);
  655. if(process == SIMPLE_TEX)
  656. setup_display(TEX_PHGRID,LINEAR,0,0.0,0.0,ap);
  657. else
  658. setup_display(TEX_PHGRID,LINEAR,SUBRANGE,ap->lo[TEX_PHGRID],min(ap->hi[TEX_PHGRID],100.0),ap);
  659. setup_display(TEX_GPSPACE,LINEAR,0,0.0,0.0,ap);
  660. setup_display(TEX_GRPSPRANGE,LINEAR,0,0.0,0.0,ap);
  661. setup_display(TEX_AMPRISE,LINEAR,0,0.0,0.0,ap);
  662. setup_display(TEX_AMPCONT,LINEAR,0,0.0,0.0,ap);
  663. setup_display(TEX_GPSIZELO,LINEAR,SUBRANGE,ap->lo[TEX_GPSIZELO],min(ap->hi[TEX_GPSIZELO],64.0),ap);
  664. setup_display(TEX_GPSIZEHI,LINEAR,SUBRANGE,ap->lo[TEX_GPSIZEHI],min(ap->hi[TEX_GPSIZEHI],64.0),ap);
  665. setup_display(TEX_GPPACKLO,LINEAR,SUBRANGE,20,1000,ap);
  666. setup_display(TEX_GPPACKHI,LINEAR,SUBRANGE,20,1000,ap);
  667. if(mode==TEX_NEUTRAL) { /* midipitches */
  668. setup_display(TEX_GPRANGLO,LINEAR,SUBRANGE,ap->lo[TEX_GPRANGLO],min(ap->hi[TEX_GPRANGLO],MAXMIDI),ap);
  669. setup_display(TEX_GPRANGHI,LINEAR,SUBRANGE,ap->lo[TEX_GPRANGHI],min(ap->hi[TEX_GPRANGHI],MAXMIDI),ap);
  670. } else { /* notes of hfield */
  671. setup_display(TEX_GPRANGLO,LINEAR,SUBRANGE,ap->lo[TEX_GPRANGLO],min(ap->hi[TEX_GPRANGLO],64.0),ap);
  672. setup_display(TEX_GPRANGHI,LINEAR,SUBRANGE,ap->lo[TEX_GPRANGHI],min(ap->hi[TEX_GPRANGHI],64.0),ap);
  673. }
  674. setup_display(TEX_MULTLO,LOG,SUBRANGE,0.125,8.0,ap);
  675. setup_display(TEX_MULTHI,LOG,SUBRANGE,0.125,8.0,ap);
  676. setup_display(TEX_DECPCENTRE,LINEAR,0,0.0,0.0,ap);
  677. setup_display(TEXTURE_ATTEN,LINEAR,0,0.0,0.0,ap);
  678. setup_display(TEXTURE_POS,LINEAR,0,0.0,0.0,ap);
  679. setup_display(TEXTURE_SPRD,LINEAR,0,0.0,0.0,ap);
  680. setup_display(TEXTURE_SEED,LINEAR,SUBRANGE,ap->lo[TEXTURE_SEED],64.0,ap);
  681. break;
  682. case(GRAIN_COUNT): case(GRAIN_OMIT): case(GRAIN_DUPLICATE):
  683. case(GRAIN_REORDER): case(GRAIN_REPITCH): case(GRAIN_RERHYTHM):
  684. case(GRAIN_REMOTIF): case(GRAIN_TIMEWARP): case(GRAIN_POSITION):
  685. case(GRAIN_ALIGN): case(GRAIN_GET): case(GRAIN_REVERSE):
  686. setup_display(GR_BLEN,NUMERIC,0,0.0,0.0,ap);
  687. setup_display(GR_GATE,LINEAR,0,0.0,0.0,ap);
  688. setup_display(GR_MINTIME,LINEAR,SUBRANGE,ap->lo[GR_MINTIME],min(ap->hi[GR_MINTIME],0.2),ap);
  689. setup_display(GR_WINSIZE,LINEAR,SUBRANGE,ap->lo[GR_WINSIZE],min(ap->hi[GR_WINSIZE],1000.0),ap);
  690. switch(process) {
  691. case(GRAIN_OMIT):
  692. setup_display(GR_KEEP,LINEAR,0,0.0,0.0,ap);
  693. setup_display(GR_OUT_OF,LINEAR,0,0.0,0.0,ap);
  694. break;
  695. case(GRAIN_DUPLICATE):
  696. setup_display(GR_DUPLS,LINEAR,SUBRANGE,ap->lo[GR_DUPLS],64.0,ap);
  697. break;
  698. case(GRAIN_TIMEWARP):
  699. setup_display(GR_TSTRETCH,LOG,SUBRANGE,0.25,4.0,ap);
  700. break;
  701. case(GRAIN_POSITION):
  702. setup_display(GR_OFFSET,NUMERIC,0,0.0,0.0,ap);
  703. break;
  704. case(GRAIN_ALIGN):
  705. setup_display(GR_OFFSET,NUMERIC,0,0.0,0.0,ap);
  706. setup_display(GR_GATE2,LINEAR,0,0.0,0.0,ap);
  707. break;
  708. }
  709. break;
  710. case(ENV_CREATE):
  711. setup_display(ENV_WSIZE,LOG,SUBRANGE,ap->lo[ENV_WSIZE],min(ap->hi[ENV_WSIZE],1000.0),ap);
  712. break;
  713. case(ENV_BRKTOENV):
  714. case(ENV_DBBRKTOENV):
  715. case(ENV_IMPOSE):
  716. case(ENV_PROPOR):
  717. case(ENV_REPLACE):
  718. setup_display(ENV_WSIZE,LINEAR,SUBRANGE,ap->lo[ENV_WSIZE],min(ap->hi[ENV_WSIZE],1000.0),ap);
  719. break;
  720. case(ENV_EXTRACT):
  721. setup_display(ENV_WSIZE,LINEAR,SUBRANGE,ap->lo[ENV_WSIZE],min(ap->hi[ENV_WSIZE],1000.0),ap);
  722. if(mode==ENV_BRKFILE_OUT)
  723. setup_display(ENV_DATAREDUCE,LINEAR,0,0.0,0.0,ap);
  724. break;
  725. case(ENV_ENVTOBRK):
  726. case(ENV_ENVTODBBRK):
  727. setup_display(ENV_DATAREDUCE,NUMERIC,0,0.0,0.0,ap);
  728. break;
  729. case(ENV_WARPING):
  730. case(ENV_REPLOTTING):
  731. setup_display(ENV_WSIZE,LINEAR,SUBRANGE,ap->lo[ENV_WSIZE],min(ap->hi[ENV_WSIZE],1000.0),ap);
  732. /* fall thro */
  733. case(ENV_RESHAPING):
  734. switch(mode) {
  735. case(ENV_NORMALISE):
  736. case(ENV_REVERSE):
  737. case(ENV_CEILING):
  738. break;
  739. case(ENV_DUCKED):
  740. setup_display(ENV_GATE,LINEAR,0,0.0,0.0,ap);
  741. setup_display(ENV_THRESHOLD,LINEAR,0,0.0,0.0,ap);
  742. break;
  743. case(ENV_EXAGGERATING):
  744. setup_display(ENV_EXAG,LOG,SUBRANGE,0.125,8.0,ap);
  745. break;
  746. case(ENV_ATTENUATING):
  747. setup_display(ENV_ATTEN,LINEAR,0,0.0,0.0,ap);
  748. break;
  749. case(ENV_LIFTING):
  750. setup_display(ENV_LIFT,LINEAR,0,0.0,0.0,ap);
  751. break;
  752. case(ENV_FLATTENING):
  753. setup_display(ENV_FLATN,LINEAR,SUBRANGE,ap->lo[ENV_FLATN],16.0,ap);
  754. break;
  755. case(ENV_TSTRETCHING):
  756. setup_display(ENV_TSTRETCH,LOG,SUBRANGE,0.125,8.0,ap);
  757. break;
  758. case(ENV_GATING):
  759. setup_display(ENV_GATE,LINEAR,0,0.0,0.0,ap);
  760. setup_display(ENV_SMOOTH,LINEAR,SUBRANGE,ap->lo[ENV_SMOOTH],16.0,ap);
  761. break;
  762. case(ENV_INVERTING):
  763. setup_display(ENV_GATE,LINEAR,0,0.0,0.0,ap);
  764. setup_display(ENV_MIRROR,LINEAR,0,0.0,0.0,ap);
  765. break;
  766. case(ENV_LIMITING):
  767. setup_display(ENV_LIMIT,LINEAR,0,0.0,0.0,ap);
  768. setup_display(ENV_THRESHOLD,LINEAR,0,0.0,0.0,ap);
  769. break;
  770. case(ENV_CORRUGATING):
  771. setup_display(ENV_TROFDEL,LINEAR,SUBRANGE,ap->lo[ENV_TROFDEL],8.0,ap);
  772. /* fall thro */
  773. case(ENV_PEAKCNT):
  774. setup_display(ENV_PKSRCHWIDTH,LINEAR,SUBRANGE,ap->lo[ENV_PKSRCHWIDTH],64.0,ap);
  775. break;
  776. case(ENV_EXPANDING):
  777. setup_display(ENV_GATE,LINEAR,0,0.0,0.0,ap);
  778. setup_display(ENV_THRESHOLD,LINEAR,0,0.0,0.0,ap);
  779. setup_display(ENV_SMOOTH,LINEAR,SUBRANGE,0.0,64.0,ap);
  780. break;
  781. case(ENV_TRIGGERING):
  782. setup_display(ENV_GATE,LINEAR,0,0.0,0.0,ap);
  783. setup_display(ENV_TRIGRISE,NUMERIC,0,0.0,0.0,ap);
  784. setup_display(ENV_TRIGDUR,LINEAR,SUBRANGE,ap->lo[ENV_TRIGDUR],ENV_DEFAULT_TRIGDUR * 2.0,ap);
  785. break;
  786. }
  787. if(process==ENV_REPLOTTING)
  788. setup_display(ENV_DATAREDUCE,LINEAR,0,0.0,0.0,ap);
  789. break;
  790. case(ENV_DOVETAILING):
  791. switch(mode) {
  792. case(DOVE):
  793. setup_display(ENV_STARTTRIM,NUMERIC,0,0.0,0.0,ap);
  794. setup_display(ENV_ENDTRIM,NUMERIC,0,0.0,0.0,ap);
  795. setup_display(ENV_STARTTYPE,CHECKBUTTON,0,0.0,0.0,ap);
  796. setup_display(ENV_ENDTYPE,CHECKBUTTON,0,0.0,0.0,ap);
  797. setup_display(ENV_TIMETYPE,TIMETYPE,0,0.0,0.0,ap);
  798. break;
  799. case(DOVEDBL):
  800. setup_display(ENV_STARTTRIM,NUMERIC,0,0.0,0.0,ap);
  801. setup_display(ENV_ENDTRIM,NUMERIC,0,0.0,0.0,ap);
  802. setup_display(ENV_TIMETYPE,TIMETYPE,0,0.0,0.0,ap);
  803. break;
  804. }
  805. break;
  806. case(ENV_CURTAILING):
  807. switch(mode) {
  808. case(ENV_START_AND_END):
  809. case(ENV_START_AND_DUR):
  810. case(ENV_START_ONLY):
  811. setup_display(ENV_STARTTIME,NUMERIC,0,0.0,0.0,ap);
  812. setup_display(ENV_ENDTIME,NUMERIC,0,0.0,0.0,ap);
  813. setup_display(ENV_ENVTYPE,CHECKBUTTON,0,0.0,0.0,ap);
  814. setup_display(ENV_TIMETYPE,TIMETYPE,0,0.0,0.0,ap);
  815. break;
  816. case(ENV_START_AND_END_D):
  817. case(ENV_START_AND_DUR_D):
  818. case(ENV_START_ONLY_D):
  819. setup_display(ENV_STARTTIME,NUMERIC,0,0.0,0.0,ap);
  820. setup_display(ENV_ENDTIME,NUMERIC,0,0.0,0.0,ap);
  821. setup_display(ENV_TIMETYPE,TIMETYPE,0,0.0,0.0,ap);
  822. break;
  823. }
  824. break;
  825. case(ENV_SWELL):
  826. setup_display(ENV_PEAKTIME,NUMERIC,0,0.0,0.0,ap);
  827. setup_display(ENV_ENVTYPE,CHECKBUTTON,0,0.0,0.0,ap);
  828. break;
  829. case(ENV_ATTACK):
  830. switch(mode) {
  831. case(ENV_ATK_GATED):
  832. setup_display(ENV_ATK_GATE,NUMERIC,0,0.0,0.0,ap);
  833. break;
  834. case(ENV_ATK_TIMED):
  835. case(ENV_ATK_XTIME):
  836. setup_display(ENV_ATK_ATTIME,NUMERIC,0,0.0,0.0,ap);
  837. break;
  838. case(ENV_ATK_ATMAX):
  839. break;
  840. }
  841. setup_display(ENV_ATK_GAIN,LINEAR,SUBRANGE,1.0,64.0,ap);
  842. setup_display(ENV_ATK_ONSET,LINEAR,SUBRANGE,ap->lo[ENV_ATK_ONSET],200.0,ap);
  843. setup_display(ENV_ATK_TAIL,LINEAR,SUBRANGE,ap->lo[ENV_ATK_TAIL],min(ap->hi[ENV_ATK_TAIL],200.0),ap);
  844. setup_display(ENV_ATK_ENVTYPE,CHECKBUTTON,0,0.0,0.0,ap);
  845. break;
  846. case(ENV_PLUCK):
  847. setup_display(ENV_PLK_ENDSAMP,NUMERIC,0,0.0,0.0,ap);
  848. setup_display(ENV_PLK_WAVELEN,NUMERIC,0,0.0,0.0,ap);
  849. setup_display(ENV_PLK_CYCLEN,LINEAR,SUBRANGE,ap->lo[ENV_PLK_CYCLEN],64.0,ap);
  850. setup_display(ENV_PLK_DECAY,NUMERIC,0,0.0,0.0,ap);
  851. break;
  852. case(ENV_TREMOL):
  853. setup_display(ENV_TREM_FRQ,LINEAR,SUBRANGE,ap->lo[ENV_TREM_FRQ],64.0,ap);
  854. setup_display(ENV_TREM_DEPTH,LINEAR,0,0.0,0.0,ap);
  855. setup_display(ENV_TREM_AMP,LINEAR,0,0.0,0.0,ap);
  856. break;
  857. case(ENV_DBBRKTOBRK):
  858. case(ENV_BRKTODBBRK):
  859. break;
  860. case(MIX):
  861. setup_display(MIX_ATTEN,NUMERIC,0,0.0,0.0,ap);
  862. /* fall thro */
  863. case(MIXMAX):
  864. setup_display(MIX_START,NUMERIC,0,0.0,0.0,ap);
  865. setup_display(MIX_END,NUMERIC,0,0.0,0.0,ap);
  866. break;
  867. case(MIXTWO):
  868. setup_display(MIX_STAGGER,NUMERIC,0,0.0,0.0,ap);
  869. setup_display(MIX_SKIP,LINEAR,SUBRANGE,0.0,duration * 8.0,ap);
  870. setup_display(MIX_SKEW,LOG,SUBRANGE,0.25,8.0,ap);
  871. setup_display(MIX_DURA,NUMERIC,0,0.0,0.0,ap);
  872. setup_display(MIX_STTA,NUMERIC,0,0.0,0.0,ap);
  873. break;
  874. case(MIXMANY):
  875. break;
  876. case(MIXBALANCE):
  877. setup_display(MIX_STAGGER,LINEAR,0,0.0,0.0,ap);
  878. setup_display(MIX_SKIP,NUMERIC,0,0.0,0.0,ap);
  879. setup_display(MIX_SKEW,NUMERIC,0,0.0,0.0,ap);
  880. break;
  881. case(MIXCROSS):
  882. setup_display(MCR_STAGGER,NUMERIC,0,0.0,0.0,ap);
  883. setup_display(MCR_BEGIN,NUMERIC,0,0.0,0.0,ap);
  884. setup_display(MCR_END,LINEAR,SUBRANGE,ap->lo[MCR_END],min(ap->hi[MCR_END],duration * 2.0),ap);
  885. if(mode==MCCOS)
  886. setup_display(MCR_POWFAC,LOG,0,0.0,0.0,ap);
  887. break;
  888. case(MIXINBETWEEN):
  889. switch(mode) {
  890. case(INBI_COUNT):
  891. setup_display(INBETW,LINEAR,SUBRANGE,ap->lo[INBETW],32.0,ap);
  892. break;
  893. case(INBI_RATIO):
  894. break;
  895. }
  896. break;
  897. case(MIXTEST):
  898. case(MIXFORMAT):
  899. case(MIXDUMMY):
  900. case(MIXINTERL):
  901. case(MIXSYNC):
  902. case(MIX_ON_GRID):
  903. case(ADDTOMIX):
  904. break;
  905. case(AUTOMIX):
  906. setup_display(0,LINEAR,SUBRANGE,0.0,2.0,ap);
  907. break;
  908. case(MIX_PAN):
  909. setup_display(PAN_PAN,LINEAR,SUBRANGE,-1.0,1.0,ap);
  910. break;
  911. case(MIX_AT_STEP):
  912. setup_display(MIX_STEP,NUMERIC,0,0.0,0.0,ap);
  913. break;
  914. case(SHUDDER):
  915. setup_display(SHUD_STARTTIME,NUMERIC,0,0.0,0.0,ap);
  916. setup_display(SHUD_FRQ,LOG,0,0.0,0.0,ap);
  917. setup_display(SHUD_SCAT,LINEAR,0,0.0,0.0,ap);
  918. setup_display(SHUD_SPREAD,LINEAR,0,0.0,0.0,ap);
  919. setup_display(SHUD_MINDEPTH,LINEAR,0,0.0,0.0,ap);
  920. setup_display(SHUD_MAXDEPTH,LINEAR,0,0.0,0.0,ap);
  921. setup_display(SHUD_MINWIDTH,LOG,0,0.0,0.0,ap);
  922. setup_display(SHUD_MAXWIDTH,LOG,0,0.0,0.0,ap);
  923. break;
  924. case(MIXSYNCATT):
  925. setup_display(MSY_WFAC,TWOFAC,0,0.0,0.0,ap);
  926. break;
  927. case(MIXGAIN):
  928. setup_display(MIX_GAIN,NUMERIC,0,0.0,0.0,ap);
  929. setup_display(MSH_STARTLINE,NUMERIC,0,0.0,0.0,ap);
  930. setup_display(MSH_ENDLINE,NUMERIC,0,0.0,0.0,ap);
  931. break;
  932. case(MIXTWARP):
  933. switch(mode) {
  934. case(MTW_REVERSE_T): case(MTW_REVERSE_NT):
  935. case(MTW_FREEZE_T): case(MTW_FREEZE_NT):
  936. case(MTW_TIMESORT):
  937. break;
  938. case(MTW_SCATTER):
  939. setup_display(MTW_PARAM,NUMERIC,0,0.0,0.0,ap);
  940. break;
  941. case(MTW_DOMINO):
  942. setup_display(MTW_PARAM,LINEAR,SUBRANGE,-4.0,4.0,ap);
  943. break;
  944. case(MTW_ADD_TO_TG):
  945. setup_display(MTW_PARAM,LINEAR,SUBRANGE,-2.0,16.0,ap);
  946. break;
  947. case(MTW_CREATE_TG_1):
  948. setup_display(MTW_PARAM,LINEAR,SUBRANGE,ap->lo[MTW_PARAM],64.0,ap);
  949. break;
  950. case(MTW_CREATE_TG_2):
  951. setup_display(MTW_PARAM,LINEAR,SUBRANGE,ap->lo[MTW_PARAM],16.0,ap);
  952. break;
  953. case(MTW_CREATE_TG_3):
  954. setup_display(MTW_PARAM,LINEAR,SUBRANGE,ap->lo[MTW_PARAM],1.0,ap);
  955. break;
  956. case(MTW_CREATE_TG_4):
  957. setup_display(MTW_PARAM,LINEAR,SUBRANGE,ap->lo[MTW_PARAM],1.1,ap);
  958. break;
  959. case(MTW_ENLARGE_TG_1):
  960. setup_display(MTW_PARAM,LINEAR,SUBRANGE,ap->lo[MTW_PARAM],64.0,ap);
  961. break;
  962. case(MTW_ENLARGE_TG_2):
  963. setup_display(MTW_PARAM,LINEAR,SUBRANGE,ap->lo[MTW_PARAM],1.0,ap);
  964. break;
  965. case(MTW_ENLARGE_TG_3):
  966. setup_display(MTW_PARAM,LINEAR,SUBRANGE,ap->lo[MTW_PARAM],1.0,ap);
  967. break;
  968. case(MTW_ENLARGE_TG_4):
  969. setup_display(MTW_PARAM,LINEAR,SUBRANGE,ap->lo[MTW_PARAM],1.1,ap);
  970. break;
  971. }
  972. if(mode!=MTW_TIMESORT) {
  973. setup_display(MSH_STARTLINE,NUMERIC,0,0.0,0.0,ap);
  974. setup_display(MSH_ENDLINE,NUMERIC,0,0.0,0.0,ap);
  975. }
  976. break;
  977. case(MIXSWARP):
  978. switch(mode) {
  979. case(MSW_TWISTALL):
  980. break;
  981. case(MSW_TWISTONE):
  982. setup_display(MSW_TWLINE,NUMERIC,0,0.0,0.0,ap);
  983. break;
  984. case(MSW_NARROWED):
  985. setup_display(MSW_NARROWING,NUMERIC,0,0.0,0.0,ap);
  986. break;
  987. case(MSW_LEFTWARDS):
  988. case(MSW_RIGHTWARDS):
  989. case(MSW_RANDOM):
  990. case(MSW_RANDOM_ALT):
  991. setup_display(MSW_POS1,NUMERIC,0,0.0,0.0,ap);
  992. setup_display(MSW_POS2,NUMERIC,0,0.0,0.0,ap);
  993. break;
  994. case(MSW_FIXED):
  995. setup_display(MSW_POS1,NUMERIC,0,0.0,0.0,ap);
  996. break;
  997. }
  998. if(mode!=MSW_TWISTALL && mode!=MSW_TWISTONE) {
  999. setup_display(MSH_STARTLINE,NUMERIC,0,0.0,0.0,ap);
  1000. setup_display(MSH_ENDLINE,NUMERIC,0,0.0,0.0,ap);
  1001. }
  1002. break;
  1003. case(MIXSHUFL):
  1004. setup_display(MSH_STARTLINE,NUMERIC,0,0.0,0.0,ap);
  1005. setup_display(MSH_ENDLINE,NUMERIC,0,0.0,0.0,ap);
  1006. break;
  1007. case(EQ):
  1008. switch(mode) {
  1009. case(FLT_PEAKING):
  1010. setup_display(FLT_BW,LOG,0,0.0,0.0,ap);
  1011. /* fall thro */
  1012. default:
  1013. setup_display(FLT_BOOST,NUMERIC,0,0.0,0.0,ap);
  1014. setup_display(FLT_ONEFRQ,PLOG,0,0.0,0.0,ap);
  1015. setup_display(FLT_PRESCALE,LOG,0,0.0,0.0,ap);
  1016. setup_display(FILT_TAIL,NUMERIC,0,0.0,0.0,ap);
  1017. break;
  1018. }
  1019. break;
  1020. case(LPHP):
  1021. setup_display(FLT_GAIN,NUMERIC,0,0.0,0.0,ap);
  1022. setup_display(FLT_PRESCALE,LOG,0,0.0,0.0,ap);
  1023. switch(mode) {
  1024. case(FLT_HZ):
  1025. setup_display(FLT_PASSFRQ,PLOG,0,0.0,0.0,ap);
  1026. setup_display(FLT_STOPFRQ,PLOG,0,0.0,0.0,ap);
  1027. break;
  1028. case(FLT_MIDI):
  1029. setup_display(FLT_PASSFRQ,LINEAR,0,0.0,0.0,ap);
  1030. setup_display(FLT_STOPFRQ,LINEAR,0,0.0,0.0,ap);
  1031. break;
  1032. }
  1033. setup_display(FILT_TAIL,NUMERIC,0,0.0,0.0,ap);
  1034. break;
  1035. case(FSTATVAR):
  1036. setup_display(FLT_Q,LINEAR,SUBRANGE,0.01,1.0,ap);
  1037. setup_display(FLT_GAIN,LOG,SUBRANGE,0.02,50.0,ap);
  1038. setup_display(FLT_ONEFRQ,PLOG,0,0.0,0.0,ap);
  1039. setup_display(FILT_TAIL,NUMERIC,0,0.0,0.0,ap);
  1040. break;
  1041. case(FLTBANKN):
  1042. setup_display(FLT_Q,LINEAR,SUBRANGE,1.0,64.0,ap);
  1043. setup_display(FLT_GAIN,LOG,SUBRANGE,0.02,50.0,ap);
  1044. /* fall thro */
  1045. case(FLTBANKC):
  1046. setup_display(FLT_LOFRQ,PLOG,0,0.0,0.0,ap);
  1047. setup_display(FLT_HIFRQ,PLOG,0,0.0,0.0,ap);
  1048. switch(mode) {
  1049. case(FLT_LINOFFSET):
  1050. setup_display(FLT_OFFSET,LINEAR,SUBRANGE,-200.0,200.0,ap);
  1051. break;
  1052. case(FLT_EQUALSPAN):
  1053. setup_display(FLT_INCOUNT,LINEAR,SUBRANGE,ap->lo[FLT_INCOUNT],64.0,ap);
  1054. break;
  1055. case(FLT_EQUALINT):
  1056. setup_display(FLT_INTSIZE,LINEAR,SUBRANGE,ap->lo[FLT_INTSIZE],12.0,ap);
  1057. break;
  1058. }
  1059. setup_display(FLT_RANDFACT,NUMERIC,0,0.0,0.0,ap);
  1060. setup_display(FILT_TAIL,NUMERIC,0,0.0,0.0,ap);
  1061. break;
  1062. case(FLTBANKU):
  1063. setup_display(FLT_Q,LINEAR,SUBRANGE,1.0,64.0,ap);
  1064. setup_display(FLT_GAIN,LOG,SUBRANGE,0.02,50.0,ap);
  1065. setup_display(FILT_TAIL,NUMERIC,0,0.0,0.0,ap);
  1066. break;
  1067. case(FLTBANKV):
  1068. setup_display(FLT_Q,LINEAR,SUBRANGE,1.0,64.0,ap);
  1069. setup_display(FLT_GAIN,LOG,SUBRANGE,0.02,50.0,ap);
  1070. setup_display(FLT_HARMCNT,LINEAR,SUBRANGE,ap->lo[FLT_HARMCNT],64.0,ap);
  1071. setup_display(FLT_ROLLOFF,LINEAR,0,0.0,0.0,ap);
  1072. setup_display(FILT_TAILV,NUMERIC,0,0.0,0.0,ap);
  1073. break;
  1074. case(FLTBANKV2):
  1075. setup_display(FLT_Q,LINEAR,SUBRANGE,1.0,64.0,ap);
  1076. setup_display(FLT_GAIN,LOG,SUBRANGE,0.02,50.0,ap);
  1077. setup_display(FILT_TAILV,NUMERIC,0,0.0,0.0,ap);
  1078. break;
  1079. case(FLTSWEEP):
  1080. setup_display(FLT_Q,LINEAR,SUBRANGE,.01,1.0,ap);
  1081. setup_display(FLT_GAIN,LOG,SUBRANGE,0.02,50.0,ap);
  1082. setup_display(FLT_LOFRQ,PLOG,0,0.0,0.0,ap);
  1083. setup_display(FLT_HIFRQ,PLOG,0,0.0,0.0,ap);
  1084. setup_display(FLT_SWPFRQ,LINEAR,0,0.0,0.0,ap);
  1085. setup_display(FLT_SWPPHASE,LINEAR,0,0.0,0.0,ap);
  1086. setup_display(FILT_TAIL,NUMERIC,0,0.0,0.0,ap);
  1087. break;
  1088. case(FLTITER):
  1089. setup_display(FLT_Q,LINEAR,SUBRANGE,1.0,64.0,ap);
  1090. setup_display(FLT_GAIN,LOG,SUBRANGE,0.02,50.0,ap);
  1091. setup_display(FLT_DELAY,LINEAR,SUBRANGE,ap->lo[FLT_DELAY],2.0,ap);
  1092. setup_display(FLT_OUTDUR,NUMERIC,0,0.0,0.0,ap);
  1093. setup_display(FLT_PRESCALE,NUMERIC,0,0.0,0.0,ap);
  1094. setup_display(FLT_RANDDEL,NUMERIC,0,0.0,0.0,ap);
  1095. setup_display(FLT_PSHIFT,LINEAR,0,0.0,0.0,ap);
  1096. setup_display(FLT_AMPSHIFT,LINEAR,0,0.0,0.0,ap);
  1097. break;
  1098. case(ALLPASS):
  1099. setup_display(FLT_GAIN,LINEAR,0,0.0,0.0,ap);
  1100. setup_display(FLT_DELAY,LINEAR,SUBRANGE,ap->lo[FLT_DELAY],min(ap->hi[FLT_DELAY],64.0),ap);
  1101. setup_display(FLT_PRESCALE,NUMERIC,0,0.0,0.0,ap);
  1102. setup_display(FILT_TAIL,NUMERIC,0,0.0,0.0,ap);
  1103. break;
  1104. case(MOD_LOUDNESS):
  1105. switch(mode) {
  1106. case(LOUDNESS_GAIN):
  1107. setup_display(LOUD_GAIN,LINEAR,SUBRANGE,0,20.0,ap);
  1108. break;
  1109. case(LOUDNESS_DBGAIN):
  1110. setup_display(LOUD_GAIN,LINEAR,0,0.0,0.0,ap);
  1111. break;
  1112. case(LOUDNESS_NORM):
  1113. case(LOUDNESS_SET):
  1114. setup_display(LOUD_LEVEL,NUMERIC,0,0.0,0.0,ap);
  1115. break;
  1116. }
  1117. break;
  1118. case(MOD_SPACE):
  1119. switch(mode) {
  1120. case(MOD_PAN):
  1121. setup_display(PAN_PAN,LINEAR,SUBRANGE,-1.0,1.0,ap);
  1122. setup_display(PAN_PRESCALE,NUMERIC,0,0.0,0.0,ap);
  1123. break;
  1124. case(MOD_NARROW):
  1125. setup_display(NARROW,NUMERIC,0,0.0,0.0,ap);
  1126. break;
  1127. }
  1128. break;
  1129. case(SCALED_PAN):
  1130. setup_display(PAN_PAN,LINEAR,SUBRANGE,-1.0,1.0,ap);
  1131. setup_display(PAN_PRESCALE,NUMERIC,0,0.0,0.0,ap);
  1132. break;
  1133. case(MOD_PITCH):
  1134. switch(mode) {
  1135. case(MOD_TRANSPOS):
  1136. case(MOD_TRANSPOS_INFO):
  1137. setup_display(VTRANS_TRANS,LOG,SUBRANGE,0.25,4.0,ap);
  1138. break;
  1139. case(MOD_TRANSPOS_SEMIT):
  1140. case(MOD_TRANSPOS_SEMIT_INFO):
  1141. setup_display(VTRANS_TRANS,LINEAR,SUBRANGE,-12.0,12.0,ap);
  1142. break;
  1143. case(MOD_ACCEL):
  1144. setup_display(ACCEL_ACCEL,LOG,SUBRANGE,0.5,2.0,ap);
  1145. setup_display(ACCEL_GOALTIME,NUMERIC,0,0.0,0.0,ap);
  1146. setup_display(ACCEL_STARTTIME,NUMERIC,0,0.0,0.0,ap);
  1147. break;
  1148. case(MOD_VIBRATO):
  1149. setup_display(VIB_FRQ,LINEAR,SUBRANGE,0.0,50.0,ap);
  1150. setup_display(VIB_DEPTH,LINEAR,SUBRANGE,0.0,12.0,ap);
  1151. break;
  1152. }
  1153. break;
  1154. case(MOD_REVECHO):
  1155. switch(mode) {
  1156. case(MOD_DELAY):
  1157. case(MOD_VDELAY):
  1158. setup_display(DELAY_DELAY,LOG,SUBRANGE,ap->lo[DELAY_DELAY],SECS_TO_MS,ap);
  1159. setup_display(DELAY_MIX,LINEAR,0,0.0,0.0,ap);
  1160. setup_display(DELAY_FEEDBACK,LINEAR,0,0.0,0.0,ap);
  1161. if(mode==MOD_VDELAY) {
  1162. setup_display(DELAY_LFOMOD,LINEAR,0,0.0,0.0,ap);
  1163. setup_display(DELAY_LFOFRQ,LINEAR,0,0.0,0.0,ap);
  1164. setup_display(DELAY_LFOPHASE,LINEAR,0,0.0,0.0,ap);
  1165. setup_display(DELAY_LFODELAY,LINEAR,SUBRANGE,0.0,0.5,ap);
  1166. }
  1167. setup_display(DELAY_TRAILTIME,LINEAR,SUBRANGE,0.0,2.0,ap);
  1168. setup_display(DELAY_PRESCALE,LOG,0,0.0,0.0,ap);
  1169. if(mode==MOD_VDELAY)
  1170. setup_display(DELAY_SEED,LINEAR,0,0.0,0.0,ap);
  1171. break;
  1172. case(MOD_STADIUM):
  1173. setup_display(STAD_PREGAIN,LINEAR,0,0.0,0.0,ap);
  1174. setup_display(STAD_ROLLOFF,LINEAR,0,0.0,0.0,ap);
  1175. setup_display(STAD_SIZE,LOG,SUBRANGE,0.1,10.0,ap);
  1176. setup_display(STAD_ECHOCNT,LINEAR,SUBRANGE,2,REASONABLE_ECHOCNT,ap);
  1177. break;
  1178. }
  1179. break;
  1180. case(MOD_RADICAL):
  1181. switch(mode) {
  1182. case(MOD_REVERSE):
  1183. break;
  1184. case(MOD_SHRED):
  1185. setup_display(SHRED_CNT,LINEAR,SUBRANGE,1.0,2000.0,ap);
  1186. setup_display(SHRED_CHLEN,LINEAR,0,0.0,0.0,ap);
  1187. setup_display(SHRED_SCAT,LINEAR,SUBRANGE,0.0,1.0,ap);
  1188. break;
  1189. case(MOD_SCRUB):
  1190. setup_display(SCRUB_TOTALDUR,LINEAR,SUBRANGE,ap->lo[SCRUB_TOTALDUR],duration*2.0,ap);
  1191. setup_display(SCRUB_MINSPEED,LINEAR,SUBRANGE,SCRUB_MINSPEED_DEFAULT,0.0,ap);
  1192. setup_display(SCRUB_MAXSPEED,LINEAR,SUBRANGE,0.0,SCRUB_MAXSPEED_DEFAULT,ap);
  1193. setup_display(SCRUB_STARTRANGE,LINEAR,0,0.0,0.0,ap);
  1194. setup_display(SCRUB_ESTART,LINEAR,0,0.0,0.0,ap);
  1195. break;
  1196. case(MOD_LOBIT):
  1197. setup_display(LOBIT_BRES,LINEAR,0,0.0,0.0,ap);
  1198. setup_display(LOBIT_TSCAN,LINEAR,0,0.0,0.0,ap);
  1199. break;
  1200. case(MOD_LOBIT2):
  1201. setup_display(LOBIT_BRES,LINEAR,0,0.0,0.0,ap);
  1202. break;
  1203. case(MOD_RINGMOD):
  1204. setup_display(RM_FRQ,PLOG,SUBRANGE,16.0,400.0,ap);
  1205. break;
  1206. case(MOD_CROSSMOD):
  1207. break;
  1208. }
  1209. break;
  1210. case(BRASSAGE):
  1211. setup_display(GRS_VELOCITY,LINEAR,SUBRANGE,ap->lo[GRS_VELOCITY],8.0,ap);
  1212. switch(mode) {
  1213. case(GRS_REVERB):
  1214. setup_display(GRS_DENSITY,LOG,SUBRANGE,0.125,8.0,ap);
  1215. break;
  1216. default:
  1217. setup_display(GRS_DENSITY,LOG,SUBRANGE,0.125,min(ap->hi[GRS_DENSITY],8.0),ap);
  1218. break;
  1219. }
  1220. setup_display(GRS_HVELOCITY,LINEAR,SUBRANGE,ap->lo[GRS_HVELOCITY],min(ap->hi[GRS_HVELOCITY],8.0),ap);
  1221. setup_display(GRS_HDENSITY,LOG,SUBRANGE,0.125,8.0,ap);
  1222. setup_display(GRS_GRAINSIZE,LINEAR,SUBRANGE,ap->lo[GRS_GRAINSIZE],min(ap->hi[GRS_GRAINSIZE],200.0),ap);
  1223. switch(mode) {
  1224. case(GRS_REVERB):
  1225. setup_display(GRS_PITCH,LINEAR,0,0.0,0.0,ap);
  1226. break;
  1227. default:
  1228. setup_display(GRS_PITCH,LINEAR,SUBRANGE,-12.0,12.0,ap);
  1229. break;
  1230. }
  1231. setup_display(GRS_AMP,LINEAR,0,0.0,0.0,ap);
  1232. setup_display(GRS_SPACE,LINEAR,0,0.0,0.0,ap);
  1233. setup_display(GRS_BSPLICE,LINEAR,SUBRANGE,ap->lo[GRS_BSPLICE],min(ap->hi[GRS_BSPLICE],GRS_DEFAULT_SPLICELEN * 4.0),ap);
  1234. setup_display(GRS_ESPLICE,LINEAR,SUBRANGE,ap->lo[GRS_ESPLICE],min(ap->hi[GRS_ESPLICE],GRS_DEFAULT_SPLICELEN * 4.0),ap);
  1235. setup_display(GRS_HGRAINSIZE,LINEAR,SUBRANGE,ap->lo[GRS_GRAINSIZE],min(ap->hi[GRS_GRAINSIZE],200.0),ap);
  1236. setup_display(GRS_HPITCH,LINEAR,SUBRANGE,-12.0,12.0,ap);
  1237. setup_display(GRS_HAMP,LINEAR,0,0.0,0.0,ap);
  1238. setup_display(GRS_HSPACE,LINEAR,0,0.0,0.0,ap);
  1239. setup_display(GRS_HBSPLICE,LINEAR,SUBRANGE,ap->lo[GRS_BSPLICE],min(ap->hi[GRS_BSPLICE],GRS_DEFAULT_SPLICELEN * 4.0),ap);
  1240. setup_display(GRS_HESPLICE,LINEAR,SUBRANGE,ap->lo[GRS_ESPLICE],min(ap->hi[GRS_ESPLICE],GRS_DEFAULT_SPLICELEN * 4.0),ap);
  1241. switch(mode) {
  1242. case(GRS_BRASSAGE):
  1243. case(GRS_FULL_MONTY):
  1244. setup_display(GRS_SCATTER,LINEAR,0,0.0,0.0,ap);
  1245. setup_display(GRS_OUTLEN,LINEAR,SUBRANGE,0.0,60.0,ap);
  1246. setup_display(GRS_CHAN_TO_XTRACT,LINEAR,0,0.0,0.0,ap);
  1247. /* fall thro */
  1248. case(GRS_REVERB):
  1249. case(GRS_SCRAMBLE):
  1250. setup_display(GRS_SRCHRANGE,LINEAR,SUBRANGE,ap->lo[GRS_SRCHRANGE],min(ap->hi[GRS_SRCHRANGE],200.0),ap);
  1251. break;
  1252. }
  1253. break;
  1254. case(SAUSAGE):
  1255. setup_display(GRS_VELOCITY,LINEAR,SUBRANGE,ap->lo[GRS_VELOCITY],8.0,ap);
  1256. setup_display(GRS_DENSITY,LOG,SUBRANGE,0.125,min(ap->hi[GRS_DENSITY],8.0),ap);
  1257. setup_display(GRS_HVELOCITY,LINEAR,SUBRANGE,ap->lo[GRS_HVELOCITY],min(ap->hi[GRS_HVELOCITY],8.0),ap);
  1258. setup_display(GRS_HDENSITY,LOG,SUBRANGE,0.125,8.0,ap);
  1259. setup_display(GRS_GRAINSIZE,LINEAR,SUBRANGE,ap->lo[GRS_GRAINSIZE],min(ap->hi[GRS_GRAINSIZE],200.0),ap);
  1260. setup_display(GRS_PITCH,LINEAR,SUBRANGE,-12.0,12.0,ap);
  1261. setup_display(GRS_AMP,LINEAR,0,0.0,0.0,ap);
  1262. setup_display(GRS_SPACE,LINEAR,0,0.0,0.0,ap);
  1263. setup_display(GRS_BSPLICE,LINEAR,SUBRANGE,ap->lo[GRS_BSPLICE],min(ap->hi[GRS_BSPLICE],GRS_DEFAULT_SPLICELEN * 4.0),ap);
  1264. setup_display(GRS_ESPLICE,LINEAR,SUBRANGE,ap->lo[GRS_ESPLICE],min(ap->hi[GRS_ESPLICE],GRS_DEFAULT_SPLICELEN * 4.0),ap);
  1265. setup_display(GRS_HGRAINSIZE,LINEAR,SUBRANGE,ap->lo[GRS_GRAINSIZE],min(ap->hi[GRS_GRAINSIZE],200.0),ap);
  1266. setup_display(GRS_HPITCH,LINEAR,SUBRANGE,-12.0,12.0,ap);
  1267. setup_display(GRS_HAMP,LINEAR,0,0.0,0.0,ap);
  1268. setup_display(GRS_HSPACE,LINEAR,0,0.0,0.0,ap);
  1269. setup_display(GRS_HBSPLICE,LINEAR,SUBRANGE,ap->lo[GRS_BSPLICE],min(ap->hi[GRS_BSPLICE],GRS_DEFAULT_SPLICELEN * 4.0),ap);
  1270. setup_display(GRS_HESPLICE,LINEAR,SUBRANGE,ap->lo[GRS_ESPLICE],min(ap->hi[GRS_ESPLICE],GRS_DEFAULT_SPLICELEN * 4.0),ap);
  1271. setup_display(GRS_SCATTER,LINEAR,0,0.0,0.0,ap);
  1272. setup_display(GRS_OUTLEN,LINEAR,SUBRANGE,0.0,60.0,ap);
  1273. setup_display(GRS_CHAN_TO_XTRACT,LINEAR,0,0.0,0.0,ap);
  1274. setup_display(GRS_SRCHRANGE,LINEAR,SUBRANGE,ap->lo[GRS_SRCHRANGE],min(ap->hi[GRS_SRCHRANGE],200.0),ap);
  1275. break;
  1276. case(PVOC_ANAL):
  1277. setup_display(PVOC_CHANS_INPUT,POWTWO,0,0.0,0.0,ap);
  1278. setup_display(PVOC_WINOVLP_INPUT,NUMERIC,0,0.0,0.0,ap);
  1279. break;
  1280. case(PVOC_SYNTH):
  1281. break;
  1282. case(PVOC_EXTRACT):
  1283. setup_display(PVOC_CHANS_INPUT,LOG,0,0.0,0.0,ap);
  1284. setup_display(PVOC_WINOVLP_INPUT,NUMERIC,0,0.0,0.0,ap);
  1285. setup_display(PVOC_CHANSLCT_INPUT,NUMERIC,0,0.0,0.0,ap);
  1286. setup_display(PVOC_LOCHAN_INPUT,LINEAR,SUBRANGE,0.0,1024.0,ap);
  1287. setup_display(PVOC_HICHAN_INPUT,LINEAR,SUBRANGE,0.0,1024.0,ap);
  1288. break;
  1289. case(EDIT_CUT):
  1290. setup_display(CUT_CUT,NUMERIC,0,0.0,0.0,ap);
  1291. setup_display(CUT_END,NUMERIC,0,0.0,0.0,ap);
  1292. setup_display(CUT_SPLEN,LINEAR,SUBRANGE,0.0,50.0,ap);
  1293. break;
  1294. case(EDIT_CUTMANY):
  1295. setup_display(CM_SPLICELEN,NUMERIC,0,0.0,0.0,ap);
  1296. break;
  1297. case(STACK):
  1298. setup_display(STACK_CNT, NUMERIC,0,0.0,0.0,ap);
  1299. setup_display(STACK_LEAN, LOGNUMERIC,0,0.0,0.0,ap);
  1300. setup_display(STACK_OFFSET,NUMERIC,0,0.0,0.0,ap);
  1301. setup_display(STACK_GAIN, LOGNUMERIC,0,0.0,0.0,ap);
  1302. setup_display(STACK_DUR, NUMERIC,0,0.0,0.0,ap);
  1303. break;
  1304. case(EDIT_CUTEND):
  1305. setup_display(CUT_CUT,NUMERIC,0,0.0,0.0,ap);
  1306. setup_display(CUT_SPLEN,LINEAR,SUBRANGE,0.0,50.0,ap);
  1307. break;
  1308. case(EDIT_ZCUT):
  1309. setup_display(CUT_CUT,NUMERIC,0,0.0,0.0,ap);
  1310. setup_display(CUT_END,NUMERIC,0,0.0,0.0,ap);
  1311. break;
  1312. case(EDIT_EXCISE):
  1313. setup_display(CUT_CUT,NUMERIC,0,0.0,0.0,ap);
  1314. setup_display(CUT_END,NUMERIC,0,0.0,0.0,ap);
  1315. setup_display(CUT_SPLEN,LINEAR,SUBRANGE,0.0,50.0,ap);
  1316. break;
  1317. case(EDIT_INSERT):
  1318. setup_display(CUT_CUT,NUMERIC,0,0.0,0.0,ap);
  1319. setup_display(CUT_SPLEN,LINEAR,SUBRANGE,0.0,50.0,ap);
  1320. setup_display(INSERT_LEVEL,LOG,0,0.0,0.0,ap);
  1321. break;
  1322. case(EDIT_INSERT2):
  1323. setup_display(CUT_CUT,NUMERIC,0,0.0,0.0,ap);
  1324. setup_display(CUT_END,NUMERIC,0,0.0,0.0,ap);
  1325. setup_display(CUT_SPLEN,LINEAR,SUBRANGE,0.0,50.0,ap);
  1326. setup_display(INSERT_LEVEL,LOG,0,0.0,0.0,ap);
  1327. break;
  1328. case(EDIT_INSERTSIL):
  1329. setup_display(CUT_CUT,NUMERIC,0,0.0,0.0,ap);
  1330. setup_display(CUT_END,NUMERIC,0,0.0,0.0,ap);
  1331. setup_display(CUT_SPLEN,LINEAR,SUBRANGE,0.0,50.0,ap);
  1332. break;
  1333. case(EDIT_EXCISEMANY):
  1334. case(INSERTSIL_MANY):
  1335. setup_display(CUT_SPLEN,LINEAR,SUBRANGE,0.0,50.0,ap);
  1336. break;
  1337. case(JOIN_SEQ):
  1338. setup_display(MAX_LEN,LOGNUMERIC,0,0.0,0.0,ap);
  1339. /* fall thro */
  1340. case(EDIT_JOIN):
  1341. case(JOIN_SEQDYN):
  1342. setup_display(CUT_SPLEN,LINEAR,SUBRANGE,0.0,50.0,ap);
  1343. break;
  1344. case(HOUSE_COPY):
  1345. if(mode==DUPL)
  1346. setup_display(COPY_CNT,LINEAR,SUBRANGE,0.0,100.0,ap);
  1347. break;
  1348. case(HOUSE_CHANS):
  1349. switch(mode) {
  1350. case(HOUSE_CHANNEL):
  1351. case(HOUSE_ZCHANNEL):
  1352. setup_display(CHAN_NO,NUMERIC,0,0.0,0.0,ap);
  1353. break;
  1354. default:
  1355. break;
  1356. }
  1357. break;
  1358. case(HOUSE_BUNDLE):
  1359. break;
  1360. case(HOUSE_SORT):
  1361. switch(mode) {
  1362. case(BY_DURATION):
  1363. case(BY_LOG_DUR):
  1364. setup_display(SORT_SMALL,LOG,SUBRANGE,0.25,16.0,ap);
  1365. setup_display(SORT_LARGE,LOG,SUBRANGE,0.25,16.0,ap);
  1366. setup_display(SORT_STEP,LOG,0,0.0,0.0,ap);
  1367. break;
  1368. default:
  1369. break;
  1370. }
  1371. break;
  1372. case(HOUSE_SPEC):
  1373. switch(mode) {
  1374. case(HOUSE_REPROP):
  1375. setup_display(HSPEC_CHANS,NUMERIC,0,0.0,0.0,ap);
  1376. setup_display(HSPEC_TYPE,NUMERIC,0,0.0,0.0,ap);
  1377. /* fall thro */
  1378. case(HOUSE_RESAMPLE):
  1379. setup_display(HSPEC_SRATE,SRATE,0,0.0,0.0,ap);
  1380. break;
  1381. default:
  1382. break;
  1383. }
  1384. break;
  1385. case(HOUSE_EXTRACT):
  1386. switch(mode) {
  1387. case(HOUSE_CUTGATE):
  1388. setup_display(CUTGATE_SPLEN,NUMERIC,0,0.0,0.0,ap);
  1389. /* fall thro */
  1390. case(HOUSE_ONSETS):
  1391. setup_display(CUTGATE_GATE,LINEAR,SUBRANGE,0.0,0.15,ap);
  1392. setup_display(CUTGATE_ENDGATE,LINEAR,SUBRANGE,0.0,0.15,ap);
  1393. setup_display(CUTGATE_THRESH,LINEAR,SUBRANGE,0.0,0.06,ap);
  1394. if(mode == HOUSE_CUTGATE)
  1395. setup_display(CUTGATE_SUSTAIN,NUMERIC,0,0.0,0.0,ap);
  1396. setup_display(CUTGATE_BAKTRAK,NUMERIC,0,0.0,0.0,ap);
  1397. setup_display(CUTGATE_INITLEVEL,LINEAR,SUBRANGE,0.0,0.06,ap);
  1398. setup_display(CUTGATE_MINLEN,LINEAR,SUBRANGE,0.0,min(duration,5.0),ap);
  1399. setup_display(CUTGATE_WINDOWS,NUMERIC,0,0.0,0.0,ap);
  1400. break;
  1401. case(HOUSE_CUTGATE_PREVIEW):
  1402. break;
  1403. case(HOUSE_TOPNTAIL):
  1404. setup_display(TOPN_GATE,LINEAR,SUBRANGE,0.0,0.15,ap);
  1405. setup_display(TOPN_SPLEN,NUMERIC,0,0.0,0.0,ap);
  1406. break;
  1407. case(HOUSE_RECTIFY):
  1408. setup_display(RECTIFY_SHIFT,LINEAR,SUBRANGE,-0.001,0.001,ap);
  1409. break;
  1410. case(HOUSE_BYHAND):
  1411. break;
  1412. }
  1413. break;
  1414. case(TOPNTAIL_CLICKS):
  1415. setup_display(TOPN_GATE,LINEAR,SUBRANGE,0.0,0.15,ap);
  1416. setup_display(TOPN_SPLEN,NUMERIC,0,0.0,0.0,ap);
  1417. break;
  1418. case(HOUSE_BAKUP):
  1419. case(HOUSE_DUMP):
  1420. break;
  1421. case(HOUSE_GATE):
  1422. setup_display(GATE_ZEROS,NUMERIC,0,0.0,0.0,ap);
  1423. break;
  1424. case(HOUSE_RECOVER):
  1425. setup_display(DUMP_OK_CNT,NUMERIC,0,0.0,0.0,ap);
  1426. setup_display(DUMP_OK_PROP,NUMERIC,0,0.0,0.0,ap);
  1427. setup_display(DUMP_OK_SAME,NUMERIC,0,0.0,0.0,ap);
  1428. setup_display(SFREC_SHIFT,NUMERIC,0,0.0,0.0,ap);
  1429. break;
  1430. case(HOUSE_DISK):
  1431. break;
  1432. case(INFO_TIMESUM):
  1433. setup_display(TIMESUM_SPLEN,LINEAR,SUBRANGE,0.0,200.0,ap);
  1434. break;
  1435. case(INFO_SAMPTOTIME):
  1436. setup_display(INFO_SAMPS,NUMERIC,0,0.0,0.0,ap);
  1437. break;
  1438. case(INFO_TIMETOSAMP):
  1439. setup_display(INFO_TIME,NUMERIC,0,0.0,0.0,ap);
  1440. break;
  1441. case(INFO_FINDHOLE):
  1442. setup_display(HOLE_THRESH,NUMERIC,0,0.0,0.0,ap);
  1443. break;
  1444. case(INFO_DIFF):
  1445. case(INFO_CDIFF):
  1446. setup_display(SFDIFF_THRESH,NUMERIC,0,0.0,0.0,ap);
  1447. setup_display(SFDIFF_CNT,LINEAR,SUBRANGE,1.0,64.0,ap);
  1448. break;
  1449. case(INFO_PRNTSND):
  1450. setup_display(PRNT_START,NUMERIC,0,0.0,0.0,ap);
  1451. setup_display(PRNT_END,NUMERIC,0,0.0,0.0,ap);
  1452. break;
  1453. case(INFO_MUSUNITS):
  1454. switch(mode) {
  1455. case(MU_MIDI_TO_FRQ):
  1456. case(MU_MIDI_TO_NOTE): setup_display(MUSUNIT,NUMERIC,0,0.0,0.0,ap); break;
  1457. case(MU_FRQ_TO_MIDI):
  1458. case(MU_FRQ_TO_NOTE): setup_display(MUSUNIT,PLOG,0,0.0,0.0,ap); break;
  1459. case(MU_GAIN_TO_DB): setup_display(MUSUNIT,LINEAR,0,0.0,0.0,ap); break;
  1460. case(MU_DB_TO_GAIN): setup_display(MUSUNIT,LINEAR,SUBRANGE,-96.0,0.0,ap); break;
  1461. case(MU_FRQRATIO_TO_SEMIT):
  1462. case(MU_FRQRATIO_TO_INTVL):
  1463. case(MU_FRQRATIO_TO_OCTS):
  1464. case(MU_FRQRATIO_TO_TSTRETH): setup_display(MUSUNIT,LOG,SUBRANGE,0.25,4.0,ap); break;
  1465. case(MU_SEMIT_TO_FRQRATIO):
  1466. case(MU_SEMIT_TO_OCTS):
  1467. case(MU_SEMIT_TO_INTVL):
  1468. case(MU_SEMIT_TO_TSTRETCH): setup_display(MUSUNIT,NUMERIC,0,0.0,0.0,ap); break;
  1469. case(MU_OCTS_TO_FRQRATIO):
  1470. case(MU_OCTS_TO_SEMIT):
  1471. case(MU_OCTS_TO_TSTRETCH): setup_display(MUSUNIT,NUMERIC,0,0.0,0.0,ap); break;
  1472. case(MU_TSTRETCH_TO_FRQRATIO):
  1473. case(MU_TSTRETCH_TO_SEMIT):
  1474. case(MU_TSTRETCH_TO_OCTS):
  1475. case(MU_TSTRETCH_TO_INTVL): setup_display(MUSUNIT,LOG,0,0.0,0.0,ap); break;
  1476. case(MU_INTVL_TO_FRQRATIO):
  1477. case(MU_INTVL_TO_TSTRETCH):
  1478. case(MU_NOTE_TO_FRQ):
  1479. case(MU_NOTE_TO_MIDI): /* dealt with by special.c */
  1480. break;
  1481. }
  1482. break;
  1483. case(INFO_PROPS):
  1484. case(INFO_SFLEN):
  1485. case(INFO_TIMELIST):
  1486. case(INFO_LOUDLIST):
  1487. case(INFO_TIMEDIFF):
  1488. case(INFO_LOUDCHAN):
  1489. case(INFO_MAXSAMP):
  1490. break;
  1491. case(INFO_MAXSAMP2):
  1492. setup_display(MAX_STIME,LINEAR,0,0.0,0.0,ap);
  1493. setup_display(MAX_ETIME,LINEAR,0,0.0,0.0,ap);
  1494. break;
  1495. case(SYNTH_WAVE):
  1496. setup_display(SYN_TABSIZE,LOG,0,0.0,0.0,ap);
  1497. setup_display(SYN_FRQ,PLOG,SUBRANGE,16.0,4000.0,ap);
  1498. /* fall thro */
  1499. case(SYNTH_NOISE):
  1500. setup_display(SYN_AMP,LINEAR,0,0.0,0.0,ap);
  1501. /* fall thro */
  1502. case(SYNTH_SIL):
  1503. setup_display(SYN_SRATE,SRATE,0,0.0,0.0,ap);
  1504. setup_display(SYN_CHANS,NUMERIC,0,0.0,0.0,ap);
  1505. setup_display(SYN_DUR,LOG,0,0.0,0.0,ap);
  1506. break;
  1507. case(MULTI_SYN):
  1508. setup_display(SYN_TABSIZE,LOG,0,0.0,0.0,ap);
  1509. setup_display(SYN_AMP,NUMERIC,0,0.0,0.0,ap);
  1510. setup_display(SYN_SRATE,SRATE,0,0.0,0.0,ap);
  1511. setup_display(SYN_CHANS,NUMERIC,0,0.0,0.0,ap);
  1512. setup_display(SYN_DUR,LOG,0,0.0,0.0,ap);
  1513. break;
  1514. case(SYNTH_SPEC):
  1515. setup_display(SS_DUR,LOG,0,0.0,0.0,ap);
  1516. setup_display(SS_CENTRFRQ,LOG,0,0.0,0.0,ap);
  1517. setup_display(SS_SPREAD,LINEAR,0,0.0,0.0,ap);
  1518. setup_display(SS_FOCUS,LINEAR,0,0.0,0.0,ap);
  1519. setup_display(SS_FOCUS2,LINEAR,0,0.0,0.0,ap);
  1520. setup_display(SS_TRAND,LINEAR,0,0.0,0.0,ap);
  1521. setup_display(SS_SRATE,SRATE,0,0.0,0.0,ap);
  1522. break;
  1523. case(RANDCUTS):
  1524. setup_display(RC_CHLEN,LINEAR,0,0.0,0.0,ap);
  1525. setup_display(RC_SCAT,LINEAR,0,0.0,0.0,ap);
  1526. break;
  1527. case(RANDCHUNKS):
  1528. setup_display(CHUNKCNT,LINEAR,SUBRANGE,2,20,ap);
  1529. setup_display(MINCHUNK,LINEAR,0,0.0,0.0,ap);
  1530. setup_display(MAXCHUNK,LINEAR,0,0.0,0.0,ap);
  1531. break;
  1532. case(SIN_TAB):
  1533. setup_display(SIN_FRQ,LOG,0,0.0,0.0,ap);
  1534. setup_display(SIN_AMP,LINEAR,0,0.0,0.0,ap);
  1535. setup_display(SIN_DUR,LINEAR,SUBRANGE,1,60,ap);
  1536. setup_display(SIN_QUANT,LOG,0,0.0,0.0,ap);
  1537. setup_display(SIN_PHASE,LINEAR,0,0.0,0.0,ap);
  1538. break;
  1539. case(ACC_STREAM):
  1540. setup_display(ACC_ATTEN,LINEAR,0,0.0,0.0,ap);
  1541. break;
  1542. case(HF_PERM1):
  1543. case(HF_PERM2):
  1544. setup_display(HP1_SRATE,SRATE,0,0.0,0.0,ap);
  1545. setup_display(HP1_ELEMENT_SIZE,NUMERIC,0,0.0,0.0,ap);
  1546. setup_display(HP1_GAP_SIZE,NUMERIC,0,0.0,0.0,ap);
  1547. setup_display(HP1_GGAP_SIZE,NUMERIC,0,0.0,0.0,ap);
  1548. setup_display(HP1_MINSET,NUMERIC,0,0.0,0.0,ap);
  1549. setup_display(HP1_BOTNOTE,MIDI,0,0.0,0.0,ap);
  1550. setup_display(HP1_BOTOCT,OCTAVES,0,0.0,0.0,ap);
  1551. setup_display(HP1_TOPNOTE,MIDI,0,0.0,0.0,ap);
  1552. setup_display(HP1_TOPOCT,OCTAVES,0,0.0,0.0,ap);
  1553. setup_display(HP1_SORT1,CHORDSORT,0,0.0,0.0,ap);
  1554. break;
  1555. case(DEL_PERM):
  1556. setup_display(HP1_SRATE,SRATE,0,0.0,0.0,ap);
  1557. setup_display(DP_DUR,NUMERIC,0,0.0,0.0,ap);
  1558. setup_display(DP_CYCCNT,NUMERIC,0,0.0,0.0,ap);
  1559. break;
  1560. case(DEL_PERM2):
  1561. setup_display(DP_CYCCNT,NUMERIC,0,0.0,0.0,ap);
  1562. break;
  1563. case(TWIXT):
  1564. case(SPHINX):
  1565. setup_display(IS_SPLEN,NUMERIC,0,0.0,0.0,ap);
  1566. if(process != TWIXT || mode != TRUE_EDIT)
  1567. setup_display(IS_WEIGHT,NUMERIC,0,0.0,0.0,ap);
  1568. setup_display(IS_SEGCNT,LOG,0,0.0,0.0,ap);
  1569. break;
  1570. case(NOISE_SUPRESS):
  1571. setup_display(NOISE_SPLEN,NUMERIC,0,0.0,0.0,ap);
  1572. setup_display(NOISE_MINFRQ,LOGNUMERIC,0,0.0,0.0,ap);
  1573. setup_display(MIN_NOISLEN,NUMERIC,0,0.0,0.0,ap);
  1574. setup_display(MIN_TONELEN,NUMERIC,0,0.0,0.0,ap);
  1575. break;
  1576. case(TIME_GRID):
  1577. setup_display(GRID_COUNT,NUMERIC,0,0.0,0.0,ap);
  1578. setup_display(GRID_WIDTH,LOG,SUBRANGE,0.002,0.2,ap);
  1579. setup_display(GRID_SPLEN,LOG,SUBRANGE,2.0,50.0,ap);
  1580. break;
  1581. case(SEQUENCER2):
  1582. setup_display(SEQ_SPLIC,NUMERIC,0,0.0,0.0,ap);
  1583. /* fall thro */
  1584. case(SEQUENCER):
  1585. setup_display(SEQ_ATTEN,NUMERIC,0,0.0,0.0,ap);
  1586. break;
  1587. case(CONVOLVE):
  1588. switch(mode) {
  1589. case(CONV_NORMAL):
  1590. break;
  1591. case(CONV_TVAR):
  1592. setup_display(CONV_TRANS,LINEAR,SUBRANGE,-12.0,12.0,ap);
  1593. break;
  1594. }
  1595. break;
  1596. case(BAKTOBAK):
  1597. setup_display(BTOB_CUT,NUMERIC,0,0.0,0.0,ap);
  1598. setup_display(BTOB_SPLEN,LOGNUMERIC,SUBRANGE,0.0001,100.0,ap);
  1599. break;
  1600. case(FIND_PANPOS):
  1601. setup_display(PAN_PAN,NUMERIC,0,0.0,0.0,ap);
  1602. case(CLICK):
  1603. setup_display(CLIKSTART,NUMERIC,0,0.0,0.0,ap);
  1604. setup_display(CLIKEND,NUMERIC,0,0.0,0.0,ap);
  1605. setup_display(CLIKOFSET,NUMERIC,0,0.0,0.0,ap);
  1606. break;
  1607. case(DOUBLETS):
  1608. setup_display(SEG_DUR,LOG,0,0.0,0.0,ap);
  1609. setup_display(SEG_REPETS,NUMERIC,0,0.0,0.0,ap);
  1610. break;
  1611. case(SYLLABS):
  1612. setup_display(SYLLAB_DOVETAIL,NUMERIC,0,0.0,0.0,ap);
  1613. setup_display(SYLLAB_SPLICELEN,NUMERIC,0,0.0,0.0,ap);
  1614. break;
  1615. case(MAKE_VFILT):
  1616. case(MIX_MODEL):
  1617. break;
  1618. case(BATCH_EXPAND):
  1619. setup_display(BE_INFILE,NUMERIC,0,0.0,0.0,ap);
  1620. setup_display(BE_OUTFILE,NUMERIC,0,0.0,0.0,ap);
  1621. setup_display(BE_PARAM,NUMERIC,0,0.0,0.0,ap);
  1622. break;
  1623. case(CYCINBETWEEN):
  1624. setup_display(INBETW,NUMERIC,0,0.0,0.0,ap);
  1625. setup_display(BTWN_HFRQ,LOGNUMERIC,0,0.0,0.0,ap);
  1626. break;
  1627. case(ENVSYN):
  1628. setup_display(ENVSYN_WSIZE,LINEAR,SUBRANGE,ap->lo[ENVSYN_WSIZE],min(ap->hi[ENVSYN_WSIZE],1000.0),ap);
  1629. setup_display(ENVSYN_DUR,LOG,0,0.0,0.0,ap);
  1630. setup_display(ENVSYN_CYCLEN,LOG,0,0.0,0.0,ap);
  1631. setup_display(ENVSYN_STARTPHASE,NUMERIC,0,0.0,0.0,ap);
  1632. if(mode != ENVSYN_USERDEF) {
  1633. setup_display(ENVSYN_TROF,LINEAR,0,0.0,0.0,ap);
  1634. setup_display(ENVSYN_EXPON,LOG,0,0.0,0.0,ap);
  1635. }
  1636. break;
  1637. case(RRRR_EXTEND):
  1638. if(mode == 0) {
  1639. setup_display(RRR_START,NUMERIC,0,0.0,0.0,ap);
  1640. setup_display(RRR_END,NUMERIC,0,0.0,0.0,ap);
  1641. } else {
  1642. setup_display(RRR_GATE,NUMERIC,0,0.0,0.0,ap);
  1643. setup_display(RRR_SKIP,NUMERIC,0,0.0,0.0,ap);
  1644. setup_display(RRR_GRSIZ,LINEAR,0,0.0,0.0,ap);
  1645. setup_display(RRR_AFTER,NUMERIC,0,0.0,0.0,ap);
  1646. setup_display(RRR_TEMPO,LOGNUMERIC,0,0.0,0.0,ap);
  1647. setup_display(RRR_AT,NUMERIC,0,0.0,0.0,ap);
  1648. }
  1649. setup_display(RRR_STRETCH,LOGNUMERIC,0,0.0,0.0,ap);
  1650. setup_display(RRR_GET,NUMERIC,0,0.0,0.0,ap);
  1651. setup_display(RRR_RANGE,LINEAR,0,0.0,0.0,ap);
  1652. setup_display(RRR_REPET,LINEAR,SUBRANGE,1.0,3.0,ap);
  1653. setup_display(RRR_ASCAT,LINEAR,0,0.0,0.0,ap);
  1654. setup_display(RRR_PSCAT,LINEAR,SUBRANGE,0.0,1.0,ap);
  1655. break;
  1656. case(SSSS_EXTEND):
  1657. setup_display(SSS_DUR,LOGNUMERIC,0,0.0,0.0,ap);
  1658. setup_display(NOISE_MINFRQ,LOGNUMERIC,0,0.0,0.0,ap);
  1659. setup_display(MIN_NOISLEN,NUMERIC,0,0.0,0.0,ap);
  1660. setup_display(MAX_NOISLEN,NUMERIC,0,0.0,0.0,ap);
  1661. setup_display(SSS_GATE,NUMERIC,0,0.0,0.0,ap);
  1662. break;
  1663. case(HOUSE_GATE2):
  1664. setup_display(GATE2_DUR,LOGNUMERIC,0,0.0,0.0,ap);
  1665. setup_display(GATE2_ZEROS,LOGNUMERIC,0,0.0,0.0,ap);
  1666. setup_display(GATE2_LEVEL,NUMERIC,0,0.0,0.0,ap);
  1667. setup_display(GATE2_SPLEN,NUMERIC,0,0.0,0.0,ap);
  1668. setup_display(GATE2_FILT,NUMERIC,0,0.0,0.0,ap);
  1669. break;
  1670. case(GRAIN_ASSESS):
  1671. break;
  1672. case(ZCROSS_RATIO):
  1673. setup_display(ZC_START,NUMERIC,0,0.0,0.0,ap);
  1674. setup_display(ZC_END,NUMERIC,0,0.0,0.0,ap);
  1675. break;
  1676. case(GREV):
  1677. setup_display(GREV_WSIZE,NUMERIC,0,0.0,0.0,ap);
  1678. setup_display(GREV_TROFRAC,NUMERIC,0,0.0,0.0,ap);
  1679. setup_display(GREV_GPCNT,LINEAR,0,0.0,0.0,ap);
  1680. switch(mode) {
  1681. case(GREV_TSTRETCH):
  1682. setup_display(GREV_TSTR,LOG,0,0.0,0.0,ap);
  1683. break;
  1684. case(GREV_DELETE):
  1685. case(GREV_OMIT):
  1686. setup_display(GREV_KEEP,LINEAR,SUBRANGE,1.0,63.0,ap);
  1687. setup_display(GREV_OUTOF,LINEAR,SUBRANGE,2.0,64.0,ap);
  1688. break;
  1689. case(GREV_REPEAT):
  1690. setup_display(GREV_REPETS,LINEAR,0,0.0,0.0,ap);
  1691. break;
  1692. }
  1693. break;
  1694. case(MANY_ZCUTS):
  1695. break;
  1696. }
  1697. return(FINISHED);
  1698. }
  1699. /****************************** SETUP_DISPLAY *********************************/
  1700. void setup_display(int paramno,int dtype,int subrang,double lo,double hi,aplptr ap)
  1701. {
  1702. ap->display_type[paramno] = (char)dtype;
  1703. ap->has_subrange[paramno] = (char)subrang;
  1704. ap->lolo[paramno] = lo;
  1705. ap->hihi[paramno] = hi;
  1706. }