Meter, RMS

Download

     Disclaimer...

24   desc:RMS Meter, Mono, v1.0.0
25   // no decay
26  
27   @init
28   buf = 0;
29   bufpos = 0;
30   buflength = srate * 1.2; // 1.2 = 1200 ms
31  
32  
33   @sample
34   rmsValue = spl0 * spl0;
35   rmsSum -= buf[bufpos];
36   buf[bufpos] = rmsValue;
37   rmsSum += rmsValue;
38  
39   bufpos = bufpos + 1 ;
40   bufpos > buflength ? bufpos = 0;
41   bufpos % (srate * 0.040) == 0 ?
42   (
43   rmsDelta = rmsSum / buflength;
44   rmsDB = 20 * log10(sqrt(rmsDelta));
45   );
46  
47   spl0 = spl0;
48   spl1 = spl1;
49  

     Graphics...

51   @gfx 100 18
52   gfx_x=gfx_y=5;
53   gfx_r=0.7;
54   gfx_g=1;
55   gfx_b=0.1;
56   gfx_a=1;
57   gfx_drawchar($'R');
58   gfx_drawchar($'M');
59   gfx_drawchar($'S');
60   gfx_drawchar($':');
61   gfx_drawchar($' ');
62   gfx_drawnumber(rmsDB,1);
63  

Download

Meter, Peak

Download

     Disclaimer...

24   desc:Peak Meter, Mono, v1.0.0
25   // no decay
26  
27   @init
28   buf = 0;
29   bufpos = 0;
30   buflength = srate * 0.08; // 1.2 = 1200 ms
31  
32  
33   @sample
34   peakValue = abs(spl0);
35   buf[bufpos] = peakValue;
36   bufpos += 1;
37   bufpos > buflength ? bufpos = 0;
38  
39   bufpos % (srate * 0.040) == 0 ?
40   (
41   maxVal = 0; i = 0;
42   while ( i < buflength )
43   (
44   buf[i] > maxVal ? maxVal = buf[i];
45   i += 1;
46   );
47  
48   peakDB = 20 * log10(maxVal);
49  
50   );
51  
52   spl0 = spl0;
53   spl1 = spl1;
54  

     Graphics...

56   @gfx 100 18
57   gfx_x=gfx_y=5;
58   gfx_r=0.7;
59   gfx_g=1;
60   gfx_b=0.1;
61   gfx_a=1;
62   gfx_drawchar($'P');
63   gfx_drawchar($'e');
64   gfx_drawchar($'a');
65   gfx_drawchar($'k');
66   gfx_drawchar($':');
67   gfx_drawchar($' ');
68   gfx_drawnumber(peakDB,1);
69  

Download

Meter, LUFS -18dB

Download

     Disclaimer...

26   desc:LUFS Meter, Mono [-18dB], v1.0.1
27  
28   @init
29   a1a = -1.69065929318241; // 48k prefilter, boost highs, model effects of head as a sphere
30   a2a = 0.73248077421585;
31   b0a = 1.53512485958697;
32   b1a = -2.69169618940638;
33   b2a = 1.19839281085285;
34  
35   srate == 44100 ? (
36   a1a = -1.66365511325602; // 44k prefilter, boost highs, model effects of head as a sphere
37   a2a = 0.71259542807323;
38   b0a = 1.53084123005035;
39   b1a = -2.65097999515473;
40   b2a = 1.16907907992159;
41   );
42  
43   axn=0;
44   axn1=0;
45   axn2=0;
46   ayn=0;
47   ayn1=0;
48   ayn2=0;
49  
50   a1b = -1.99004745483398; // 48k High Pass
51   a2b = 0.99007225036621;
52   b0b = 1.0;
53   b1b = -2.0;
54   b2b = 1.0;
55  
56   srate == 44100 ? (
57   a1b = -1.98916967362980; // 44k High Pass
58   a2b = 0.98919903578704;
59   b0b = 0.99956006454251;
60   b1b = -1.99912012908503;
61   b2b = 0.99956006454251;
62   );
63  
64   bxn=0;
65   bxn1=0;
66   bxn2=0;
67   byn=0;
68   byn1=0;
69   byn2=0;
70  
71   buf = 0; // buffer exists at offset 0
72   bufpos = 0;
73   buflength = srate * 3;//1.2; // 1200 ms
74  
75   rmsSum = 0;
76   rmsTarget = 0.01;
77   LUFS_REF = pow(10, 20/-18);
78  
79  
80   @sample
81   axn2=axn1;
82   axn1=axn;
83   axn=spl0;
84   ayn2=ayn1;
85   ayn1=ayn;
86  
87   ayn=b0a*axn + b1a*axn1 + b2a*axn2 - a1a*ayn1 - a2a*ayn2;
88  
89   bxn2=bxn1;
90   bxn1=bxn;
91   bxn=ayn * sqrt(1.3);
92   byn2=byn1;
93   byn1=byn;
94  
95   byn=b0b*bxn + b1b*bxn1 + b2b*bxn2 - a1b*byn1 - a2b*byn2;
96  
97   rmsValue = byn * byn;
98   rmsSum -= buf[bufpos];
99   buf[bufpos] = rmsValue;
100   rmsSum += rmsValue;
101  
102   bufpos = bufpos + 1 ;
103   bufpos > buflength ? bufpos = 0;
104  
105   gain = 1.0;
106   rmsDelta = rmsSum / buflength;
107   rmsDB = 20 * log10(sqrt(rmsDelta) / LUFS_REF) - 24; // -21 for stereo simulation
108  
109   spl0 = axn;
110   spl1 = spl1;
111  

     Graphics...

