EQ, 2nd-Order Low-Pass

Download

     Disclaimer...

23   desc:EQ, Low-Pass 2nd-Order, v1.0.1
24   // slope = -12 dB / Octave
25  
26   slider1:1000<40,20000,1>Cutoff [Hz]
27  
28   @init
29   x = 0;
30   x1 = 0;
31   x2 = 0;
32   y = 0;
33   y1 = 0;
34   y2 = 0;
35   d = sqrt(2);
36  
37   @slider
38   slider1 > 39 ? (
39   w = 2.0 * $pi * slider1 / srate;
40   beta = 0.5 * (( 1.0 - d / 2.0 * sin(w) ) / ( 1.0 + d / 2.0 * sin(w) ));
41   gamma = ( 0.5 + beta ) * cos(w);
42   alpha = ( 0.5 + beta - gamma ) / 4.0;
43   );
44  
45   @sample
46   x = spl0;
47   y = 2.0 * ( alpha * ( x + 2.0 * x1 + x2 ) + gamma * y1 - beta * y2 );
48   x2 = x1;
49   x1 = x;
50   y2 = y1;
51   y1 = y;
52   spl0 = y;
53  

Download
Posted in EQs

EQ, 1st-Order Low-Pass

Download

     Disclaimer...

23   desc:EQ, Low-Pass 1st-Order, v1.0.1
24   // slope = -6 dB / Octave
25  
26   slider1:1000<40,20000,1>Cutoff [Hz]
27  
28   @init
29   x = 0;
30   x1 = 0;
31   y = 0;
32   y1 = 0;
33  
34   @slider
35   slider1 > 39 ? (
36   w = 2.0 * $pi * slider1 / srate;
37   beta = 0.5 * (( 1.0 - sin(w) ) / ( 1.0 + sin(w) ));
38   gamma = ( 0.5 + beta ) * cos(w);
39   alpha = ( 1.0 - gamma ) / 2.0;
40   );
41  
42   @sample
43   x = spl0;
44   y = alpha * ( x + x1 ) + gamma * y1;
45   x1 = x;
46   y1 = y;
47   spl0 = y;
48  

Download
Posted in EQs

EQ, Nth-Order High-Pass

Download

     Disclaimer...

