Knob, Narrow [±12dB]

Download

     Disclaimer...

28   desc:Knob: Narrow [±12dB], v1.0.1
29  
30   slider1: 50 <0, 100, 0.1> Position [mm]
31  
32   @init
33   gfx_clear = 256*256*256-1;
34   m = 1;
35  
36   @slider
37   c = 2 * ((slider1 / 100.0) - 0.5); // -1 < c < 1
38   c < 0 ? (
39   d = sqrt(abs(c+1)) * 12 - 12
40   ) : (
41   d = sqrt(abs(c-1)) * -12 + 12
42   );
43   m = pow( 10, d / 20.0 );
44  
45   @sample
46   spl0 *= m;
47   spl1 *= m;
48  

     Graphics...

50   @gfx 256 256
51   gfx_setfont(1, "Arial", 10);
52   gfx_a = 1;
53  
54   gfx_r = gfx_g = gfx_b = 0.1;
55   gfx_line(0, 0, gfx_w, 0, 0.5); // outline our GUI box
56   gfx_line(0, 0, 0, gfx_h, 0.5);
57   gfx_line(gfx_w-1, 0, gfx_w-1, gfx_h, 0.5);
58   gfx_line(0, gfx_h-2, gfx_w, gfx_h-2, 0.5);
59  
60   x_step = gfx_w / 10;
61   y_step = gfx_h / 10;
62  
63   i = 1;
64   loop(9, // y-axiis
65   x = i*x_step;
66   gfx_line(x, y_step, x, y_step*7, 0.5);
67   i += 1;
68   );
69  
70   gfx_x = x_step - 2;
71   gfx_y = gfx_h - 3*y_step + 9;
72   gfx_drawchar($'0');
73   gfx_drawchar($'m');gfx_drawchar($'m');
74  
75   gfx_x = 3*x_step - 7;
76   gfx_y = gfx_h - 3*y_step + 9;
77   gfx_drawchar($'2');
78   gfx_drawchar($'5');
79   gfx_drawchar($'m');gfx_drawchar($'m');
80  
81   gfx_x = 5*x_step - 7;
82   gfx_y = gfx_h - 3*y_step + 9;
83   gfx_drawchar($'5');
84   gfx_drawchar($'0');
85   gfx_drawchar($'m');gfx_drawchar($'m');
86  
87   gfx_x = 7*x_step - 7;
88   gfx_y = gfx_h - 3*y_step + 9;
89   gfx_drawchar($'7');
90   gfx_drawchar($'5');
91   gfx_drawchar($'m');gfx_drawchar($'m');
92  
93   gfx_x = 9*x_step - 12;
94   gfx_y = gfx_h - 3*y_step + 9;
95   gfx_drawchar($'1');
96   gfx_drawchar($'0');
97   gfx_drawchar($'0');
98   gfx_drawchar($'m');gfx_drawchar($'m');
99  
100   i = 1;
101   loop(7, // x-axiis
102   y = i*y_step;
103   gfx_line(x_step-2, y, x_step*9, y, 0.5);
104   i += 1;
105   );
106  
107   gfx_x = x_step - 38;
108   gfx_y = y_step - 6;
109   gfx_drawchar($'+');
110   gfx_drawchar($'1');
111   gfx_drawchar($'2');
112   gfx_drawchar($'d');
113   gfx_drawchar($'B');
114  
115   gfx_x = x_step - 36;
116   gfx_y = 2*y_step - 7;
117   gfx_drawchar($'+');
118   gfx_drawchar($' ');
119   gfx_drawchar($'8');
120   gfx_drawchar($'d');
121   gfx_drawchar($'B');
122  
123   gfx_x = x_step - 36;
124   gfx_y = 3*y_step - 7;
125   gfx_drawchar($'+');
126   gfx_drawchar($' ');
127   gfx_drawchar($'4');
128   gfx_drawchar($'d');
129   gfx_drawchar($'B');
130  
131   gfx_x = x_step - 32;
132   gfx_y = 4*y_step - 7;
133   gfx_drawchar($' ');
134   gfx_drawchar($' ');
135   gfx_drawchar($'0');
136   gfx_drawchar($'d');
137   gfx_drawchar($'B');
138  
139   gfx_x = x_step - 36;
140   gfx_y = 5*y_step - 7;
141   gfx_drawchar($'-');
142   gfx_drawchar($' ');
143   gfx_drawchar($'4');
144   gfx_drawchar($'d');
145   gfx_drawchar($'B');
146  
147   gfx_x = x_step - 36;
148   gfx_y = 6*y_step - 7;
149   gfx_drawchar($'-');
150   gfx_drawchar($' ');
151   gfx_drawchar($'8');
152   gfx_drawchar($'d');
153   gfx_drawchar($'B');
154  
155   gfx_x = x_step - 38;
156   gfx_y = 7*y_step - 7;
157   gfx_drawchar($'-');
158   gfx_drawchar($'1');
159   gfx_drawchar($'2');
160   gfx_drawchar($'d');
161   gfx_drawchar($'B');
162  
163   gfx_r = gfx_g = 0.1;
164   gfx_b = 0.9;
165   dB = 20.01 * log10(m) + 12;
166   y = y_step*7 - y_step*dB/4;// + y_step;
167   gfx_rect(x_step+2, y, x_step*8-3, 2, 0.5); // horizontal line
168   gfx_rect(x_step+slider1/100*x_step*8, y_step+2, 1, y_step*6-2, 0.5);// vertical line
169   gfx_rect(x_step+slider1/100*x_step*8-3, y-2, 6, 6, 0.5); // hilite box
170   gfx_x = gfx_w*.9+8;
171   gfx_y = y-6;
172   sprintf(str, "%.1fdB", dB-12);
173   gfx_drawstr(str);
174   gfx_x = x_step+slider1/100*x_step*8-9;
175   gfx_y = y_step - 17;
176   sprintf(str, "%.1fmm", slider1);
177   gfx_drawstr(str);
178  
179   gfx_g = 0.2;
180   gfx_b = gfx_r = 0.9;
181   RES = 100; // min = 8
182   x_step1 = x_step * 8/RES;
183  
184   i = 1;
185   loop(RES, //8, // main curve
186   x = i*x_step1;
187  
188   c=(i-1)/RES;
189   d = 2 * ((c) - 0.5);
190   d < 0 ? (
191   dB = sqrt(abs(d+1)) * 12 - 12
192   ) : (
193   dB = sqrt(abs(d-1)) * -12 + 12
194   );
195   dB += 12;
196   y = y_step*7 - y_step*dB/4;
197  
198   c=(i)/RES;
199   d = 2 * ((c) - 0.5);
200   d < 0 ? (
201   dB1 = sqrt(abs(d+1)) * 12 - 12
202   ) : (
203   dB1 = sqrt(abs(d-1)) * -12 + 12
204   );
205   dB1 += 12;
206   y1 = y_step*7 - y_step*dB1/4;
207  
208   gfx_line(x_step+x-x_step1, y, x_step+x, y1, 0.5);
209   i += 1;
210   );
211  
212   gfx_setfont(1, "Arial", 12); // main title
213   gfx_r = gfx_g = gfx_b = 0.0;
214   gfx_x = x_step;
215   gfx_y = gfx_h - y_step - 7;
216   gfx_drawstr("Narrow Knob: Gain (dB) - vs - Fader Travel (mm)");
217  
218   // mouse
219   mouse_cap == 1 ? (
220   xx = mouse_x;
221   xx > gfx_w * 0.1 ? (
222   xx < gfx_w * 0.9 ? (
223   yy = mouse_y;
224   yy > gfx_h * 0.1 ? (
225   yy < gfx_h * 0.7 ? (
226   slider1 = 100 * (xx - gfx_w*.1) / (gfx_w*.9 - gfx_w*.1);
227   slider1 < 0.3 ? slider1 = floor(slider1);
228   slider1 > 99.7 ? slider1 = ceil(slider1);
229   slider1 = floor(slider1*10);
230   slider1 /= 10;
231   sliderchange(slider1);
232   slider_automate(slider1);
233   c = 2 * ((slider1 / 100.0) - 0.5); // -1 < c < 1
234   c < 0 ? (
235   d = sqrt(abs(c+1)) * 12 - 12
236   ) : (
237   d = sqrt(abs(c-1)) * -12 + 12
238   );
239   m = pow( 10, d / 20.0 );
240   )
241   );
242   );
243   );
244   );

Download