113   @gfx 100 18
114   gfx_x=gfx_y=5;
115   gfx_r=0.7;
116   gfx_g=1;
117   gfx_b=0.1;
118   gfx_a=1;
119   gfx_drawchar($'L');
120   gfx_drawchar($'U');
121   gfx_drawchar($'F');
122   gfx_drawchar($'S');
123   gfx_drawchar($' ');
124   gfx_drawchar($'1');
125   gfx_drawchar($'8');
126   gfx_drawchar($':');
127   gfx_drawchar($' ');
128   gfx_drawnumber(rmsDB,1);
129  
130  

Download

Sin Generator Pro

Download

     Disclaimer...

23   desc:Sin Generator Pro, v1.0.0
24  
25   //slider1:.5664<0,1,0.001>Frequency ( see in text box below )
26   //slider2:1000<20,20000,1>Placeholder ( do not move )
27   slider1:.5664<0.3661,0.5664,0.00001>Frequency ( see in text box below )
28   slider2:1000<250,1000,1>Placeholder ( do not move )
29  
30   @init
31   j = 0;
32   gain = 0.316;
33   pi2 = 2.0 * $pi;
34   angle = 0;
35  
36   @slider
37   g = slider1 * 3;
38   h = 20 * pow(10,g);
39   slider2 = floor(h);
40   sliderchange(slider2);
41   slider_automate(slider2);
42   f = slider2;
43   theta = pi2 * f / srate;
44   //j = floor(( angle/theta ) - 1);
45   j = ( angle / theta ) - 1;
46  
47   @sample
48   j += 1;
49   angle = j * theta;
50   c = sin( angle );
51   c *= gain;
52  
53   spl0 = c;
54   spl1 = spl0;

Download

Sin Generator

Download

     Disclaimer...

23   desc:Sin Generator, v1.0.0
24  
25   slider1:1000<20,20000,0.1>Frequency
26   //slider1:1000<250,1000,1>Frequency
27  
28   @init
29   j = 0;
30   gain = 0.316;
31   pi2 = 2.0 * $pi;
32  
33   @slider
34   f = slider1;
35   theta = pi2 * f / srate;
36  
37   @sample
38   j += 1;
39   spl0 = sin( j * theta );
40   spl0 *= gain;
41   spl1 = spl0;

Download

IR Creator

Download

     Disclaimer...

23   desc:IR Creator, v1.0.0
24  
25   slider1: 1.0 < 0, 1.0 , 0.01 > IR Max
26  
27   @init
28   max = 1.0;
29   count = 0;
30  
31   @slider
32   max = slider1;
33  
34   @sample
35   newSample = 0;
36   count = count + 1;
37   count == 25 ? ( newSample = max * 0.9999999; );
38   spl0 = newSample;

Download

MS Encoder/Decoder

Download

     Disclaimer...

23   desc:MS Encoder/Decoder, v1.0.0
24  
25   @init
26   gain = 0.707;
27  
28   @slider
29  
30   @sample
31   left_in = spl0 * gain;
32   right_in = spl1 * gain;
33  
34   // create MS pair ENCODER
35   mid = left_in + right_in;
36   sides = left_in - right_in;
37  
38   // output
39   spl0 = mid;
40   spl1 = sides;

Download