rdk

Check-in [5567893d1e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:compiled /initrd/mnt/dev_save/dsp/rdk/test/zt2.dsp to zt2.jgtk using f2jgtk. renamed params. complete.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | www
Files: files | file ages | folders
SHA1:5567893d1e6034e0d1c5f6756ce7442cf67c836a
User & Date: root 2019-01-09 06:12:02
Context
2019-01-12
08:39
compiled /initrd/mnt/dev_save/dsp/rdk/test/zt2.dsp to zt2.jgtk using f2jgtk. check-in: 07bf59916d user: root tags: www
2019-01-09
06:12
compiled /initrd/mnt/dev_save/dsp/rdk/test/zt2.dsp to zt2.jgtk using f2jgtk. renamed params. complete. check-in: 5567893d1e user: root tags: www
2019-01-08
13:36
compiled /initrd/mnt/dev_save/dsp/rdk/test/zt2.dsp to zt2.jgtk using f2jgtk. check-in: 3c171a0296 user: root tags: www
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to test/zt2.dsp.

1
2

3
4

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23


24



25
26
27
28
29
30
31
32
..
41
42
43
44
45
46
47
48
49
50
51
52



53
54
55
56
57
58
59
..
61
62
63
64
65
66
67






68

69














































70
71
72
73
74
75
76
...
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
...
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
...
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430

431
432
433
434
435
436
437

438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
import("filter.lib");
import("math.lib");


process = bus(8) : zita_extended : bus(8) : outmix(8) : bus(2) ;


outmix(N)=bus(N)<:bus(2*N):(reva,refb):bus(4):>bus(2)
  with {
    //Lexicon style phaser
    reva=bus(N):>bus(2):par(i,2,*(zxgui.OUTLEVEL(1)));
    refb=bus(N):>bus(2):par(i,2,@(zxgui.OUTDELAY)):par(i,2,*(zxgui.OUTLEVEL(2)));
  };
    
zita_extended = (bus(2*M):>
  fbdelaylines(M))
      ~(
      allpass_combs(M)
      :zita.feedbackmatrix(M)
      :wdn(M,lossfilters(M),zxgui.FLTON)
      :wdn(M,reverbtime(M),(1-(zxgui.FLTON)))
        )
  :reflevel(M)
with {
  M=8;


  //N channel wet-dry control, "0" = dry, "1" = wet



  wdn(N,fx,ctl) = par(i,N,_) <: (fx : par(i,N,*(ctl))),par(i,N,*(1-(ctl))) :> par(i,N,_);
  
  maxapdelay(i) = 1<<16 ;
  maxfbdelay(i) = 1<<16 ;
  apdelay(i)=sim.reflectiondelay_ms(i)
    *SR/1000.0
    *zxgui.APPERCENT
    :min(maxapdelay(i))
................................................................................
    tdelay(i)=fbdelay(i)+apdelay(i);
    ].delayfilters(N,zita.freqs,zita.durs);
  fbdelaylines(N) = par(i,N,(fdelay(maxfbdelay(i),(fbdelay(i)))));
  allpass_combs(N)=par(i,N,(allpass_fcomb(maxapdelay(i),apdelay(i), zxgui.APG(i)))) 
    with {
      allpass_fcomb(maxdel,N,aN) = (+ <: fdelay(maxdel,N-1),*(aN)) ~ *(-aN) : mem,_ : + ;//filters.lib
    };
  reverbtime(N) = par(i,N,*(g0(i)))
    with {
      //choose decay law
      g0(i) = zxgui.MAINFB ; //none
      g1(i) = pow(pow(0.001,(1.0/(SR*(zxgui.RT60)))),tdelay(i)); //rt60 in seconds 



      tdelay(i) = fbdelay(i)+apdelay(i); //samps
    };
 
  zitaLFO(i)=sinusi(
    zxgui.SINUSFREQ_HZ,i*.125)
    *(zxgui.SINUSDEPTH)+1.0
    with {
................................................................................
    };
    
  reflevel(N) = par(i,N,*(reflectionlevel(i)))
    with {
      reflectionlevel(i)=sim.reflectionlevel(i)*(zxgui.ERCOMPRESSION) + makeup ;
      makeup = 1 - zxgui.ERCOMPRESSION ;
    };






  };

  














