23   desc:EQ, High-Pass Nth-Order, v1.0.1
24   // slope = (M * -12 dB) / Octave
25  
26   slider1:4000<20,16000,1>Cutoff [Hz]
27   slider2:2<2,12,2>Order [N]
28  
29   @init
30   M = 1;
31  
32   @slider
33  
34   function find_D(index stages)
35   (
36   _k = index;
37   _M = stages;
38   2.0 * sin($pi*(2*_k-1)/(4*_M));
39   );
40  
41   slider1 > 19 ? (
42   slider2 > 1 ? (
43   N = slider2; // order N, 2 < N < 12
44   M = N / 2; // # of cascaded elements M, 1 < M < 6
45   w = 2.0 * $pi * slider1 / srate;
46  
47   d = find_D(1, M);
48   beta1 = 0.5 * (( 1.0 - d / 2.0 * sin(w) ) / ( 1.0 + d / 2.0 * sin(w) ));
49   gamma1 = ( 0.5 + beta1 ) * cos(w);
50   alpha1 = ( 0.5 + beta1 + gamma1 ) / 4.0;
51  
52   M > 1 ? (
53   d = find_D(2, M);
54   beta2 = 0.5 * (( 1.0 - d / 2.0 * sin(w) ) / ( 1.0 + d / 2.0 * sin(w) ));
55   gamma2 = ( 0.5 + beta2 ) * cos(w);
56   alpha2 = ( 0.5 + beta2 + gamma2 ) / 4.0;
57   );
58  
59   M > 2 ? (
60   d = find_D(3, M);
61   beta3 = 0.5 * (( 1.0 - d / 2.0 * sin(w) ) / ( 1.0 + d / 2.0 * sin(w) ));
62   gamma3 = ( 0.5 + beta3 ) * cos(w);
63   alpha3 = ( 0.5 + beta3 + gamma3 ) / 4.0;
64   );
65  
66   M > 3 ? (
67   d = find_D(4, M);
68   beta4 = 0.5 * (( 1.0 - d / 2.0 * sin(w) ) / ( 1.0 + d / 2.0 * sin(w) ));
69   gamma4 = ( 0.5 + beta4 ) * cos(w);
70   alpha4 = ( 0.5 + beta4 + gamma4 ) / 4.0;
71   );
72  
73   M > 4 ? (
74   d = find_D(5, M);
75   beta5 = 0.5 * (( 1.0 - d / 2.0 * sin(w) ) / ( 1.0 + d / 2.0 * sin(w) ));
76   gamma5 = ( 0.5 + beta5 ) * cos(w);
77   alpha5 = ( 0.5 + beta5 + gamma5 ) / 4.0;
78   );
79  
80   M > 5 ? (
81   d = find_D(6, M);
82   beta6 = 0.5 * (( 1.0 - d / 2.0 * sin(w) ) / ( 1.0 + d / 2.0 * sin(w) ));
83   gamma6 = ( 0.5 + beta6 ) * cos(w);
84   alpha6 = ( 0.5 + beta6 + gamma6 ) / 4.0;
85   );
86  
87   )
88   );
89  
90   @sample
91   x_1 = spl0;
92   y_1 = 2.0 * ( alpha1 * ( x_1 - 2.0 * x1_1 + x2_1 ) + gamma1 * y1_1 - beta1 * y2_1 );
93   x2_1 = x1_1;
94   x1_1 = x_1;
95   y2_1 = y1_1;
96   y1_1 = y_1;
97   spl0 = y_1;
98  
99   M > 1 ? (
100   x_2 = spl0;
101   y_2 = 2.0 * ( alpha2 * ( x_2 - 2.0 * x1_2 + x2_2 ) + gamma2 * y1_2 - beta2 * y2_2 );
102   x2_2 = x1_2;
103   x1_2 = x_2;
104   y2_2 = y1_2;
105   y1_2 = y_2;
106   spl0 = y_2;
107   );
108  
109   M > 2 ? (
110   x_3 = spl0;
111   y_3 = 2.0 * ( alpha3 * ( x_3 - 2.0 * x1_3 + x2_3 ) + gamma3 * y1_3 - beta3 * y2_3 );
112   x2_3 = x1_3;
113   x1_3 = x_3;
114   y2_3 = y1_3;
115   y1_3 = y_3;
116   spl0 = y_3;
117   );
118  
119   M > 3 ? (
120   x_4 = spl0;
121   y_4 = 2.0 * ( alpha4 * ( x_4 - 2.0 * x1_4 + x2_4 ) + gamma4 * y1_4 - beta4 * y2_4 );
122   x2_4 = x1_4;
123   x1_4 = x_4;
124   y2_4 = y1_4;
125   y1_4 = y_4;
126   spl0 = y_4;
127   );
128  
129   M > 4 ? (
130   x_5 = spl0;
131   y_5 = 2.0 * ( alpha5 * ( x_5 - 2.0 * x1_5 + x2_5 ) + gamma5 * y1_5 - beta5 * y2_5 );
132   x2_5 = x1_5;
133   x1_5 = x_5;
134   y2_5 = y1_5;
135   y1_5 = y_5;
136   spl0 = y_5;
137   );
138  
139   M > 5 ? (
140   x_6 = spl0;
141   y_6 = 2.0 * ( alpha6 * ( x_6 - 2.0 * x1_6 + x2_6 ) + gamma6 * y1_6 - beta6 * y2_6 );
142   x2_6 = x1_6;
143   x1_6 = x_6;
144   y2_6 = y1_6;
145   y1_6 = y_6;
146   spl0 = y_6;
147   );
148  

Download
Posted in EQs

EQ, 2nd-Order High-Pass

Download

     Disclaimer...

23   desc:EQ, High-Pass 2nd-Order, v1.0.1
24   // slope = -12 dB / Octave
25  
26   slider1:4000<20,16000,1>Cutoff [Hz]
27  
28   @init
29   x = 0;
30   x1 = 0;
31   x2 = 0;
32   y = 0;
33   y1 = 0;
34   y2 = 0;
35   d = sqrt(2);
36  
37   @slider
38   slider1 > 19 ? (
39   w = 2.0 * $pi * slider1 / srate;
40   beta = 0.5 * (( 1.0 - d / 2.0 * sin(w) ) / ( 1.0 + d / 2.0 * sin(w) ));
41   gamma = ( 0.5 + beta ) * cos(w);
42   alpha = ( 0.5 + beta + gamma ) / 4.0;
43   );
44  
45   @sample
46   x = spl0;
47   y = 2.0 * ( alpha * ( x - 2.0 * x1 + x2 ) + gamma * y1 - beta * y2 );
48   x2 = x1;
49   x1 = x;
50   y2 = y1;
51   y1 = y;
52   spl0 = y;
53  

Download
Posted in EQs

EQ, 1st-Order High-Pass

Download

     Disclaimer...

23   desc:EQ, High-Pass 1st-Order, v1.0.1
24   // slope = -6 dB / Octave
25  
26   slider1:4000<20,16000,1>Cutoff [Hz]
27  
28   @init
29   x = 0;
30   x1 = 0;
31   y = 0;
32   y1 = 0;
33  
34   @slider
35   slider1 > 19 ? (
36   w = 2.0 * $pi * slider1 / srate;
37   beta = 0.5 * ( 1.0 - sin(w) ) / ( 1.0 + sin(w) );
38   gamma = ( 0.5 + beta ) * cos(w);
39   alpha = ( 1.0 + gamma ) / 2.0;
40   );
41  
42   @sample
43   x = spl0;
44   y = alpha * ( x - x1 ) + gamma * y1;
45   x1 = x;
46   y1 = y;
47   spl0 = y;
48  

Download
Posted in EQs