sim = environment {

  /*** Source Image Model **********
  coordinates:
  Room <R1,R2,R3> ,Source <S1,S2,S3>, Destination <D1,D2,D3>

          front
................................................................................
  //   (args and references as for zita_rev_fdn above)

  zita_rev_fdn_demo = zita_rev_fdn(f1,f2,t60dc,t60m,fsmax);
  /*with {
    fsmax = 48000.0;
    fdn_group(x) = hgroup(
      "Zita_Rev Internal FDN Reverb [tooltip: ~ Zita_Rev's internal 8x8 Feedback Delay Network (FDN) & Schroeder allpass-comb reverberator.  See Faust's effect.lib for documentation and references]",x);
    t60dc = fdn_group(vslider("[1] Low RT60 [unit:s] [style:knob]
      [style:knob]
      [tooltip: T60 = time (in seconds) to decay 60dB in low-frequency band]",
      3, 1, 8, 0.1));
    f1 = fdn_group(vslider("[2] LF X [unit:Hz] [style:knob]
      [tooltip: Crossover frequency (Hz) separating low and middle frequencies]",
      200, 50, 1000, 1));
    t60m = fdn_group(vslider("[3] Mid RT60 [unit:s] [style:knob]
      [tooltip: T60 = time (in seconds) to decay 60dB in middle band]",
      2, 1, 8, 0.1));
    f2 = fdn_group(vslider("[4] HF Damping [unit:Hz] [style:knob]
      [tooltip: Frequency (Hz) at which the high-frequency T60 is half the middle-band's T60]",
      6000, 1500, 0.49*fsmax, 1));
  };
  */
................................................................................

    freq_group(x) = fdn_group(hgroup("[2] Decay Times in Bands (see tooltips)", x));

    f1 = freq_group(vslider("[1] LF X [unit:Hz] [style:knob]
         [tooltip: Crossover frequency (Hz) separating low and middle frequencies]",
         200, 50, 1000, 1));

    t60dc = freq_group(vslider("[2] Low RT60 [unit:s] [style:knob]
            [style:knob] [tooltip: T60 = time (in seconds) to decay 60dB in low-frequency band]",
      3, 1, 8, 0.1));

    t60m = freq_group(vslider("[3] Mid RT60 [unit:s] [style:knob]
            [tooltip: T60 = time (in seconds) to decay 60dB in middle band]",
      2, 1, 8, 0.1));

    f2 = freq_group(vslider("[4] HF Damping [unit:Hz] [style:knob]
         [tooltip: Frequency (Hz) at which the high-frequency T60 is half the middle-band's T60]",
         6000, 1500, 0.49*fsmax, 1));

................................................................................
  guigroup1(fx)=vgroup("[1]Zita_Extended",tgroup("",vgroup("2 Room Model",fx)));
  guigroup2(fx)=vgroup("[1]Zita_Extended",tgroup("",vgroup("1 Reverb",fx)));
  guigroup3(fx)=vgroup("[1]Zita_Extended",tgroup("",hgroup("3 Outmix",fx)));

  ROOM(i)       =guigroup1(hgroup("1",nentry("SIM_ROOM(%i)[unit:m]",SIM_ROOM(i),0,100,0.001)));
  SOURCE(i)     =guigroup1(hgroup("2",nentry("SIM_SOURCE(%i)[unit:percent]",SIM_SOURCE(i),0,100,.001))); 
  DESTINATION(i)=guigroup1(hgroup("3",nentry("[3]SIM_DESTINATION(%i)[unit:percent]",SIM_DESTINATION(i),0,100,.001))); 
  RS            =guigroup2(hslider("[0]RoomSize",RoomSize,0.010,4,.001));
  LR            =guigroup1(hgroup("3",hslider("[2]SIM_LR[unit:percent]",SIM_LR,0,1,.001))); 
  DISTANCE      =guigroup1(hgroup("3",hslider("[1]SIM_DISTANCE[unit:percent]",SIM_DISTANCE,0,1,.001))); 
  
  APG(i)         =guigroup2(hslider("[15]AP_G",AP_G,0,.9,.01)); 
  FLTON          =guigroup2(checkbox("compare_loss_filters"));
  MAINFB         =guigroup2(hslider("[12]RT",RT,0,.999,.001));
  RT60           =guigroup2(hslider("[12]RT",RT,0,12,.001));
  ERCOMPRESSION  =guigroup2(hslider("[17]ER_COMPRESSION_FACTOR",ER_COMPRESSION_FACTOR,0,1,.01));
  APPERCENT      =guigroup2(hslider("[13]APDELAY_PERCENT",APDELAY_PERCENT,0,1,.01));
  OUTDELAY       =guigroup3(vgroup("[2]Out2",nentry("[0]Outdelay",Outdelay,0,4000,1)));
  OUTLEVEL(1)    =guigroup3(vgroup("[1]Out1",nentry("[0]Outlevel(1)",Outlevel(1),-1,1,0.001)*BYBOX(1)));
  OUTLEVEL(2)    =guigroup3(vgroup("[2]Out2",nentry("[0]Outlevel(2)",Outlevel(2),-1,1,0.001)*BYBOX(2)));
  BYBOX(i) = 1-checkbox("BY(%i)");
  DIRECTIVITY_WD=guigroup3(vgroup("[3]",hgroup("[0]Directivity",vgroup("[3]Flute",nentry("[4]DIR_WD[style:knob]",DIR_WD,0,1,0.01)))));
  SINUSDEPTH     =guigroup3(vgroup("[3]",vgroup("[1]LFO",nentry("[0]ZE_SinusDepth",ZE_SinusDepth,0,1,0.001))));
  SINUSFREQ_HZ   =guigroup3(vgroup("[3]",vgroup("[1]LFO",nentry("[2]ZE_SinusFreqHz",ZE_SinusFreqHz,0,10,0.01))));
  MOVEMENT       =guigroup3(vgroup("[3]",vgroup("[1]LFO",nentry("[0]SIM_MOVEMENT",SIM_MOVEMENT,0,1,0.001))));
  
  //------------------------
  //preset: default_fl_faun

  //------------------------
  //LF_X = 200;
  //Low_RT60 = 5.205;
  //Mid_RT60 = 2.7;
  //HF_Damping = 9082.8;
  RT = 0.284;
  APDELAY_PERCENT = 0.62;

  AP_G = 0.62;
  ER_COMPRESSION_FACTOR = 1;
  compare_loss_filters = 1;
  BY(1) = 0;
  Outlevel(1) = 0.3;
  BY(2) = 0;
  Outdelay = 256;
  Outlevel(2) = -0.5;
  DIR_WD = 0.005;
  ZE_SinusDepth = 0.004;
  ZE_SinusFreqHz = 1.18;
  RoomSize = 1.52;
  SIM_ROOM(1) = 42;
  SIM_ROOM(2) = 19;
  SIM_ROOM(3) = 16;
  SIM_SOURCE(1) = 33;
  SIM_SOURCE(2) = 11;
  SIM_SOURCE(3) = 3;
  SIM_DISTANCE = 0.618;
  SIM_LR = 0.569;
  SIM_DESTINATION(3) = 1;
};


>

<
>

<
|
<
<
<
<
|
|
|
|
|
|
|
|
|
|
<
|
>
>

>
>
>
|







 







|



|
>
>
>







 







>
>
>
>
>
>

>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|






|







 







|



|







 







|



|
|
|
|
|
|
|
|
|

|
|
|
|



>


|
|

|
<
>
|
|
|
|
|
|
|
|
|
|
|
|










1
2
3
4

5
6

7




8
9
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
..
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
..
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
...
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
...
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
...
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493

494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
import("filter.lib");
import("math.lib");
import("maxmsp.lib");


process = bus(2) : directivity.flute(8) : bus(8) : ze.zita_extended : bus(8) : ze.outmix(8) : bus(2) ;


ze = environment {




  
  zita_extended = (bus(2*M):>
    fbdelaylines(M))
        ~(
        allpass_combs(M)
        :zita.feedbackmatrix(M)
        :wdn(M,lossfilters(M),zxgui.FLTON)
        :wdn(M,reverbtime(M),(1-(zxgui.FLTON)))
          )
    :reflevel(M) with {

      M=8;
    };
    
  //N channel wet-dry control, "0" = dry, "1" = wet
  wdn(N,fx,ctl) = 
    par(i,N,_) <: 
      (fx : par(i,N,*(ctl)))
      ,par(i,N,*(1-(ctl))) :> par(i,N,_);
  
  maxapdelay(i) = 1<<16 ;
  maxfbdelay(i) = 1<<16 ;
  apdelay(i)=sim.reflectiondelay_ms(i)
    *SR/1000.0
    *zxgui.APPERCENT
    :min(maxapdelay(i))
................................................................................
    tdelay(i)=fbdelay(i)+apdelay(i);
    ].delayfilters(N,zita.freqs,zita.durs);
  fbdelaylines(N) = par(i,N,(fdelay(maxfbdelay(i),(fbdelay(i)))));
  allpass_combs(N)=par(i,N,(allpass_fcomb(maxapdelay(i),apdelay(i), zxgui.APG(i)))) 
    with {
      allpass_fcomb(maxdel,N,aN) = (+ <: fdelay(maxdel,N-1),*(aN)) ~ *(-aN) : mem,_ : + ;//filters.lib
    };
  reverbtime(N) = par(i,N,*(g1(i)))
    with {
      //choose decay law
      g0(i) = zxgui.MAINFB ; //none
      g1(i) = pow(pow(0.001,(1.0/(SR*(1)))),tdelay(i)); //rt60 in seconds 
      //g1    = pow(pow (0.001, (1.0 / (SR *ZE_RT(1)))),delaylength_in_samps) ; 
      g2(i) = exp(-3.0*log(10.0)*tdelay(i)/(SR*zxgui.ZE_RT60));
      g3(i) = 1.0 - 6.91*tdelay(i)/(SR*zxgui.ZE_RT60);
      tdelay(i) = fbdelay(i)+apdelay(i); //samps
    };
 
  zitaLFO(i)=sinusi(
    zxgui.SINUSFREQ_HZ,i*.125)
    *(zxgui.SINUSDEPTH)+1.0
    with {
................................................................................
    };
    
  reflevel(N) = par(i,N,*(reflectionlevel(i)))
    with {
      reflectionlevel(i)=sim.reflectionlevel(i)*(zxgui.ERCOMPRESSION) + makeup ;
      makeup = 1 - zxgui.ERCOMPRESSION ;
    };
    
  outmix(N)=bus(N)<:bus(2*N):(reva,refb):bus(4):>bus(2)
  with {
    //Lexicon style phaser
    reva=bus(N):>bus(2):par(i,2,*(zxgui.OUTLEVEL(1)));
    refb=bus(N):>bus(2):par(i,2,@(zxgui.OUTDELAY)):par(i,2,*(zxgui.OUTLEVEL(2)));
  };
};
 
directivity = environment {

  //bq(a,b,c,d,e,x) = biquad(x,a,b,c,-d,-e) ; //faust < 0.9.58
  bq = biquad; //faust >= 0.9.58

  flute(N) = bus(2) <: bus(N)
    //f1,f2,f3,f4,_,_,_,_;
    : ze.wdn(4,(f1,f2,f3,f4),zxgui.DIRWD),_,_,_,_
    //bus(8):>bus(4):f1,f2,f3,f4<:bus(8);
    with {
      //Directivity +damping for typical angles (*flute*)
      //todo: write awk program to generate this file
      f1 		= bq(0.778342, -1.557887, 0.779562, -1.998412, 0.998434) //125
          : bq(1.010895, -1.984542, 0.973962, -1.984542, 0.984857)  //250
          : bq(1.003048, -1.976456, 0.974663, -1.976456, 0.97771)   //500
          : bq(1.008643, -1.945218, 0.941521, -1.945218, 0.950164)  //1000
          : bq(1.000702, -1.835624, 0.853712, -1.835624, 0.854414)  //2000
          : bq(1.000646, -1.744797, 0.817466, -1.744797, 0.818112)  //4000
          : bq(1.006305, -1.48838, 0.761466, -1.48838, 0.767771) ;  //8000

      f2 		= bq(0.853169, -1.707658, 0.854508, -1.998412, 0.998434)
          : bq(1.002863, -1.9799, 0.977351, -1.9799, 0.980214)
          : bq(0.996158, -1.969549, 0.974642, -1.969549, 0.970799)
          : bq(0.98459, -1.92056, 0.940854, -1.92056, 0.925443)
          : bq(0.994906, -1.830226, 0.854054, -1.830226, 0.84896)
          : bq(1.001092, -1.745185, 0.817424, -1.745185, 0.818516)
          : bq(1.004413, -1.487008, 0.761728, -1.487008, 0.766141) ;
       
      f3 		= bq(0.658591, -1.318201, 0.659624, -1.998412, 0.998434)
          : bq(1.023436, -1.988192, 0.965071, -1.988192, 0.988507)
          : bq(1.00903, -1.980994, 0.973221, -1.980994, 0.982251)
          : bq(1.022493, -1.955188, 0.937667, -1.955188, 0.96016)
          : bq(1.00153, -1.836378, 0.853645, -1.836378, 0.855175)
          : bq(1.001812, -1.745807, 0.817353, -1.745807, 0.819164)
          : bq(1.009758, -1.490856, 0.760954, -1.490856, 0.770711) ;

      f4 		= bq(0.627894, -1.256758, 0.628879, -1.998412, 0.998434)
          : bq(1.018041, -1.985641, 0.967914, -1.985641, 0.985956)
          : bq(1.008185, -1.980429, 0.9735, -1.980429, 0.981686)
          : bq(1.005841, -1.94284, 0.941939, -1.94284, 0.94778)
          : bq(0.995605, -1.830888, 0.854024, -1.830888, 0.849629)
          : bq(1.001739, -1.745744, 0.81736, -1.745744, 0.819099)
          : bq(1.010747, -1.491558, 0.760799, -1.491558, 0.77154) ;
    };
};

sim = environment {

  /*** Source Image Model **********
  coordinates:
  Room <R1,R2,R3> ,Source <S1,S2,S3>, Destination <D1,D2,D3>

          front
................................................................................
  //   (args and references as for zita_rev_fdn above)

  zita_rev_fdn_demo = zita_rev_fdn(f1,f2,t60dc,t60m,fsmax);
  /*with {
    fsmax = 48000.0;
    fdn_group(x) = hgroup(
      "Zita_Rev Internal FDN Reverb [tooltip: ~ Zita_Rev's internal 8x8 Feedback Delay Network (FDN) & Schroeder allpass-comb reverberator.  See Faust's effect.lib for documentation and references]",x);
    t60dc = fdn_group(vslider("[1] Low ZE_RT60 [unit:s] [style:knob]
      [style:knob]
      [tooltip: T60 = time (in seconds) to decay 60dB in low-frequency band]",
      3, 1, 8, 0.1));
    f1 = fdn_group(vslider("[2] LF X [unit:Hz] [style:knob]
      [tooltip: Crossover frequency (Hz) separating low and middle frequencies]",
      200, 50, 1000, 1));
    t60m = fdn_group(vslider("[3] Mid ZE_RT60 [unit:s] [style:knob]
      [tooltip: T60 = time (in seconds) to decay 60dB in middle band]",
      2, 1, 8, 0.1));
    f2 = fdn_group(vslider("[4] HF Damping [unit:Hz] [style:knob]
      [tooltip: Frequency (Hz) at which the high-frequency T60 is half the middle-band's T60]",
      6000, 1500, 0.49*fsmax, 1));
  };
  */
................................................................................

    freq_group(x) = fdn_group(hgroup("[2] Decay Times in Bands (see tooltips)", x));

    f1 = freq_group(vslider("[1] LF X [unit:Hz] [style:knob]
         [tooltip: Crossover frequency (Hz) separating low and middle frequencies]",
         200, 50, 1000, 1));

    t60dc = freq_group(vslider("[2] Low ZE_RT60 [unit:s] [style:knob]
            [style:knob] [tooltip: T60 = time (in seconds) to decay 60dB in low-frequency band]",
      3, 1, 8, 0.1));

    t60m = freq_group(vslider("[3] Mid ZE_RT60 [unit:s] [style:knob]
            [tooltip: T60 = time (in seconds) to decay 60dB in middle band]",
      2, 1, 8, 0.1));

    f2 = freq_group(vslider("[4] HF Damping [unit:Hz] [style:knob]
         [tooltip: Frequency (Hz) at which the high-frequency T60 is half the middle-band's T60]",
         6000, 1500, 0.49*fsmax, 1));

................................................................................
  guigroup1(fx)=vgroup("[1]Zita_Extended",tgroup("",vgroup("2 Room Model",fx)));
  guigroup2(fx)=vgroup("[1]Zita_Extended",tgroup("",vgroup("1 Reverb",fx)));
  guigroup3(fx)=vgroup("[1]Zita_Extended",tgroup("",hgroup("3 Outmix",fx)));

  ROOM(i)       =guigroup1(hgroup("1",nentry("SIM_ROOM(%i)[unit:m]",SIM_ROOM(i),0,100,0.001)));
  SOURCE(i)     =guigroup1(hgroup("2",nentry("SIM_SOURCE(%i)[unit:percent]",SIM_SOURCE(i),0,100,.001))); 
  DESTINATION(i)=guigroup1(hgroup("3",nentry("[3]SIM_DESTINATION(%i)[unit:percent]",SIM_DESTINATION(i),0,100,.001))); 
  RS            =guigroup2(hslider("[0]SIM_ROOMSIZE",SIM_ROOMSIZE,0.010,4,.001));
  LR            =guigroup1(hgroup("3",hslider("[2]SIM_LR[unit:percent]",SIM_LR,0,1,.001))); 
  DISTANCE      =guigroup1(hgroup("3",hslider("[1]SIM_DISTANCE[unit:percent]",SIM_DISTANCE,0,1,.001))); 
  
  APG(i)         =guigroup2(hslider("[15]ZE_APGAIN",ZE_APGAIN,0,.9,.01)); 
  FLTON          =guigroup2(checkbox("compare_loss_filters")); //no default value
  MAINFB         =guigroup2(hslider("[12]ZE_RT",ZE_RT,0,.999,.001));
  ZE_RT60        =guigroup2(hslider("[12]ZE_RT",ZE_RT,0,12,.001));
  ERCOMPRESSION  =guigroup2(hslider("[17]ZE_ER_COMPRESSION",ZE_ER_COMPRESSION,0,1,.01));
  APPERCENT      =guigroup2(hslider("[13]ZE_APDELAY",ZE_APDELAY,0,1,.01));
  OUTDELAY       =guigroup3(vgroup("[2]Out2",nentry("[0]ZE_OUTDELAY",ZE_OUTDELAY,0,4000,1)));
  OUTLEVEL(1)    =guigroup3(vgroup("[1]Out1",nentry("[0]ZE_OUTLEVEL(1)",ZE_OUTLEVEL(1),-1,1,0.001)*BYBOX(1)));
  OUTLEVEL(2)    =guigroup3(vgroup("[2]Out2",nentry("[0]ZE_OUTLEVEL(2)",ZE_OUTLEVEL(2),-1,1,0.001)*BYBOX(2)));
  BYBOX(i) = 1-checkbox("BY(%i)");
  DIRWD          =guigroup3(vgroup("[3]",hgroup("[0]Directivity",vgroup("[3]Flute",nentry("[4]DIRECTIVITY_WD[style:knob]",DIRECTIVITY_WD,0,1,0.01)))));
  SINUSDEPTH     =guigroup3(vgroup("[3]",vgroup("[1]LFO",nentry("[0]ZE_LFO_DEPTH",ZE_LFO_DEPTH,0,1,0.001))));
  SINUSFREQ_HZ   =guigroup3(vgroup("[3]",vgroup("[1]LFO",nentry("[2]ZE_LFO_FREQ",ZE_LFO_FREQ,0,10,0.01))));
  //MOVEMENT       =guigroup3(vgroup("[3]",vgroup("[1]LFO",nentry("[0]SIM_MOVEMENT",SIM_MOVEMENT,0,1,0.001))));
  
  //------------------------
  //preset: default_fl_faun
  // created by pst2def.sh
  //------------------------
  //LF_X = 200;
  //Low_ZE_RT60 = 5.205;
  //Mid_ZE_RT60 = 2.7;
  //HF_Damping = 9082.8;
  ZE_RT = 0.284;

  ZE_APDELAY = 0.62;
  ZE_APGAIN = 0.62;
  ZE_ER_COMPRESSION = 1;
  //compare_loss_filters = 1; //no default
  //BY(1) = 0; //no default
  ZE_OUTLEVEL(1) = 0.3;
  //BY(2) = 0; //no default
  ZE_OUTDELAY = 256;
  ZE_OUTLEVEL(2) = -0.5;
  DIRECTIVITY_WD = 0.005;
  ZE_LFO_DEPTH = 0.004;
  ZE_LFO_FREQ = 1.18;
  SIM_ROOMSIZE = 1.52;
  SIM_ROOM(1) = 42;
  SIM_ROOM(2) = 19;
  SIM_ROOM(3) = 16;
  SIM_SOURCE(1) = 33;
  SIM_SOURCE(2) = 11;
  SIM_SOURCE(3) = 3;
  SIM_DISTANCE = 0.618;
  SIM_LR = 0.569;
  SIM_DESTINATION(3) = 1;
};