Imported Debian patch 0.24.0-1
Roland Stigge authored 11 years ago
Ross Gammon committed 8 years ago
0 | guitarix2 (0.23.2) unstable; urgency=low | |
1 | * fix segfault on 64 bit arch | |
2 | * fix wrong vars in mono convolver unit | |
3 | ||
4 | -- brummer <brummer-@web.de> Mon, 02 Jul 2012 05:37:35 +0200 | |
5 | ||
6 | guitarix2 (0.23.1) unstable; urgency=low | |
7 | * GIT head [938e5a] | |
8 | ||
9 | -- brummer <brummer-@web.de> Mon, 02 Jul 2012 05:37:35 +0200 | |
10 | guitarix2 (0.23.0) unstable; urgency=low | |
11 | * GIT head [938e5a] | |
12 | ||
13 | -- brummer <brummer-@web.de> Mon, 02 Jul 2012 05:37:35 +0200 | |
0 | guitarix2 (0.24.0) unstable; urgency=low | |
1 | * GIT head | |
2 | ||
3 | -- brummer <brummer-@web.de> Mon, 12 Jul 2012 06:37:35 +0200 | |
14 | 4 | |
15 | 5 | guitarix2 (0.17.0svn) unstable; urgency=low |
16 | 6 | * SVN head |
0 | guitarix (0.24.0-1) experimental; urgency=low | |
1 | ||
2 | * New upstream release | |
3 | ||
4 | -- Roland Stigge <stigge@antcom.de> Mon, 13 Aug 2012 10:55:42 +0200 | |
5 | ||
0 | 6 | guitarix (0.23.3-1) experimental; urgency=low |
1 | 7 | |
2 | 8 | * New upstream release |
6 | 6 | dh $@ |
7 | 7 | |
8 | 8 | override_dh_auto_configure: |
9 | ./waf configure --prefix=/usr --no-faust | |
9 | ./waf configure --prefix=/usr --no-faust \ | |
10 | --cxxflags="$(shell dpkg-buildflags --get CXXFLAGS) \ | |
11 | $(shell dpkg-buildflags --get CPPFLAGS)" \ | |
12 | --ldflags="$(shell dpkg-buildflags --get LDFLAGS)" -v | |
10 | 13 | |
11 | 14 | override_dh_auto_build: |
12 | ./waf build | |
15 | ./waf build -v | |
13 | 16 | |
14 | 17 | override_dh_auto_clean: |
15 | 18 | ./waf distclean |
21 | 21 | ******************************************************************************/ |
22 | 22 | |
23 | 23 | #include "GxWaveView.h" |
24 | #include "GxGradient.h" | |
24 | 25 | #include <math.h> |
25 | 26 | |
26 | 27 | #define P_(s) (s) // FIXME -> gettext |
48 | 49 | static const int liveview_y = 80; |
49 | 50 | static const int background_width = 282; |
50 | 51 | static const int background_height = 52; |
52 | ||
53 | inline double cairo_clr(guint16 clr) | |
54 | { | |
55 | return clr / 65535.0; | |
56 | } | |
57 | ||
58 | // set cairo color related to the used skin | |
59 | static void set_box_color(GtkWidget *wi, cairo_pattern_t *pat) | |
60 | { | |
61 | GxGradient *grad; | |
62 | gtk_widget_style_get(wi, "box-gradient", &grad, NULL); | |
63 | if (!grad) { | |
64 | GdkColor *p1 = &wi->style->bg[GTK_STATE_NORMAL]; | |
65 | cairo_pattern_add_color_stop_rgba( | |
66 | pat, 0, cairo_clr(p1->red), cairo_clr(p1->green), | |
67 | cairo_clr(p1->blue), 0.8); | |
68 | GdkColor *p2 = &wi->style->fg[GTK_STATE_NORMAL]; | |
69 | cairo_pattern_add_color_stop_rgba( | |
70 | pat, 1, (cairo_clr(p1->red)+cairo_clr(p2->red))/2, | |
71 | (cairo_clr(p1->green)+cairo_clr(p2->green))/2, | |
72 | (cairo_clr(p1->blue)+cairo_clr(p2->blue))/2, 0.8); | |
73 | return; | |
74 | } | |
75 | GSList *p; | |
76 | for (p = grad->colors; p; p = g_slist_next(p)) { | |
77 | GxGradientElement *el = (GxGradientElement*)p->data; | |
78 | cairo_pattern_add_color_stop_rgba(pat, el->offset, el->red, el->green, el->blue, el->alpha); | |
79 | } | |
80 | gx_gradient_free(grad); | |
81 | } | |
51 | 82 | |
52 | 83 | static void wave_view_background(GxWaveView *waveview,GtkWidget *widget , |
53 | 84 | int liveviewx, int liveviewy) |
209 | 240 | cairo_line_to (cr, liveviewx, liveviewy+25); |
210 | 241 | cairo_pattern_t* linpat = |
211 | 242 | cairo_pattern_create_linear (liveviewx, liveviewy-15,liveviewx, liveviewy+25); |
212 | ||
213 | 243 | cairo_pattern_set_extend(linpat, CAIRO_EXTEND_REFLECT); |
214 | cairo_pattern_add_color_stop_rgba (linpat, 0.4, 1, 0.2, 0,0.8); | |
215 | cairo_pattern_add_color_stop_rgba (linpat, 0.8, 0.2, 1, 0.2,0.8); | |
244 | set_box_color(widget, linpat); | |
245 | ||
246 | //cairo_pattern_add_color_stop_rgba (linpat, 0.4, 1, 0.2, 0,0.8); | |
247 | //cairo_pattern_add_color_stop_rgba (linpat, 0.8, 0.2, 1, 0.2,0.8); | |
216 | 248 | cairo_set_source (cr, linpat); |
217 | 249 | cairo_close_path (cr); |
218 | 250 | |
232 | 264 | cairo_pattern_create_linear (liveviewx, liveviewy,liveviewx+140, liveviewy); |
233 | 265 | |
234 | 266 | cairo_pattern_set_extend(linpat, CAIRO_EXTEND_REFLECT); |
235 | cairo_pattern_add_color_stop_rgba (linpat, 0.2, 1, 0.2, 0,0.8); | |
236 | cairo_pattern_add_color_stop_rgba (linpat, 0.8, 0.2, 1, 0.2,0.8); | |
267 | set_box_color(widget, linpat); | |
268 | //cairo_pattern_add_color_stop_rgba (linpat, 0.2, 1, 0.2, 0,0.8); | |
269 | //cairo_pattern_add_color_stop_rgba (linpat, 0.8, 0.2, 1, 0.2,0.8); | |
237 | 270 | cairo_set_source (cr, linpat); |
238 | 271 | cairo_set_line_width (cr, 3.0); |
239 | 272 | cairo_stroke (cr); |
303 | 336 | P_("Text to be displayed at the bottom right"), |
304 | 337 | 0, 100, 70, |
305 | 338 | GParamFlags(G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS))); |
339 | gtk_widget_class_install_style_property_parser( | |
340 | GTK_WIDGET_CLASS(klass), | |
341 | g_param_spec_boxed("box-gradient", | |
342 | P_("Skin color"), | |
343 | P_("Color gradient defined as part of skin"), | |
344 | GX_TYPE_GRADIENT, | |
345 | GParamFlags(G_PARAM_READABLE|G_PARAM_STATIC_STRINGS)), | |
346 | gx_parse_gradient); | |
306 | 347 | } |
307 | 348 | |
308 | 349 | static void gx_wave_view_init(GxWaveView *waveview) |
65 | 65 | |
66 | 66 | style "guitarix_waveview" |
67 | 67 | { |
68 | GxWaveView::box-gradient = { | |
69 | { 26214, 65536, 13107, 0, 52428 }, # 0.4, 1, 0.2, 0, 0.8 | |
70 | { 52428, 13107, 65536, 13107, 52428 }} # 0.8, 0.2, 1, 0.2, 0.8 | |
71 | ||
68 | 72 | fg[NORMAL] = { 0.48, 0.48, 0.12 } # RGBA: 0.8, 0.8, 0.2, 0.6 |
69 | 73 | font_name = "sans 6" |
70 | 74 | } |
83 | 83 | TB_6C16_250k = fconstant(int TUBE_TABLE_6C16_250k, "valve.h"); |
84 | 84 | |
85 | 85 | tubestageF(tb,vplus,divider,fck,Rk,Vk0) = tube : hpf with { |
86 | lpfk = lowpass1(fck); | |
86 | lpfk = lowpass(1,fck); | |
87 | 87 | Rp = 100.0e3; |
88 | 88 | VkC = Vk0 * (Rp/Rk); |
89 | 89 | tube = (+ : -(Vk0) : Ftube(tb) : +(VkC-vplus)) ~ (*(Rk/Rp) : lpfk) : /(divider); |
90 | hpf = highpass1(31.0); | |
90 | hpf = highpass(1,31.0); | |
91 | 91 | }; |
92 | 92 | |
93 | 93 | tubestage(tb,fck,Rk,Vk0) = tubestageF(tb,250.0,40.0,fck,Rk,Vk0); |
193 | 193 | }; |
194 | 194 | }; |
195 | 195 | |
196 | tonestack(tse) = 1/A0*tf3(B0,B1,B2,B3,A1/A0,A2/A0,A3/A0) with { | |
196 | tonestack(tse) = 1/A0*iir((B0,B1,B2,B3),(A1/A0,A2/A0,A3/A0)) with { | |
197 | 197 | C1 = tse.C1; |
198 | 198 | C2 = tse.C2; |
199 | 199 | C3 = tse.C3; |
125 | 125 | distortion2 = _:cubicnl(drive2,drivelevel) : *(high_gain); |
126 | 126 | distortion3 = _:cubicnl(drive3,drivelevel) : *(middle_gain_l); |
127 | 127 | distortion4 = _:cubicnl(drive4,drivelevel) : *(middle_gain_h); |
128 | distortion = lowpassN(2,15000.0): highpass1(31.0) : filterbankN((F,(F1,F2))) : distortion2,distortion4 ,distortion3,distortion1 :>lowpass1(6531.0); | |
128 | distortion = lowpassN(2,15000.0): highpass(1,31.0) : filterbankN((F,(F1,F2))) : distortion2,distortion4 ,distortion3,distortion1 :>lowpass(1,6531.0); | |
129 | 129 | |
130 | 130 | //-resonator |
131 | 131 | resonator = (+ <: (delay(4096, d-1) + delay(4096, d)) / 2) ~ *(1.0-a) |
13 | 13 | hgroup("stage2", stage2) |
14 | 14 | with { |
15 | 15 | stage1 = tubestage(TB_12AX7_68k,86.0,2700.0,1.581656) : *(preamp): |
16 | lowpass1(6531.0) : tubestage(TB_12AX7_250k,132.0,1500.0,1.204285) : *(preamp); | |
17 | stage2 = lowpass1(6531.0) : tubestage(TB_12AX7_250k,194.0,820.0,0.840703) : *(gain1); | |
16 | lowpass(1,6531.0) : tubestage(TB_12AX7_250k,132.0,1500.0,1.204285) : *(preamp); | |
17 | stage2 = lowpass(1,6531.0) : tubestage(TB_12AX7_250k,194.0,820.0,0.840703) : *(gain1); | |
18 | 18 | }; |
19 | 19 | |
20 | 20 |
13 | 13 | hgroup("stage2", stage2) |
14 | 14 | with { |
15 | 15 | stage1 = tubestage130_20(TB_6DJ8_68k,86.0,2700.0,1.863946) : *(preamp): |
16 | lowpass1(6531.0) : tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609) : *(preamp) ; | |
17 | stage2 = lowpass1(6531.0) <: ( tubestage130_20(TB_6DJ8_68k,194.0,820.0,0.799031), tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043)) :> *(gain1); | |
16 | lowpass(1,6531.0) : tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609) : *(preamp) ; | |
17 | stage2 = lowpass(1,6531.0) <: ( tubestage130_20(TB_6DJ8_68k,194.0,820.0,0.799031), tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043)) :> *(gain1); | |
18 | 18 | |
19 | 19 | } ; |
20 | 20 |
28 | 28 | with { |
29 | 29 | |
30 | 30 | stage1 = tubestage130_10(TB_12AU7_68k,86.0,2700.0,1.257240) : - ~ tubestage130_10(TB_12AU7_250k,132.0,1500.0,0.776162) : *(preamp): |
31 | lowpass1(6531.0) : tubestage130_10(TB_12AU7_250k,132.0,1500.0,0.776162): + ~ tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487) ; | |
32 | stage2 = lowpass1(6531.0) : tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487) : *(gain1); | |
31 | lowpass(1,6531.0) : tubestage130_10(TB_12AU7_250k,132.0,1500.0,0.776162): + ~ tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487) ; | |
32 | stage2 = lowpass(1,6531.0) : tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487) : *(gain1); | |
33 | 33 | |
34 | 34 | } ; |
35 | 35 |
28 | 28 | preamp = vslider(".amp2.stage1.Pregain[alias]",0,-20,20,0.1) : db2linear : smoothi(0.999); |
29 | 29 | */ |
30 | 30 | stage1 = *(preamp): tubestage130_20(TB_6DJ8_68k,86.0,2700.0,1.863946) : |
31 | lowpass1(6531.0) : tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609) :tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043); | |
32 | stage2 = lowpass1(6531.0) : *(gain1) <: (tubestage(TB_6V6_250k,6531.0,820.0,1.130462),tubestage(TB_6V6_68k,6531.0,820.0,1.130740)) :> _ | |
31 | lowpass(1,6531.0) : tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609) :tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043); | |
32 | stage2 = lowpass(1,6531.0) : *(gain1) <: (tubestage(TB_6V6_250k,6531.0,820.0,1.130462),tubestage(TB_6V6_68k,6531.0,820.0,1.130740)) :> _ | |
33 | 33 | with { |
34 | 34 | gain1 = ampctrl.gain1; |
35 | 35 | /* |
28 | 28 | |
29 | 29 | atten = 0.6; |
30 | 30 | stage1 = tubestage130_20(TB_6DJ8_68k,86.0,2700.0,1.863946) : - ~ (atten*tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609)) : *(preamp): |
31 | lowpass1(6531.0) : tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609): + ~ (atten*tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043)); | |
32 | stage2 = lowpass1(6531.0) : tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043) : *(gain1); | |
31 | lowpass(1,6531.0) : tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609): + ~ (atten*tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043)); | |
32 | stage2 = lowpass(1,6531.0) : tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043) : *(gain1); | |
33 | 33 | |
34 | 34 | }; |
35 | 35 |
16 | 16 | with { |
17 | 17 | |
18 | 18 | stage1 = tubestage(TB_12AT7_68k,86.0,2700.0,2.617753) : *(preamp): |
19 | lowpass1(6531.0) : tubestage(TB_12AT7_250k,132.0,1500.0,1.887332) : *(preamp); | |
20 | stage2 = lowpass1(6531.0) : tubestage(TB_12AT7_250k,194.0,820.0,1.256962) : *(gain1); | |
19 | lowpass(1,6531.0) : tubestage(TB_12AT7_250k,132.0,1500.0,1.887332) : *(preamp); | |
20 | stage2 = lowpass(1,6531.0) : tubestage(TB_12AT7_250k,194.0,820.0,1.256962) : *(gain1); | |
21 | 21 | |
22 | 22 | } ; |
23 | 23 |
29 | 29 | preamp = vslider(".amp2.stage1.Pregain[alias]",0,-20,20,0.1) : db2linear : smoothi(0.999); |
30 | 30 | */ |
31 | 31 | stage1 = *(preamp): tubestage(TB_12AT7_68k,86.0,2700.0,2.617753) : |
32 | lowpass1(6531.0) : tubestage(TB_12AT7_250k,132.0,1500.0,1.887332) :tubestage(TB_12AT7_250k,194.0,820.0,1.256962); | |
33 | stage2 = lowpass1(6531.0) : *(gain1) <: (tubestage(TB_6V6_250k,6531.0,820.0,1.130462),tubestage(TB_6V6_68k,6531.0,820.0,1.130740)) :> _ | |
32 | lowpass(1,6531.0) : tubestage(TB_12AT7_250k,132.0,1500.0,1.887332) :tubestage(TB_12AT7_250k,194.0,820.0,1.256962); | |
33 | stage2 = lowpass(1,6531.0) : *(gain1) <: (tubestage(TB_6V6_250k,6531.0,820.0,1.130462),tubestage(TB_6V6_68k,6531.0,820.0,1.130740)) :> _ | |
34 | 34 | with { |
35 | 35 | gain1 = ampctrl.gain1; |
36 | 36 | /* |
33 | 33 | atten = 0.6; |
34 | 34 | stage1 = speakerbp(310.0, 12000.0) : |
35 | 35 | *(preamp) : (tubestage(TB_12AT7_68k,86.0,2700.0,2.617753) : + ~ (atten*tubestage(TB_12AT7_250k,132.0,1500.0,1.887333))): |
36 | lowpass1(6531.0) : (tubestage(TB_12AT7_250k,132.0,1500.0,1.887333) : + ~ (atten*tubestage(TB_12AT7_250k,194.0,820.0,1.256962))) : tubestage(TB_12AT7_250k,194.0,820.0,1.256962); | |
37 | stage2 = lowpass1(6531.0) : *(gain1) <: ((min(0.7,tubestage(TB_6V6_250k,6531.0,410.0,0.659761))),(max(-0.75,tubestage(TB_6V6_68k,6531.0,410.0,0.664541)))) :> | |
36 | lowpass(1,6531.0) : (tubestage(TB_12AT7_250k,132.0,1500.0,1.887333) : + ~ (atten*tubestage(TB_12AT7_250k,194.0,820.0,1.256962))) : tubestage(TB_12AT7_250k,194.0,820.0,1.256962); | |
37 | stage2 = lowpass(1,6531.0) : *(gain1) <: ((min(0.7,tubestage(TB_6V6_250k,6531.0,410.0,0.659761))),(max(-0.75,tubestage(TB_6V6_68k,6531.0,410.0,0.664541)))) :> | |
38 | 38 | notch1 : notch2 : notch3 |
39 | 39 | with { |
40 | 40 | gain1 = ampctrl.gain1; |
29 | 29 | |
30 | 30 | atten = 0.6; |
31 | 31 | stage1 = tubestage(TB_12AT7_68k,86.0,2700.0,2.617753) : - ~ (atten*tubestage(TB_12AT7_250k,132.0,1500.0,1.887332)) : *(preamp): |
32 | lowpass1(6531.0) : tubestage(TB_12AT7_250k,132.0,1500.0,1.887332): + ~ (atten*tubestage(TB_12AT7_250k,194.0,820.0,1.256962)); | |
33 | stage2 = lowpass1(6531.0) : tubestage(TB_12AT7_250k,194.0,820.0,1.256962) : *(gain1); | |
32 | lowpass(1,6531.0) : tubestage(TB_12AT7_250k,132.0,1500.0,1.887332): + ~ (atten*tubestage(TB_12AT7_250k,194.0,820.0,1.256962)); | |
33 | stage2 = lowpass(1,6531.0) : tubestage(TB_12AT7_250k,194.0,820.0,1.256962) : *(gain1); | |
34 | 34 | |
35 | 35 | } ; |
36 | 36 |
14 | 14 | hgroup("stage2", stage2) |
15 | 15 | with { |
16 | 16 | stage1 = tubestage(TB_6C16_68k,86.0,2700.0,2.921806) : *(preamp): |
17 | lowpass1(6531.0) : tubestage(TB_6C16_250k,132.0,1500.0,2.097743) : *(preamp); | |
18 | stage2 = lowpass1(6531.0) : tubestage(TB_6C16_250k,194.0,820.0,1.378742) : *(gain1); | |
17 | lowpass(1,6531.0) : tubestage(TB_6C16_250k,132.0,1500.0,2.097743) : *(preamp); | |
18 | stage2 = lowpass(1,6531.0) : tubestage(TB_6C16_250k,194.0,820.0,1.378742) : *(gain1); | |
19 | 19 | }; |
20 | 20 | |
21 | 21 |
38 | 38 | with { |
39 | 39 | |
40 | 40 | stage1 = tubestage(TB_6V6_68k,86.0,2700.0,2.296150): |
41 | lowpass1(6531.0) : *(preamp) : tubestage(TB_6V6_250k,132.0,1500.0,1.675587); | |
42 | stage2 = lowpass1(6531.0) : *(gain1) : tubestage(TB_6V6_250k,194.0,820.0,1.130462); | |
41 | lowpass(1,6531.0) : *(preamp) : tubestage(TB_6V6_250k,132.0,1500.0,1.675587); | |
42 | stage2 = lowpass(1,6531.0) : *(gain1) : tubestage(TB_6V6_250k,194.0,820.0,1.130462); | |
43 | 43 | |
44 | 44 | }; |
45 | 45 | |
48 | 48 | with { |
49 | 49 | |
50 | 50 | stage1 = *(preamp): tubestage(TB_6V6_68k,86.0,2700.0,2.296150): *(0.77) : |
51 | lowpass1(6531.0) : *(preamp) : tubestage(TB_6V6_250k,132.0,1500.0,1.675587): *(0.77); | |
52 | stage2 = lowpass1(6531.0) : *(gain1) : bifilter : tubestage(TB_6V6_250k,194.0,820.0,1.130462) : *(0.77); | |
51 | lowpass(1,6531.0) : *(preamp) : tubestage(TB_6V6_250k,132.0,1500.0,1.675587): *(0.77); | |
52 | stage2 = lowpass(1,6531.0) : *(gain1) : bifilter : tubestage(TB_6V6_250k,194.0,820.0,1.130462) : *(0.77); | |
53 | 53 | |
54 | 54 | } ; |
55 | 55 |
14 | 14 | with { |
15 | 15 | |
16 | 16 | stage1 = tubestage(TB_12AU7_68k,86.0,2700.0,3.718962) : *(preamp):*(2.0): |
17 | lowpass1(6531.0) : tubestage(TB_12AU7_250k,132.0,1500.0,2.314844) : *(preamp) :*(2.0); | |
18 | stage2 = lowpass1(6531.0) : tubestage(TB_12AU7_250k,194.0,820.0,1.356567) : *(gain1):*(2.0); | |
17 | lowpass(1,6531.0) : tubestage(TB_12AU7_250k,132.0,1500.0,2.314844) : *(preamp) :*(2.0); | |
18 | stage2 = lowpass(1,6531.0) : tubestage(TB_12AU7_250k,194.0,820.0,1.356567) : *(gain1):*(2.0); | |
19 | 19 | |
20 | 20 | } ; |
21 | 21 |
46 | 46 | preamp = vslider(".amp2.stage1.Pregain[alias]",0,-20,20,0.1) : db2linear : smoothi(0.999); |
47 | 47 | */ |
48 | 48 | stage1 = *(preamp): tubestage130_10(TB_12AU7_68k,86.0,2700.0,1.257240) : |
49 | lowpass1(6531.0) : tubestage130_10(TB_12AU7_250k,132.0,1500.0,0.776162): tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487); | |
50 | stage2 = lowpass1(6531.0) : *(gain1) <: (tubestage(TB_6V6_250k,6531.0,820.0,1.130462),tubestage(TB_6V6_68k,6531.0,820.0,1.130740)) :>_ | |
49 | lowpass(1,6531.0) : tubestage130_10(TB_12AU7_250k,132.0,1500.0,0.776162): tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487); | |
50 | stage2 = lowpass(1,6531.0) : *(gain1) <: (tubestage(TB_6V6_250k,6531.0,820.0,1.130462),tubestage(TB_6V6_68k,6531.0,820.0,1.130740)) :>_ | |
51 | 51 | with { |
52 | 52 | gain1 = ampctrl.gain1; |
53 | 53 | /* |
46 | 46 | preamp = vslider(".amp2.stage1.Pregain[alias]",0,-20,20,0.1) : db2linear : smoothi(0.999); |
47 | 47 | */ |
48 | 48 | stage1 = *(preamp): tubestage(TB_12AX7_68k,86.0,2700.0,1.581656): |
49 | lowpass1(6531.0) : tubestage(TB_12AX7_250k,132.0,1500.0,1.204285):tubestage(TB_12AX7_250k,194.0,820.0,0.840703); | |
50 | stage2 = lowpass1(6531.0) : *(gain1) <: (tubestage(TB_6V6_250k,6531.0,820.0,1.130462),tubestage(TB_6V6_68k,6531.0,820.0,1.130740)) :>_ | |
49 | lowpass(1,6531.0) : tubestage(TB_12AX7_250k,132.0,1500.0,1.204285):tubestage(TB_12AX7_250k,194.0,820.0,0.840703); | |
50 | stage2 = lowpass(1,6531.0) : *(gain1) <: (tubestage(TB_6V6_250k,6531.0,820.0,1.130462),tubestage(TB_6V6_68k,6531.0,820.0,1.130740)) :>_ | |
51 | 51 | with { |
52 | 52 | gain1 = ampctrl.gain1; |
53 | 53 | /* |
32 | 32 | atten = 0.6; |
33 | 33 | stage1 = speakerbp(310.0, 12000.0) : |
34 | 34 | *(preamp): (tubestage130_20(TB_6DJ8_68k,86.0,2700.0,1.863946) : + ~ (atten*tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609))): |
35 | lowpass1(6531.0) : (tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609) : + ~ (atten*tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043))) : tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043) ; | |
36 | stage2 = lowpass1(6531.0) : *(gain1) <: ((min(0.7,tubestage(TB_6V6_250k,6531.0,410.0,0.659761))),(max(-0.75,tubestage(TB_6V6_68k,6531.0,410.0,0.664541)))) :> | |
35 | lowpass(1,6531.0) : (tubestage130_20(TB_6DJ8_250k,132.0,1500.0,1.271609) : + ~ (atten*tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043))) : tubestage130_20(TB_6DJ8_250k,194.0,820.0,0.797043) ; | |
36 | stage2 = lowpass(1,6531.0) : *(gain1) <: ((min(0.7,tubestage(TB_6V6_250k,6531.0,410.0,0.659761))),(max(-0.75,tubestage(TB_6V6_68k,6531.0,410.0,0.664541)))) :> | |
37 | 37 | notch1 : notch2 : notch3 |
38 | 38 | with { |
39 | 39 | gain1 = ampctrl.gain1; |
33 | 33 | atten = 0.6; |
34 | 34 | stage1 = speakerbp(310.0, 12000.0) |
35 | 35 | : *(preamp): (tubestage(TB_12AX7_68k,86.0,2700.0,1.581656) : + ~ (atten*tubestage(TB_12AX7_250k,132.0,1500.0,1.204285))) |
36 | : lowpass1(6531.0) : (tubestage(TB_12AX7_250k,132.0,1500.0,1.204285) : + ~ (atten*tubestage(TB_12AX7_250k,194.0,820.0,0.840703))) : tubestage(TB_12AX7_250k,194.0,820.0,0.840703); | |
37 | stage2 = lowpass1(6531.0) : *(gain1) <: ((min(0.7,tubestage(TB_6V6_250k,6531.0,410.0,0.659761))),(max(-0.75,tubestage(TB_6V6_68k,6531.0,410.0,0.664541)))) :> | |
36 | : lowpass(1,6531.0) : (tubestage(TB_12AX7_250k,132.0,1500.0,1.204285) : + ~ (atten*tubestage(TB_12AX7_250k,194.0,820.0,0.840703))) : tubestage(TB_12AX7_250k,194.0,820.0,0.840703); | |
37 | stage2 = lowpass(1,6531.0) : *(gain1) <: ((min(0.7,tubestage(TB_6V6_250k,6531.0,410.0,0.659761))),(max(-0.75,tubestage(TB_6V6_68k,6531.0,410.0,0.664541)))) :> | |
38 | 38 | notch1 : notch2 : notch3 |
39 | 39 | with { |
40 | 40 | gain1 = ampctrl.gain1; |
33 | 33 | atten = 0.6; |
34 | 34 | stage1 = speakerbp(310.0, 12000.0) : |
35 | 35 | *(preamp):*(2.0): (tubestage130_10(TB_12AU7_68k,86.0,2700.0,1.257240) : + ~ (atten*tubestage130_10(TB_12AU7_250k,132.0,1500.0,0.776162))): |
36 | lowpass1(6531.0) : (tubestage130_10(TB_12AU7_250k,132.0,1500.0,0.776162) : + ~ (atten*tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487))) : tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487); | |
37 | stage2 = lowpass1(6531.0) : *(gain1) <: ((min(0.7,tubestage(TB_6V6_250k,6531.0,410.0,0.659761))),(max(-0.75,tubestage(TB_6V6_68k,6531.0,410.0,0.664541)))) :> | |
36 | lowpass(1,6531.0) : (tubestage130_10(TB_12AU7_250k,132.0,1500.0,0.776162) : + ~ (atten*tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487))) : tubestage130_10(TB_12AU7_250k,194.0,820.0,0.445487); | |
37 | stage2 = lowpass(1,6531.0) : *(gain1) <: ((min(0.7,tubestage(TB_6V6_250k,6531.0,410.0,0.659761))),(max(-0.75,tubestage(TB_6V6_68k,6531.0,410.0,0.664541)))) :> | |
38 | 38 | notch1 : notch2 : notch3 |
39 | 39 | with { |
40 | 40 | gain1 = ampctrl.gain1; |
29 | 29 | |
30 | 30 | atten = 0.6; |
31 | 31 | stage1 = tubestage(TB_12AX7_68k,86.0,2700.0,1.581656) : - ~ (atten*tubestage(TB_12AX7_250k,132.0,1500.0,1.204285)) : *(preamp): |
32 | lowpass1(6531.0) : tubestage(TB_12AX7_250k,132.0,1500.0,1.204285): + ~ (atten*tubestage(TB_12AX7_250k,194.0,820.0,0.840702)); | |
33 | stage2 = lowpass1(6531.0) : tubestage(TB_12AX7_250k,194.0,820.0,0.840702) : *(gain1); | |
32 | lowpass(1,6531.0) : tubestage(TB_12AX7_250k,132.0,1500.0,1.204285): + ~ (atten*tubestage(TB_12AX7_250k,194.0,820.0,0.840702)); | |
33 | stage2 = lowpass(1,6531.0) : tubestage(TB_12AX7_250k,194.0,820.0,0.840702) : *(gain1); | |
34 | 34 | |
35 | 35 | } ; |
36 | 36 |
142 | 142 | distortion2 = _:cubicnl(0.4*drive,0.0) : *(1.584893192); // h |
143 | 143 | distortion3 = _:cubicnl(1.0*drive,0.0) : *(1.584893192); //ml |
144 | 144 | distortion4 = _:cubicnl(0.6*drive,0.0) : *(1.333521432); //mh |
145 | distortion = lowpassN(2,15000.0): highpass1(31.0) : filterbankN((F,(F1,F2))) : distortion2,distortion4 ,distortion3,distortion1 :>lowpass1(6531.0); | |
145 | distortion = lowpassN(2,15000.0): highpass(1,31.0) : filterbankN((F,(F1,F2))) : distortion2,distortion4 ,distortion3,distortion1 :>lowpass(1,6531.0); | |
146 | 146 | |
147 | 147 | wet_dry = (drive - 0.5) * 2; |
148 | 148 | }; |
0 | //declare name "Preamp Impulse Former"; | |
1 | declare id "pre"; | |
2 | ||
3 | import("music.lib"); | |
4 | import("guitarix.lib"); | |
5 | ||
6 | gain = vslider("Level[alias]", 1, 0.1, 2.1, 0.1) ; | |
7 | ||
8 | bass_gain = vslider("bass[name:bass][alias]", 0, -10, 10, 0.5); | |
9 | ||
10 | treble_gain = vslider("treble[name:treble][alias]", 0, -10, 10, 0.5); | |
11 | ||
12 | tone = component("tone.dsp").gxlow_shelf(300,bass_gain): | |
13 | component("tone.dsp").gxhigh_shelf(2400,treble_gain); | |
14 | ||
15 | process = tone : *(gain * pow(10, -0.1 * gain)); // FIXME |
0 | declare name "sloop"; | |
1 | declare category "Echo / Delay"; | |
0 | declare id "sloop"; | |
2 | 1 | declare version "1.0"; |
3 | 2 | declare author "brummer"; |
4 | 3 | declare license "BSD"; |
21 | 20 | smooth(c) = *(1-c) : +~*(c); |
22 | 21 | level = hslider("gain", 0, -96, 4, 0.1) : db2linear : smooth(0.999); |
23 | 22 | |
24 | process = vgroup( "sloop", _ <:_, (capture : *(level)):>_ ) ; | |
23 | process = vgroup( "SampleLooper", _ <:_, (capture : *(level)):>_ ) ; | |
25 | 24 |
303 | 303 | m = vslider(".amp.tonestack.Middle[alias]", 0.5, 0, 1, 0.01); |
304 | 304 | l = vslider(".amp.tonestack.Bass[alias]", 0.5, 0, 1, 0.01) : (_-1)*3.4 : exp; |
305 | 305 | |
306 | tonestack = 1/A0*tf3(B0,B1,B2,B3,A1/A0,A2/A0,A3/A0) with { | |
306 | ||
307 | ||
308 | tonestack = 1/A0*iir((B0,B1,B2,B3),(A1/A0,A2/A0,A3/A0)) with { | |
307 | 309 | C1 = tse.C1; |
308 | 310 | C2 = tse.C2; |
309 | 311 | C3 = tse.C3; |
35 | 35 | 'jconv_post_mono.dsp', |
36 | 36 | 'presence_level.dsp', |
37 | 37 | 'cabinet_impulse_former.dsp', |
38 | 'preamp_impulse_former.dsp', | |
38 | 39 | ] |
39 | 40 | |
40 | 41 | sources_static = [ |
0 | 0 | // generated from file '../src/faust/autowah.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace autowah { |
0 | 0 | // generated from file '../src/faust/balance.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace balance { |
0 | 0 | // generated from file '../src/faust/bassbooster.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace bassbooster { |
0 | 0 | // generated from file '../src/faust/biquad.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace biquad { |
0 | 0 | // generated from file '../src/faust/cabinet_impulse_former.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace cabinet_impulse_former { |
0 | 0 | // generated from file '../src/faust/cabinet_impulse_former.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #define FAUSTFLOAT float |
4 | 4 |
0 | 0 | // generated from file '../src/faust/chorus.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace chorus { |
0 | 0 | // generated from file '../src/faust/chorus_mono.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace chorus_mono { |
0 | 0 | // generated from file '../src/faust/compressor.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace compressor { |
0 | 0 | // generated from file '../src/faust/crybaby.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace crybaby { |
0 | 0 | // generated from file '../src/faust/delay.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace delay { |
0 | 0 | // generated from file '../src/faust/echo.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace echo { |
0 | 0 | // generated from file '../src/faust/expander.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace expander { |
0 | 0 | // generated from file '../src/faust/flanger.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace flanger { |
0 | 0 | // generated from file '../src/faust/flanger_mono.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace flanger_mono { |
0 | 0 | // generated from file '../src/faust/freeverb.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace freeverb { |
0 | 0 | // generated from file '../src/faust/gx_ampmodul.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gx_ampout.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace gx_ampout { |
0 | 0 | // generated from file '../src/faust/gx_ampout_ladspa.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace gx_ampout_ladspa { |
0 | 0 | // generated from file '../src/faust/gx_distortion.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace gx_distortion { |
0 | 0 | // generated from file '../src/faust/gx_feedback.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace gx_feedback { |
0 | 0 | // generated from file '../src/faust/gx_outputlevel.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace gx_outputlevel { |
0 | 0 | // generated from file '../src/faust/gx_outputlevel_ladspa.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace gx_outputlevel_ladspa { |
0 | 0 | // generated from file '../src/faust/gxamp.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp10.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp11.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp12.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp13.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp14.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp15.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp16.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp17.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp18.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp2.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp3.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp4.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp5.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp6.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp7.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp8.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxamp9.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "valve.h" |
4 | 4 |
0 | 0 | // generated from file '../src/faust/gxfeed.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace gxfeed { |
0 | 0 | // generated from file '../src/faust/gxnoamp.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace gxnoamp { |
0 | 0 | // generated from file '../src/faust/impulseresponse.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace impulseresponse { |
0 | 0 | // generated from file '../src/faust/jconv_post.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace jconv_post { |
0 | 0 | // generated from file '../src/faust/jconv_post.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #define FAUSTFLOAT float |
4 | 4 |
0 | 0 | // generated from file '../src/faust/jconv_post_mono.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace jconv_post_mono { |
0 | 0 | // generated from file '../src/faust/jconv_post_mono.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #define FAUSTFLOAT float |
4 | 4 |
0 | 0 | // generated from file '../src/faust/low_high_pass.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace low_high_pass { |
0 | 0 | // generated from file '../src/faust/moog.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace moog { |
0 | 0 | // generated from file '../src/faust/noise_shaper.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace noise_shaper { |
0 | 0 | // generated from file '../src/faust/overdrive.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace overdrive { |
0 | 0 | // generated from file '../src/faust/phaser.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace phaser { |
0 | 0 | // generated from file '../src/faust/phaser_mono.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace phaser_mono { |
0 | // generated from file '../src/faust/preamp_impulse_former.dsp' by dsp2cc: | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | ||
3 | ||
4 | namespace preamp_impulse_former { | |
5 | ||
6 | ||
7 | Dsp::Dsp() { | |
8 | } | |
9 | ||
10 | Dsp::~Dsp() { | |
11 | } | |
12 | ||
13 | inline void Dsp::clear_state_f() | |
14 | { | |
15 | for (int i=0; i<3; i++) fVec0[i] = 0; | |
16 | for (int i=0; i<3; i++) fRec1[i] = 0; | |
17 | for (int i=0; i<3; i++) fRec0[i] = 0; | |
18 | } | |
19 | ||
20 | inline void Dsp::init(unsigned int samplingFreq) | |
21 | { | |
22 | fSamplingFreq = samplingFreq; | |
23 | iConst0 = min(192000, max(1, fSamplingFreq)); | |
24 | fConst1 = (15079.644737231007 / iConst0); | |
25 | fConst2 = cos(fConst1); | |
26 | fConst3 = (1.4142135623730951 * sin(fConst1)); | |
27 | fConst4 = (1884.9555921538758 / iConst0); | |
28 | fConst5 = cos(fConst4); | |
29 | fConst6 = (1.4142135623730951 * sin(fConst4)); | |
30 | clear_state_f(); | |
31 | } | |
32 | ||
33 | inline void Dsp::compute(int count, float *input0, float *output0) | |
34 | { | |
35 | #define fslider0 (*fslider0_) | |
36 | #define fslider1 (*fslider1_) | |
37 | #define fslider2 (*fslider2_) | |
38 | double fSlow0 = pow(10,(0.025 * fslider0)); | |
39 | double fSlow1 = (1 + fSlow0); | |
40 | double fSlow2 = (fConst2 * fSlow1); | |
41 | double fSlow3 = (2 * (0 - ((1 + fSlow2) - fSlow0))); | |
42 | double fSlow4 = (fConst2 * (fSlow0 - 1)); | |
43 | double fSlow5 = (fConst3 * sqrt(fSlow0)); | |
44 | double fSlow6 = (fSlow1 - (fSlow5 + fSlow4)); | |
45 | double fSlow7 = pow(10,(0.025 * fslider1)); | |
46 | double fSlow8 = (1 + fSlow7); | |
47 | double fSlow9 = (fConst5 * fSlow8); | |
48 | double fSlow10 = (0 - (2 * ((fSlow7 + fSlow9) - 1))); | |
49 | double fSlow11 = (fConst6 * sqrt(fSlow7)); | |
50 | double fSlow12 = (fConst5 * (fSlow7 - 1)); | |
51 | double fSlow13 = ((1 + (fSlow7 + fSlow12)) - fSlow11); | |
52 | double fSlow14 = (fSlow8 - (fSlow11 + fSlow12)); | |
53 | double fSlow15 = (2 * (0 - ((1 + fSlow9) - fSlow7))); | |
54 | double fSlow16 = (fSlow7 + fSlow11); | |
55 | double fSlow17 = ((1 + fSlow16) - fSlow12); | |
56 | double fSlow18 = (1.0 / (1 + (fSlow12 + fSlow16))); | |
57 | double fSlow19 = (fSlow0 * ((1 + (fSlow0 + fSlow4)) - fSlow5)); | |
58 | double fSlow20 = (fSlow0 + fSlow5); | |
59 | double fSlow21 = (fSlow0 * (1 + (fSlow4 + fSlow20))); | |
60 | double fSlow22 = (((fSlow0 + fSlow2) - 1) * (0 - (2 * fSlow0))); | |
61 | double fSlow23 = (1.0 / ((1 + fSlow20) - fSlow4)); | |
62 | double fSlow24 = fslider2; | |
63 | double fSlow25 = (fSlow24 * pow(10,(0 - (0.1 * fSlow24)))); | |
64 | for (int i=0; i<count; i++) { | |
65 | double fTemp0 = (double)input0[i]; | |
66 | fVec0[0] = fTemp0; | |
67 | fRec1[0] = (fSlow18 * ((fSlow7 * (((fSlow17 * fVec0[0]) + (fSlow15 * fVec0[1])) + (fSlow14 * fVec0[2]))) - ((fSlow13 * fRec1[2]) + (fSlow10 * fRec1[1])))); | |
68 | fRec0[0] = (fSlow23 * ((((fSlow22 * fRec1[1]) + (fSlow21 * fRec1[0])) + (fSlow19 * fRec1[2])) + (0 - ((fSlow6 * fRec0[2]) + (fSlow3 * fRec0[1]))))); | |
69 | output0[i] = (FAUSTFLOAT)(fSlow25 * fRec0[0]); | |
70 | // post processing | |
71 | fRec0[2] = fRec0[1]; fRec0[1] = fRec0[0]; | |
72 | fRec1[2] = fRec1[1]; fRec1[1] = fRec1[0]; | |
73 | fVec0[2] = fVec0[1]; fVec0[1] = fVec0[0]; | |
74 | } | |
75 | #undef fslider0 | |
76 | #undef fslider1 | |
77 | #undef fslider2 | |
78 | } | |
79 | ||
80 | int Dsp::register_par(const ParamReg& reg) | |
81 | { | |
82 | fslider2_ = reg.registerVar("pre.Level","","SA","",&fslider2, 1.0, 0.1, 2.1, 0.1); | |
83 | fslider1_ = reg.registerVar("pre.bass",N_("bass"),"SA","",&fslider1, 0.0, -1e+01, 1e+01, 0.5); | |
84 | fslider0_ = reg.registerVar("pre.treble",N_("treble"),"SA","",&fslider0, 0.0, -1e+01, 1e+01, 0.5); | |
85 | return 0; | |
86 | } | |
87 | ||
88 | } // end namespace preamp_impulse_former |
0 | // generated from file '../src/faust/preamp_impulse_former.dsp' by dsp2cc: | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | ||
3 | #define FAUSTFLOAT float | |
4 | ||
5 | namespace preamp_impulse_former { | |
6 | ||
7 | class Dsp { | |
8 | private: | |
9 | int fSamplingFreq; | |
10 | FAUSTFLOAT fslider0; | |
11 | FAUSTFLOAT *fslider0_; | |
12 | int iConst0; | |
13 | double fConst1; | |
14 | double fConst2; | |
15 | double fConst3; | |
16 | FAUSTFLOAT fslider1; | |
17 | FAUSTFLOAT *fslider1_; | |
18 | double fConst4; | |
19 | double fConst5; | |
20 | double fConst6; | |
21 | double fVec0[3]; | |
22 | double fRec1[3]; | |
23 | double fRec0[3]; | |
24 | FAUSTFLOAT fslider2; | |
25 | FAUSTFLOAT *fslider2_; | |
26 | ||
27 | public: | |
28 | void clear_state_f(); | |
29 | void init(unsigned int samplingFreq); | |
30 | void compute(int count, float *input0, float *output0); | |
31 | int register_par(const ParamReg& reg); | |
32 | Dsp(); | |
33 | ~Dsp(); | |
34 | }; | |
35 | ||
36 | } // end namespace preamp_impulse_former |
0 | 0 | // generated from file '../src/faust/presence_level.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace presence_level { |
0 | 0 | // generated from file '../src/faust/presence_level.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #define FAUSTFLOAT float |
4 | 4 |
0 | 0 | // generated from file '../src/faust/selecteq.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace selecteq { |
0 | 0 | // generated from file '../src/faust/softclip.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace softclip { |
0 | 0 | // generated from file '../src/faust/stereodelay.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace stereodelay { |
0 | 0 | // generated from file '../src/faust/stereoecho.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace stereoecho { |
0 | 0 | // generated from file '../src/faust/stereoverb.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace stereoverb { |
0 | 0 | // generated from file '../src/faust/tonecontroll.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonecontroll { |
0 | 0 | // generated from file '../src/faust/tonestack_ac15.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_ac15 { |
108 | 108 | double fSlow11 = ((fSlow7 + (fConst3 * (fSlow3 - fSlow9))) - 3); |
109 | 109 | double fSlow12 = (1.0 / ((fConst3 * (0 - (fSlow3 + fSlow6))) - (1 + fSlow7))); |
110 | 110 | double fSlow13 = fslider2; |
111 | double fSlow14 = ((fSlow0 * (3.421299200000001e-08 + fSlow4)) + (fSlow13 * ((1.0691560000000003e-08 - (1.0691560000000003e-08 * fSlow0)) + (1.0691560000000003e-08 * fSlow2)))); | |
111 | double fSlow14 = ((fSlow0 * (3.421299200000001e-08 + fSlow4)) + (fSlow13 * ((1.0691560000000003e-08 * fSlow2) + (1.0691560000000003e-08 - (1.0691560000000003e-08 * fSlow0))))); | |
112 | 112 | double fSlow15 = (fConst5 * fSlow14); |
113 | 113 | double fSlow16 = (3.7947800000000004e-06 + (((1.5199800000000001e-06 * fSlow13) + (fSlow0 * (0.00022961831200000004 - fSlow1))) + (fSlow2 * (3.7947800000000004e-06 + fSlow1)))); |
114 | double fSlow17 = (1.0 + (fSlow2 + ((0.0046780133373146215 * fSlow13) + (0.4678013337314621 * fSlow0)))); | |
114 | double fSlow17 = (1.0 + (fSlow2 + ((0.4678013337314621 * fSlow0) + (0.0046780133373146215 * fSlow13)))); | |
115 | 115 | double fSlow18 = (fConst6 * fSlow17); |
116 | 116 | double fSlow19 = (fSlow18 + (fConst3 * (fSlow16 - fSlow15))); |
117 | 117 | double fSlow20 = (fConst1 * fSlow14); |
0 | 0 | // generated from file '../src/faust/tonestack_ac30.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_ac30 { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (2.662e-12 + fSlow4)) + (fSlow16 * ((2.4200000000000004e-11 - (2.4200000000000004e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (2.662e-12 + fSlow4)) + (fSlow16 * (fSlow5 + (2.4200000000000004e-11 - (2.4200000000000004e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (1.32e-08 + (((2.2000000000000004e-07 * fSlow16) + (fSlow0 * (5.951000000000001e-08 - fSlow1))) + (fSlow2 * (1.32e-06 + (4.8510000000000015e-06 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00022050000000000002 + (fSlow9 + (fSlow8 + (5e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_ampeg.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_ampeg { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (4.0093350000000015e-11 + fSlow4)) + (fSlow16 * ((4.5496000000000015e-11 - (4.5496000000000015e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (4.0093350000000015e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (4.5496000000000015e-11 - (4.5496000000000015e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (8.1169e-08 + (((1.6544000000000003e-07 * fSlow16) + (fSlow0 * (3.735875000000001e-07 - fSlow1))) + (fSlow2 * (3.24676e-06 + (1.2358500000000002e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0005617500000000001 + (fSlow9 + (fSlow8 + (0.00011750000000000001 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_ampeg_rev.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_ampeg_rev { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (1.645e-11 + fSlow4)) + (fSlow16 * ((1.175e-10 - (1.175e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (1.645e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (1.175e-10 - (1.175e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (3.9700000000000005e-08 + (((3.675000000000001e-07 * fSlow16) + (fSlow0 * (4.8222e-07 - fSlow1))) + (fSlow2 * (9.925e-07 + (1.1761750000000001e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.001001 + (fSlow9 + (fSlow8 + (2.5e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_bassman.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_bassman { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (1.9125000000000002e-11 + fSlow4)) + (fSlow16 * ((3.500000000000001e-11 - (3.500000000000001e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (1.9125000000000002e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (3.500000000000001e-11 - (3.500000000000001e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (4.525e-08 + (((1.4e-07 * fSlow16) + (fSlow0 * (2.8437500000000003e-07 - fSlow1))) + (fSlow2 * (1.8100000000000002e-06 + (1.0125e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00050625 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_bogner.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_bogner { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (5.08400739e-11 + fSlow4)) + (fSlow16 * ((6.5258325e-11 - (6.5258325e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (5.08400739e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (6.5258325e-11 - (6.5258325e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (5.018112e-08 + (((1.7391e-07 * fSlow16) + (fSlow0 * (8.643102600000002e-07 - fSlow1))) + (fSlow2 * (1.5206400000000001e-06 + (2.3606220000000006e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0005022600000000001 + (fSlow9 + (fSlow8 + (5.4999999999999995e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_crunch.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_crunch { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (1.5551360000000004e-11 + fSlow4)) + (fSlow16 * ((1.0691560000000001e-10 - (1.0691560000000001e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (1.5551360000000004e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (1.0691560000000001e-10 - (1.0691560000000001e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (4.3428e-08 + (((4.5496e-07 * fSlow16) + (fSlow0 * (2.4468200000000005e-07 - fSlow1))) + (fSlow2 * (9.55416e-07 + (4.882548000000001e-06 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00047220000000000004 + (fSlow9 + (fSlow8 + (4.84e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_default.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_default { |
0 | 0 | // generated from file '../src/faust/tonestack_fender_blues.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_fender_blues { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (2.6468750000000002e-11 + fSlow4)) + (fSlow16 * ((7.562500000000001e-11 - (7.562500000000001e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (2.6468750000000002e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (7.562500000000001e-11 - (7.562500000000001e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (6.1875e-08 + (((2.75e-07 * fSlow16) + (fSlow0 * (3.403125000000001e-07 - fSlow1))) + (fSlow2 * (6.1875e-07 + (3.0593750000000007e-06 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00055625 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_fender_default.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_fender_default { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (4.1125e-11 + fSlow4)) + (fSlow16 * ((2.9375e-10 - (2.9375e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (4.1125e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (2.9375e-10 - (2.9375e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (9.925e-08 + (((9.187500000000001e-07 * fSlow16) + (fSlow0 * (5.0055e-07 - fSlow1))) + (fSlow2 * (2.48125e-06 + (1.1779375000000001e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0010025 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_fender_deville.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_fender_deville { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (1.30625e-10 + fSlow4)) + (fSlow16 * ((4.46875e-10 - (4.46875e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (1.30625e-10 + fSlow4)) + (fSlow16 * (fSlow5 + (4.46875e-10 - (4.46875e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (2.55375e-07 + (((9.912500000000003e-07 * fSlow16) + (fSlow0 * (1.4128125e-06 - fSlow1))) + (fSlow2 * (2.5537500000000007e-06 + (1.3784375000000003e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0025062500000000002 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_gibsen.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_gibsen { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (3.3665160000000007e-10 + fSlow4)) + (fSlow16 * ((7.614000000000002e-10 - (7.614000000000002e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (3.3665160000000007e-10 + fSlow4)) + (fSlow16 * (fSlow5 + (7.614000000000002e-10 - (7.614000000000002e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (1.9176000000000002e-07 + (((5.400000000000001e-07 * fSlow16) + (fSlow0 * (1.0654618000000002e-05 - fSlow1))) + (fSlow2 * (2.0400000000000004e-06 + (0.00011284700000000001 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.005642350000000001 + (fSlow9 + (fSlow8 + (2.5e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_groove.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_groove { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (3.1708892160000014e-11 + fSlow4)) + (fSlow16 * ((7.486821760000003e-11 - (7.486821760000003e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (3.1708892160000014e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (7.486821760000003e-11 - (7.486821760000003e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (8.098288000000002e-08 + (((3.0937280000000007e-07 * fSlow16) + (fSlow0 * (2.893061600000001e-07 - fSlow1))) + (fSlow2 * (3.6810400000000007e-06 + (1.0875480000000001e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00049434 + (fSlow9 + (fSlow8 + (0.0001034 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_ibanez.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_ibanez { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (3.78e-11 + fSlow4)) + (fSlow16 * ((2.7e-10 - (2.7e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (3.78e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (2.7e-10 - (2.7e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (1.0530000000000001e-07 + (((9.45e-07 * fSlow16) + (fSlow0 * (4.2808000000000006e-07 - fSlow1))) + (fSlow2 * (2.6324999999999998e-06 + (1.0027e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0010027 + (fSlow9 + (fSlow8 + (6.75e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_jcm2000.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_jcm2000 { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (4.628250000000001e-11 + fSlow4)) + (fSlow16 * ((8.470000000000002e-11 - (8.470000000000002e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (4.628250000000001e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (8.470000000000002e-11 - (8.470000000000002e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (9.955000000000001e-08 + (((3.08e-07 * fSlow16) + (fSlow0 * (3.781250000000001e-07 - fSlow1))) + (fSlow2 * (3.982e-06 + (1.2375000000000003e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0005625000000000001 + (fSlow9 + (fSlow8 + (0.000125 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_jcm800.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_jcm800 { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (2.7855380960000008e-11 + fSlow4)) + (fSlow16 * ((3.6333105600000014e-11 - (3.6333105600000014e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (2.7855380960000008e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (3.6333105600000014e-11 - (3.6333105600000014e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (6.505928000000001e-08 + (((1.5013680000000003e-07 * fSlow16) + (fSlow0 * (2.893061600000001e-07 - fSlow1))) + (fSlow2 * (2.95724e-06 + (1.0875480000000001e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00049434 + (fSlow9 + (fSlow8 + (0.0001034 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_jtm45.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_jtm45 { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (2.3114025000000008e-11 + fSlow4)) + (fSlow16 * ((2.695275000000001e-11 - (2.695275000000001e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (2.3114025000000008e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (2.695275000000001e-11 - (2.695275000000001e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (4.6926e-08 + (((9.801000000000002e-08 * fSlow16) + (fSlow0 * (3.433375000000001e-07 - fSlow1))) + (fSlow2 * (1.8770400000000002e-06 + (1.2248500000000003e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0005567500000000001 + (fSlow9 + (fSlow8 + (6.75e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_m2199.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_m2199 { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (1.0561781250000003e-10 + fSlow4)) + (fSlow16 * ((1.9328750000000007e-10 - (1.9328750000000007e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (1.0561781250000003e-10 + fSlow4)) + (fSlow16 * (fSlow5 + (1.9328750000000007e-10 - (1.9328750000000007e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (1.0633750000000002e-07 + (((3.2900000000000005e-07 * fSlow16) + (fSlow0 * (1.4614062500000001e-06 - fSlow1))) + (fSlow2 * (1.0633750000000002e-06 + (1.38796875e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00118125 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_mesa.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_mesa { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (2.5703125000000003e-10 + fSlow4)) + (fSlow16 * ((7.343750000000001e-10 - (7.343750000000001e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (2.5703125000000003e-10 + fSlow4)) + (fSlow16 * (fSlow5 + (7.343750000000001e-10 - (7.343750000000001e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (2.48125e-07 + (((9.187500000000001e-07 * fSlow16) + (fSlow0 * (3.0182812500000004e-06 - fSlow1))) + (fSlow2 * (2.48125e-06 + (2.9448437500000007e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0025062500000000002 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_mlead.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_mlead { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (4.2803750000000003e-11 + fSlow4)) + (fSlow16 * ((4.991250000000001e-11 - (4.991250000000001e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (4.2803750000000003e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (4.991250000000001e-11 - (4.991250000000001e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (8.690000000000002e-08 + (((1.815e-07 * fSlow16) + (fSlow0 * (3.781250000000001e-07 - fSlow1))) + (fSlow2 * (3.4760000000000007e-06 + (1.2375000000000003e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0005625000000000001 + (fSlow9 + (fSlow8 + (0.000125 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_peavey.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_peavey { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (1.6622496000000003e-11 + fSlow4)) + (fSlow16 * ((4.4431200000000016e-11 - (4.4431200000000016e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (1.6622496000000003e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (4.4431200000000016e-11 - (4.4431200000000016e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (4.585680000000001e-08 + (((2.0196000000000004e-07 * fSlow16) + (fSlow0 * (2.2567600000000002e-07 - fSlow1))) + (fSlow2 * (5.732100000000001e-07 + (2.4497000000000004e-06 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00044540000000000004 + (fSlow9 + (fSlow8 + (6.75e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_princeton.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_princeton { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (9.4752e-12 + fSlow4)) + (fSlow16 * ((1.41e-10 - (1.41e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (9.4752e-12 + fSlow4)) + (fSlow16 * (fSlow5 + (1.41e-10 - (1.41e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (4.764000000000001e-08 + (((9.187500000000001e-07 * fSlow16) + (fSlow0 * (1.2265872000000003e-07 - fSlow1))) + (fSlow2 * (2.48125e-06 + (5.6541000000000015e-06 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00048120000000000004 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_roland.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_roland { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (1.8898704000000002e-11 + fSlow4)) + (fSlow16 * ((6.656760000000001e-11 - (6.656760000000001e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (1.8898704000000002e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (6.656760000000001e-11 - (6.656760000000001e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (3.1116000000000005e-08 + (((2.829e-07 * fSlow16) + (fSlow0 * (3.2176800000000005e-07 - fSlow1))) + (fSlow2 * (7.779000000000002e-07 + (6.8142000000000025e-06 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00033240000000000006 + (fSlow9 + (fSlow8 + (6e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_soldano.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_soldano { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (3.48975e-11 + fSlow4)) + (fSlow16 * ((5.522500000000001e-11 - (5.522500000000001e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (3.48975e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (5.522500000000001e-11 - (5.522500000000001e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (8.084000000000001e-08 + (((2.2090000000000003e-07 * fSlow16) + (fSlow0 * (3.146250000000001e-07 - fSlow1))) + (fSlow2 * (3.2336000000000007e-06 + (1.0235000000000001e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00051175 + (fSlow9 + (fSlow8 + (0.00011750000000000001 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_sovtek.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_sovtek { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (1.2443156000000002e-11 + fSlow4)) + (fSlow16 * ((5.345780000000001e-11 - (5.345780000000001e-11 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (1.2443156000000002e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (5.345780000000001e-11 - (5.345780000000001e-11 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (6.141960000000001e-08 + (((4.859800000000001e-07 * fSlow16) + (fSlow0 * (1.0113400000000001e-07 - fSlow1))) + (fSlow2 * (6.141960000000001e-06 + (4.943400000000001e-06 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.00022470000000000001 + (fSlow9 + (fSlow8 + (0.00023500000000000002 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tonestack_twin.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tonestack_twin { |
103 | 103 | double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3); |
104 | 104 | double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7)))))); |
105 | 105 | double fSlow16 = fslider2; |
106 | double fSlow17 = ((fSlow0 * (1.974e-11 + fSlow4)) + (fSlow16 * ((1.41e-10 - (1.41e-10 * fSlow0)) + fSlow5))); | |
106 | double fSlow17 = ((fSlow0 * (1.974e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (1.41e-10 - (1.41e-10 * fSlow0))))); | |
107 | 107 | double fSlow18 = (fConst2 * fSlow17); |
108 | 108 | double fSlow19 = (4.764000000000001e-08 + (((4.410000000000001e-07 * fSlow16) + (fSlow0 * (4.846640000000001e-07 - fSlow1))) + (fSlow2 * (1.1910000000000001e-06 + (1.1764100000000001e-05 * fSlow0))))); |
109 | 109 | double fSlow20 = (0.0010012 + (fSlow9 + (fSlow8 + (3e-05 * fSlow16)))); |
0 | 0 | // generated from file '../src/faust/tremolo.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | |
4 | 4 | namespace tremolo { |
0 | 0 | // generated from file '../src/faust/vibe_lfo_sine.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | namespace vibe_lfo_sine { |
4 | 4 | static int iVec0[2]; |
0 | 0 | // generated from file '../src/faust/vibe_mono_lfo_sine.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | namespace vibe_mono_lfo_sine { |
4 | 4 | static int iVec0[2]; |
9 | 9 | (gtk_accel_path "<Actions>/Main/Expand" "<Control>e") |
10 | 10 | (gtk_accel_path "<Actions>/Main/Help" "F1") |
11 | 11 | (gtk_accel_path "<Actions>/Main/JackLatency" "") |
12 | (gtk_accel_path "<Actions>/Main/OscBuffer" "") | |
12 | 13 | (gtk_accel_path "<Actions>/Main/JackPorts" "<Control>p") |
13 | 14 | (gtk_accel_path "<Actions>/Main/JackServerConnection" "<Control>c") |
14 | 15 | (gtk_accel_path "<Actions>/Main/JackStartup" "<Control>j") |
5 | 5 | <object class="GtkWindow" id="window1"> |
6 | 6 | <property name="can_focus">False</property> |
7 | 7 | <child> |
8 | <object class="GtkHBox" id="rackbox"> | |
8 | <object class="GtkVBox" id="vbox1"> | |
9 | 9 | <property name="visible">True</property> |
10 | 10 | <property name="can_focus">False</property> |
11 | 11 | <child> |
12 | <object class="GtkHBox" id="hbox1"> | |
12 | <object class="GtkHBox" id="minibox"> | |
13 | 13 | <property name="visible">True</property> |
14 | 14 | <property name="can_focus">False</property> |
15 | <child> | |
16 | <object class="GxSelector" id="gxselector1"> | |
15 | <property name="spacing">5</property> | |
16 | <child> | |
17 | <object class="GxHSlider" id="gxhslider1"> | |
17 | 18 | <property name="visible">True</property> |
18 | 19 | <property name="can_focus">True</property> |
19 | 20 | <property name="receives_default">True</property> |
20 | <property name="var_id">crybaby.autowah</property> | |
21 | </object> | |
22 | <packing> | |
23 | <property name="expand">False</property> | |
24 | <property name="fill">False</property> | |
21 | <property name="var_id">crybaby.wah</property> | |
22 | <property name="label_ref">label4:rack_label</property> | |
23 | </object> | |
24 | <packing> | |
25 | <property name="expand">True</property> | |
26 | <property name="fill">True</property> | |
25 | 27 | <property name="position">0</property> |
26 | 28 | </packing> |
27 | 29 | </child> |
28 | 30 | <child> |
29 | <object class="GtkVBox" id="vbox1"> | |
30 | <property name="visible">True</property> | |
31 | <property name="can_focus">False</property> | |
32 | <child> | |
33 | <object class="GtkLabel" id="label1:rack_label"> | |
34 | <property name="visible">True</property> | |
35 | <property name="can_focus">False</property> | |
36 | <property name="label" translatable="yes">label</property> | |
37 | </object> | |
38 | <packing> | |
39 | <property name="expand">False</property> | |
40 | <property name="fill">True</property> | |
41 | <property name="position">0</property> | |
42 | </packing> | |
43 | </child> | |
44 | <child> | |
45 | <object class="GxSmallKnobR" id="gxbigknob1"> | |
46 | <property name="visible">True</property> | |
47 | <property name="can_focus">True</property> | |
48 | <property name="receives_default">True</property> | |
49 | <property name="var_id">crybaby.wah</property> | |
50 | <property name="label_ref">label1:rack_label</property> | |
51 | </object> | |
52 | <packing> | |
53 | <property name="expand">False</property> | |
54 | <property name="fill">False</property> | |
55 | <property name="position">1</property> | |
56 | </packing> | |
57 | </child> | |
58 | </object> | |
59 | <packing> | |
60 | <property name="expand">False</property> | |
61 | <property name="fill">False</property> | |
31 | <object class="GtkLabel" id="label4:rack_label"> | |
32 | <property name="visible">True</property> | |
33 | <property name="can_focus">False</property> | |
34 | <property name="label" translatable="yes">label</property> | |
35 | </object> | |
36 | <packing> | |
37 | <property name="expand">True</property> | |
38 | <property name="fill">True</property> | |
62 | 39 | <property name="position">1</property> |
63 | 40 | </packing> |
64 | 41 | </child> |
65 | 42 | </object> |
66 | 43 | <packing> |
67 | 44 | <property name="expand">True</property> |
68 | <property name="fill">False</property> | |
45 | <property name="fill">True</property> | |
69 | 46 | <property name="position">0</property> |
70 | 47 | </packing> |
71 | 48 | </child> |
72 | 49 | <child> |
73 | <object class="GtkVBox" id="vbox2"> | |
50 | <object class="GtkHBox" id="rackbox"> | |
74 | 51 | <property name="visible">True</property> |
75 | 52 | <property name="can_focus">False</property> |
76 | 53 | <child> |
77 | <object class="GtkLabel" id="label2:rack_label"> | |
78 | <property name="visible">True</property> | |
79 | <property name="can_focus">False</property> | |
80 | <property name="label" translatable="yes">label</property> | |
81 | </object> | |
82 | <packing> | |
83 | <property name="expand">False</property> | |
84 | <property name="fill">True</property> | |
54 | <object class="GtkHBox" id="hbox1"> | |
55 | <property name="visible">True</property> | |
56 | <property name="can_focus">False</property> | |
57 | <child> | |
58 | <object class="GxSelector" id="gxselector1"> | |
59 | <property name="visible">True</property> | |
60 | <property name="can_focus">True</property> | |
61 | <property name="receives_default">True</property> | |
62 | <property name="var_id">crybaby.autowah</property> | |
63 | </object> | |
64 | <packing> | |
65 | <property name="expand">False</property> | |
66 | <property name="fill">False</property> | |
67 | <property name="position">0</property> | |
68 | </packing> | |
69 | </child> | |
70 | <child> | |
71 | <object class="GtkVBox" id="vbox2"> | |
72 | <property name="visible">True</property> | |
73 | <property name="can_focus">False</property> | |
74 | <child> | |
75 | <object class="GtkLabel" id="label1:rack_label"> | |
76 | <property name="visible">True</property> | |
77 | <property name="can_focus">False</property> | |
78 | <property name="label" translatable="yes">label</property> | |
79 | </object> | |
80 | <packing> | |
81 | <property name="expand">False</property> | |
82 | <property name="fill">True</property> | |
83 | <property name="position">0</property> | |
84 | </packing> | |
85 | </child> | |
86 | <child> | |
87 | <object class="GxSmallKnobR" id="gxbigknob1"> | |
88 | <property name="visible">True</property> | |
89 | <property name="can_focus">True</property> | |
90 | <property name="receives_default">True</property> | |
91 | <property name="var_id">crybaby.wah</property> | |
92 | <property name="label_ref">label1:rack_label</property> | |
93 | </object> | |
94 | <packing> | |
95 | <property name="expand">False</property> | |
96 | <property name="fill">False</property> | |
97 | <property name="position">1</property> | |
98 | </packing> | |
99 | </child> | |
100 | </object> | |
101 | <packing> | |
102 | <property name="expand">False</property> | |
103 | <property name="fill">False</property> | |
104 | <property name="position">1</property> | |
105 | </packing> | |
106 | </child> | |
107 | </object> | |
108 | <packing> | |
109 | <property name="expand">True</property> | |
110 | <property name="fill">False</property> | |
85 | 111 | <property name="position">0</property> |
86 | 112 | </packing> |
87 | 113 | </child> |
88 | 114 | <child> |
89 | <object class="GxSmallKnobR" id="gxbigknob2"> | |
90 | <property name="visible">True</property> | |
91 | <property name="can_focus">True</property> | |
92 | <property name="receives_default">True</property> | |
93 | <property name="var_id">crybaby.level</property> | |
94 | <property name="label_ref">label2:rack_label</property> | |
95 | </object> | |
96 | <packing> | |
97 | <property name="expand">False</property> | |
115 | <object class="GtkVBox" id="vbox3"> | |
116 | <property name="visible">True</property> | |
117 | <property name="can_focus">False</property> | |
118 | <child> | |
119 | <object class="GtkLabel" id="label2:rack_label"> | |
120 | <property name="visible">True</property> | |
121 | <property name="can_focus">False</property> | |
122 | <property name="label" translatable="yes">label</property> | |
123 | </object> | |
124 | <packing> | |
125 | <property name="expand">False</property> | |
126 | <property name="fill">True</property> | |
127 | <property name="position">0</property> | |
128 | </packing> | |
129 | </child> | |
130 | <child> | |
131 | <object class="GxSmallKnobR" id="gxbigknob2"> | |
132 | <property name="visible">True</property> | |
133 | <property name="can_focus">True</property> | |
134 | <property name="receives_default">True</property> | |
135 | <property name="var_id">crybaby.level</property> | |
136 | <property name="label_ref">label2:rack_label</property> | |
137 | </object> | |
138 | <packing> | |
139 | <property name="expand">False</property> | |
140 | <property name="fill">True</property> | |
141 | <property name="position">1</property> | |
142 | </packing> | |
143 | </child> | |
144 | </object> | |
145 | <packing> | |
146 | <property name="expand">True</property> | |
98 | 147 | <property name="fill">True</property> |
99 | 148 | <property name="position">1</property> |
149 | </packing> | |
150 | </child> | |
151 | <child> | |
152 | <object class="GtkVBox" id="vbox4"> | |
153 | <property name="visible">True</property> | |
154 | <property name="can_focus">False</property> | |
155 | <child> | |
156 | <object class="GtkLabel" id="label3:rack_label"> | |
157 | <property name="visible">True</property> | |
158 | <property name="can_focus">False</property> | |
159 | <property name="label" translatable="yes">label</property> | |
160 | </object> | |
161 | <packing> | |
162 | <property name="expand">False</property> | |
163 | <property name="fill">True</property> | |
164 | <property name="position">0</property> | |
165 | </packing> | |
166 | </child> | |
167 | <child> | |
168 | <object class="GxSmallKnob" id="gxsmallknob1"> | |
169 | <property name="visible">True</property> | |
170 | <property name="can_focus">True</property> | |
171 | <property name="receives_default">True</property> | |
172 | <property name="var_id">crybaby.wet_dry</property> | |
173 | <property name="show_value">False</property> | |
174 | <property name="label_ref">label3:rack_label</property> | |
175 | </object> | |
176 | <packing> | |
177 | <property name="expand">True</property> | |
178 | <property name="fill">False</property> | |
179 | <property name="position">1</property> | |
180 | </packing> | |
181 | </child> | |
182 | <child> | |
183 | <object class="GtkHBox" id="hbox2"> | |
184 | <property name="visible">True</property> | |
185 | <property name="can_focus">False</property> | |
186 | <child> | |
187 | <object class="GxValueDisplay" id="gxvaluedisplay1"> | |
188 | <property name="visible">True</property> | |
189 | <property name="can_focus">True</property> | |
190 | <property name="receives_default">True</property> | |
191 | <property name="var_id">crybaby.wet_dry</property> | |
192 | </object> | |
193 | <packing> | |
194 | <property name="expand">True</property> | |
195 | <property name="fill">False</property> | |
196 | <property name="position">0</property> | |
197 | </packing> | |
198 | </child> | |
199 | </object> | |
200 | <packing> | |
201 | <property name="expand">False</property> | |
202 | <property name="fill">True</property> | |
203 | <property name="position">2</property> | |
204 | </packing> | |
205 | </child> | |
206 | </object> | |
207 | <packing> | |
208 | <property name="expand">True</property> | |
209 | <property name="fill">True</property> | |
210 | <property name="position">2</property> | |
100 | 211 | </packing> |
101 | 212 | </child> |
102 | 213 | </object> |
106 | 217 | <property name="position">1</property> |
107 | 218 | </packing> |
108 | 219 | </child> |
109 | <child> | |
110 | <object class="GtkVBox" id="vbox3"> | |
111 | <property name="visible">True</property> | |
112 | <property name="can_focus">False</property> | |
113 | <child> | |
114 | <object class="GtkLabel" id="label3:rack_label"> | |
115 | <property name="visible">True</property> | |
116 | <property name="can_focus">False</property> | |
117 | <property name="label" translatable="yes">label</property> | |
118 | </object> | |
119 | <packing> | |
120 | <property name="expand">False</property> | |
121 | <property name="fill">True</property> | |
122 | <property name="position">0</property> | |
123 | </packing> | |
124 | </child> | |
125 | <child> | |
126 | <object class="GxSmallKnob" id="gxsmallknob1"> | |
127 | <property name="visible">True</property> | |
128 | <property name="can_focus">True</property> | |
129 | <property name="receives_default">True</property> | |
130 | <property name="var_id">crybaby.wet_dry</property> | |
131 | <property name="show_value">False</property> | |
132 | <property name="label_ref">label3:rack_label</property> | |
133 | </object> | |
134 | <packing> | |
135 | <property name="expand">True</property> | |
136 | <property name="fill">False</property> | |
137 | <property name="position">1</property> | |
138 | </packing> | |
139 | </child> | |
140 | <child> | |
141 | <object class="GtkHBox" id="hbox2"> | |
142 | <property name="visible">True</property> | |
143 | <property name="can_focus">False</property> | |
144 | <child> | |
145 | <object class="GxValueDisplay" id="gxvaluedisplay1"> | |
146 | <property name="visible">True</property> | |
147 | <property name="can_focus">True</property> | |
148 | <property name="receives_default">True</property> | |
149 | <property name="var_id">crybaby.wet_dry</property> | |
150 | </object> | |
151 | <packing> | |
152 | <property name="expand">True</property> | |
153 | <property name="fill">False</property> | |
154 | <property name="position">0</property> | |
155 | </packing> | |
156 | </child> | |
157 | </object> | |
158 | <packing> | |
159 | <property name="expand">False</property> | |
160 | <property name="fill">True</property> | |
161 | <property name="position">2</property> | |
162 | </packing> | |
163 | </child> | |
164 | </object> | |
165 | <packing> | |
166 | <property name="expand">True</property> | |
167 | <property name="fill">True</property> | |
168 | <property name="position">2</property> | |
169 | </packing> | |
170 | </child> | |
171 | 220 | </object> |
172 | 221 | </child> |
173 | 222 | </object> |
24 | 24 | */ |
25 | 25 | |
26 | 26 | #include "engine.h" |
27 | #include "valve.h" | |
27 | 28 | |
28 | 29 | #include "gx_faust_plugins.h" |
29 | 30 | #include "../plugins/pluginlib.h" |
134 | 135 | stereo_convolver(*this, sigc::mem_fun(stereo_chain, &StereoModuleChain::sync), |
135 | 136 | param, options.get_IR_pathlist(), options.get_sys_IR_dir()), |
136 | 137 | cabinet(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp), |
138 | preamp(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp), | |
137 | 139 | contrast(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp), |
138 | 140 | ladspaloader(options) { |
139 | 141 | #ifdef USE_MIDI_OUT |
141 | 143 | #endif |
142 | 144 | |
143 | 145 | load_static_plugins(); |
144 | ||
145 | 146 | // loaded from shared libs |
146 | 147 | if (!plugin_dir.empty()) { |
147 | 148 | pluginlist.load_from_path(plugin_dir, PLUGIN_POS_RACK); |
236 | 237 | pl.add(gx_effects::gx_feedback::plugin(), PLUGIN_POS_RACK, PGN_GUI); |
237 | 238 | pl.add(&tonestack.plugin, PLUGIN_POS_RACK, PGN_GUI); |
238 | 239 | pl.add(&cabinet.plugin, PLUGIN_POS_RACK, PGN_GUI); |
240 | pl.add(&preamp.plugin, PLUGIN_POS_RACK, PGN_GUI); | |
239 | 241 | pl.add(pluginlib::abgate::plugin(), PLUGIN_POS_RACK); |
240 | 242 | pl.add(pluginlib::vibe::plugin_mono(), PLUGIN_POS_RACK); |
241 | 243 | // stereo |
838 | 838 | return 0; |
839 | 839 | } |
840 | 840 | |
841 | /**************************************************************** | |
842 | ** class PreampConvolver | |
843 | */ | |
844 | ||
845 | struct PreDesc { | |
846 | int ir_count; | |
847 | int ir_sr; | |
848 | float ir_data[]; | |
849 | }; | |
850 | ||
851 | template <int tab_size> | |
852 | struct PreDesc_imp { | |
853 | int ir_count; | |
854 | int ir_sr; | |
855 | float ir_data[tab_size]; | |
856 | operator PreDesc&() { return *(PreDesc*)this; } | |
857 | }; | |
858 | ||
859 | #include "gx_preamp_data.cc" | |
860 | ||
861 | struct PreEntry { | |
862 | const char *value_id; | |
863 | const char *value_label; | |
864 | PreDesc *data; | |
865 | } pre_table[] = { | |
866 | { "AC30", N_("AC30"), &static_cast<PreDesc&>(pre_data_ac30) }, | |
867 | { "Bassman", N_("Bassman"), &static_cast<PreDesc&>(pre_data_bassman) }, | |
868 | { "Tube", N_("Tube"), &static_cast<PreDesc&>(pre_data_tube) }, | |
869 | { "Fender", N_("Fender"), &static_cast<PreDesc&>(pre_data_fender) }, | |
870 | { "JCM800", N_("JCM800"), &static_cast<PreDesc&>(pre_data_jcm800) }, | |
871 | { "JTM45", N_("JTM45"), &static_cast<PreDesc&>(pre_data_jtm45) }, | |
872 | { "Mesa Boogie", N_("Mesa Boogie"), &static_cast<PreDesc&>(pre_data_mesaboogie) }, | |
873 | { "Boutique", N_("Boutique"), &static_cast<PreDesc&>(pre_data_boutique) }, | |
874 | { "Ampeg", N_("Ampeg"), &static_cast<PreDesc&>(pre_data_ampeg) }, | |
875 | { "Rectifier", N_("Rectifier"), &static_cast<PreDesc&>(pre_data_rectifier) }, | |
876 | }; | |
877 | static const unsigned int pre_table_size = sizeof(pre_table) / sizeof(pre_table[0]); | |
878 | ||
879 | static PreEntry& getPreEntry(unsigned int n) { | |
880 | if (n >= pre_table_size) { | |
881 | n = pre_table_size - 1; | |
882 | } | |
883 | return pre_table[n]; | |
884 | } | |
885 | ||
886 | #include "faust/preamp_impulse_former.cc" | |
887 | ||
888 | PreampConvolver::PreampConvolver(EngineControl& engine, sigc::slot<void> sync, gx_resample::BufferResampler& resamp): | |
889 | BaseConvolver(engine, sync, resamp), | |
890 | current_pre(-1), | |
891 | level(0), | |
892 | preamp(0), | |
893 | bass(0), | |
894 | treble(0), | |
895 | sum(no_sum), | |
896 | pre_names(new value_pair[pre_table_size+1]), | |
897 | impf() { | |
898 | for (unsigned int i = 0; i < pre_table_size; ++i) { | |
899 | PreEntry& pre = getPreEntry(i); | |
900 | pre_names[i].value_id = pre.value_id; | |
901 | pre_names[i].value_label = pre.value_label; | |
902 | } | |
903 | pre_names[pre_table_size].value_id = 0; | |
904 | pre_names[pre_table_size].value_label = 0; | |
905 | id = "pre"; | |
906 | name = N_("Amp impulse"); | |
907 | category = N_("Tone control"); | |
908 | mono_audio = run_pre_conf; | |
909 | register_params = register_pre; | |
910 | } | |
911 | ||
912 | PreampConvolver::~PreampConvolver() { | |
913 | delete[] pre_names; | |
914 | } | |
915 | ||
916 | bool PreampConvolver::do_update() { | |
917 | bool configure = preamp_changed(); | |
918 | if (conv.is_runnable()) { | |
919 | conv.set_not_runnable(); | |
920 | sync(); | |
921 | conv.stop_process(); | |
922 | } | |
923 | PreDesc& pre = *getPreEntry(preamp).data; | |
924 | if (current_pre == -1) { | |
925 | impf.init(pre.ir_sr); | |
926 | } | |
927 | float pre_irdata_c[pre.ir_count]; | |
928 | impf.compute(pre.ir_count,pre.ir_data,pre_irdata_c); | |
929 | while (!conv.checkstate()); | |
930 | if (configure) { | |
931 | if (!conv.configure(pre.ir_count, pre_irdata_c, pre.ir_sr)) { | |
932 | return false; | |
933 | } | |
934 | } else { | |
935 | if (!conv.update(pre.ir_count, pre_irdata_c, pre.ir_sr)) { | |
936 | return false; | |
937 | } | |
938 | } | |
939 | update_preamp(); | |
940 | update_sum(); | |
941 | return conv_start(); | |
942 | } | |
943 | ||
944 | bool PreampConvolver::start(bool force) { | |
945 | if (force) { | |
946 | current_pre = -1; | |
947 | } | |
948 | if (preamp_changed() || sum_changed()) { | |
949 | return do_update(); | |
950 | } else { | |
951 | while (!conv.checkstate()); | |
952 | if (!conv.is_runnable()) { | |
953 | return conv_start(); | |
954 | } | |
955 | return true; | |
956 | } | |
957 | } | |
958 | ||
959 | void PreampConvolver::check_update() { | |
960 | if (preamp_changed() || sum_changed()) { | |
961 | do_update(); | |
962 | } | |
963 | } | |
964 | ||
965 | void PreampConvolver::run_pre_conf(int count, float *input0, float *output0, PluginDef *p) { | |
966 | PreampConvolver& self = *static_cast<PreampConvolver*>(p); | |
967 | if (!self.conv.compute(count, output0)) { | |
968 | self.plugin.on_off = false; | |
969 | gx_system::gx_print_error("Convolver", "preamp overload"); | |
970 | } | |
971 | } | |
972 | ||
973 | int PreampConvolver::register_pre(const ParamReg& reg) { | |
974 | PreampConvolver& pre = *static_cast<PreampConvolver*>(reg.plugin); | |
975 | reg.registerIEnumVar("pre.select", "select", "B", "", pre.pre_names, &pre.preamp, 0); | |
976 | reg.registerVar("pre.Level", "", "S", "", &pre.level, 1.0, 0.1, 2.1, 0.1); | |
977 | reg.registerVar("pre.bass", "", "S", "", &pre.bass, 0.0, -10.0, 10.0, 0.5); | |
978 | reg.registerVar("pre.treble", "", "S", "", &pre.treble, 0.0, -10.0, 10.0, 0.5); | |
979 | pre.impf.register_par(reg); | |
980 | return 0; | |
981 | } | |
841 | 982 | |
842 | 983 | /**************************************************************** |
843 | 984 | ** class ContrastConvolver |
169 | 169 | OscilloscopeAdapter::OscilloscopeAdapter( |
170 | 170 | gx_ui::GxUI *ui, ModuleSequencer& engine) |
171 | 171 | : PluginDef(), |
172 | mul_buffer(1), | |
172 | 173 | plugin(), |
173 | 174 | activation(), |
174 | 175 | size_change(), |
188 | 189 | sigc::mem_fun(*this, &OscilloscopeAdapter::change_buffersize)); |
189 | 190 | } |
190 | 191 | |
192 | int OscilloscopeAdapter::osc_register(const ParamReg& reg) { | |
193 | ||
194 | return 0; | |
195 | } | |
196 | ||
191 | 197 | void OscilloscopeAdapter::change_buffersize(unsigned int size_) { |
192 | 198 | //FIXME waveview display needs mutex |
193 | 199 | size_change(0); |
194 | 200 | float *b = buffer; |
195 | buffer = new float[size_]; | |
196 | size = size_; | |
201 | unsigned int d = mul_buffer; | |
202 | buffer = new float[size_ * d]; | |
203 | size = size_* d; | |
197 | 204 | clear_buffer(); |
198 | size_change(size_); | |
205 | size_change(size_* d); | |
199 | 206 | delete b; |
200 | 207 | } |
201 | 208 | |
203 | 210 | unsigned int OscilloscopeAdapter::size = 0; |
204 | 211 | |
205 | 212 | // rt process function |
206 | void OscilloscopeAdapter::fill_buffer(int count, float *input0, float *output0, PluginDef*) { | |
207 | assert(count == static_cast<int>(size)); | |
208 | (void)memcpy(buffer, output0, sizeof(float)*count); | |
213 | void OscilloscopeAdapter::fill_buffer(int count, float *input0, float *output0, PluginDef *p) { | |
214 | OscilloscopeAdapter& self = *static_cast<OscilloscopeAdapter*>(p); | |
215 | if(count*self.mul_buffer != static_cast<int>(size)) return; | |
216 | if(self.mul_buffer > 1) { | |
217 | (void)memmove(buffer, &buffer[count], sizeof(float)*count*(self.mul_buffer-1)); | |
218 | } | |
219 | (void)memcpy(&buffer[count*(self.mul_buffer-1)], output0, sizeof(float)*count); | |
209 | 220 | } |
210 | 221 | |
211 | 222 | int OscilloscopeAdapter::activate(bool start, PluginDef *plugin) { |
184 | 184 | jackopt |= JackUseExactName; |
185 | 185 | } |
186 | 186 | |
187 | std::string ServerName = opt.get_jack_servername(); | |
188 | ||
187 | 189 | set_jack_down(false); |
188 | 190 | set_jack_exit(true); |
189 | 191 | engine.set_stateflag(gx_engine::GxEngine::SF_INITIALIZING); |
200 | 202 | client_name.c_str(), JackOptions(jackopt | JackSessionID), |
201 | 203 | &jackstat, opt.get_jack_uuid().c_str()); |
202 | 204 | } else { |
205 | if (ServerName.empty()) { | |
203 | 206 | client = jack_client_open(client_name.c_str(), JackOptions(jackopt), &jackstat); |
207 | } else { | |
208 | client = jack_client_open(client_name.c_str(), JackOptions(jackopt | JackServerName), | |
209 | &jackstat, ServerName.c_str()); | |
210 | } | |
204 | 211 | } |
205 | 212 | #else |
213 | if (ServerName.empty()) { | |
206 | 214 | client = jack_client_open(client_name.c_str(), JackOptions(jackopt), &jackstat); |
215 | } else { | |
216 | client = jack_client_open(client_name.c_str(), JackOptions(jackopt | JackServerName), | |
217 | &jackstat, ServerName.c_str()); | |
218 | } | |
207 | 219 | #endif |
208 | 220 | // ----- only start the insert gxjack.client when the amp gxjack.client is true |
209 | 221 | if (client) { |
223 | 235 | JackOptions(jackopt | JackSessionID | JackUseExactName), |
224 | 236 | &jackstat, opt.get_jack_uuid2().c_str()); |
225 | 237 | } else { |
238 | if (ServerName.empty()) { | |
226 | 239 | client_insert = jack_client_open( |
227 | 240 | client_insert_name.c_str(), |
228 | JackOptions(jackopt | JackUseExactName), &jackstat); | |
241 | JackOptions(jackopt | JackUseExactName ), &jackstat); | |
242 | } else { | |
243 | client_insert = jack_client_open( | |
244 | client_insert_name.c_str(), | |
245 | JackOptions(jackopt | JackUseExactName | JackServerName), | |
246 | &jackstat, ServerName.c_str()); | |
247 | } | |
229 | 248 | } |
230 | 249 | #else |
250 | if (ServerName.empty()) { | |
231 | 251 | client_insert = jack_client_open( |
232 | 252 | client_insert_name.c_str(), |
233 | 253 | JackOptions(jackopt | JackUseExactName), &jackstat); |
254 | } else { | |
255 | client_insert = jack_client_open( | |
256 | client_insert_name.c_str(), | |
257 | JackOptions(jackopt | JackUseExactName | JackServerName), | |
258 | &jackstat, ServerName.c_str()); | |
259 | } | |
234 | 260 | #endif |
235 | 261 | if (!client_insert) { |
236 | 262 | jack_client_close(client); |
273 | 299 | |
274 | 300 | gx_jack_callbacks(); |
275 | 301 | client_change(); // might load port connection definitions |
276 | if (opt.get_jack_uuid().empty()) { | |
302 | if (opt.get_jack_uuid().empty() && !opt.get_jack_noconnect()) { | |
277 | 303 | // when not loaded by session manager |
278 | 304 | gx_jack_init_port_connection(); |
279 | 305 | } |
0 | /* | |
1 | * Copyright (C) 2009, 2010 Hermann Meyer, James Warden, Andreas Degert | |
2 | * Copyright (C) 2011 Pete Shorthose | |
3 | * | |
4 | * This program is free software; you can redistribute it and/or modify | |
5 | * it under the terms of the GNU General Public License as published by | |
6 | * the Free Software Foundation; either version 2 of the License, or | |
7 | * (at your option) any later version. | |
8 | * | |
9 | * This program is distributed in the hope that it will be useful, | |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | * GNU General Public License for more details. | |
13 | * | |
14 | * You should have received a copy of the GNU General Public License | |
15 | * along with this program; if not, write to the Free Software | |
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
17 | * --------------------------------------------------------------------------- | |
18 | * | |
19 | * This is the gx_head preamp impulse response data file | |
20 | * | |
21 | * ---------------------------------------------------------------------------- | |
22 | */ | |
23 | ||
24 | ||
25 | /**----------------------------- preamp impulse response data --------------------------------**/ | |
26 | PreDesc_imp<128> pre_data_ac30 = { | |
27 | 128, 48000, | |
28 | { 0.00393066, -0.00275879, -0.0107056, -0.0186523, -0.021814, -0.0177856, -0.0113037, -0.00405273, -0.00921631, -0.0147461, -0.0227173, -0.024646, -0.0230713, | |
29 | -0.0261353, -0.027417, -0.0293945, -0.0291382, -0.030481, -0.0371338, -0.0451782, -0.0536865, -0.0595215, -0.0629395, -0.0588989, -0.0539307, -0.053186, | |
30 | -0.0653442, -0.0828857, -0.0994751, -0.107874, -0.106995, -0.0981201, -0.0919067, -0.0903198, -0.0974731, -0.106653, -0.116455, -0.124146, -0.126135, | |
31 | -0.114941, -0.0956421, -0.0729492, -0.0572998, -0.0453003, -0.033374, -0.00854492, 0.0289063, 0.0814697, 0.130652, 0.170825, 0.202832, 0.235889, | |
32 | 0.276648, 0.313464, 0.333203, 0.319739, 0.268335, 0.18291, 0.0634033, -0.0798462, -0.22821, -0.331702, -0.328626, -0.18291, 0.0696533, | |
33 | 0.307117, 0.399951, 0.287476, 0.0474854, -0.154529, -0.192651, -0.0657959, 0.09823, 0.179211, 0.144958, 0.0553711, -0.0102051, -0.0203369, | |
34 | 0.014624, 0.0598267, 0.087793, 0.085022, 0.0638306, 0.0387329, 0.0314209, 0.0392456, 0.0560425, 0.068689, 0.0671753, 0.0565918, 0.0387695, | |
35 | 0.0280273, 0.0268066, 0.0389526, 0.0519897, 0.0639526, 0.0689575, 0.0678711, 0.0637085, 0.0591309, 0.0532959, 0.0495117, 0.046228, 0.0443359, | |
36 | 0.042395, -0.0729492, -0.0572998, -0.0453003, -0.033374, -0.00854492, 0.0289063, 0.0814697, 0.130652, 0.170825, 0.202832, 0.235889, 0.276648, | |
37 | 0.313464, 0.333203, 0.319739, 0.268335, 0.18291, 0.0634033, -0.0798462, -0.22821, -0.331702, -0.328626, -0.18291 | |
38 | } | |
39 | }; | |
40 | ||
41 | PreDesc_imp<128> pre_data_bassman = { | |
42 | 128, 48000, | |
43 | { 0.000488281, -0.000378418, -0.00321045, -0.00650635, -0.00511475, 0.00673828, 0.0290527, 0.053894, 0.0719116, 0.0805786, 0.0863525, 0.0949829, 0.108655, | |
44 | 0.122083, 0.130762, 0.13269, 0.128613, 0.119299, 0.102869, 0.0820557, 0.0596191, 0.0385864, 0.0161621, -0.0170776, -0.0638428, -0.123486, | |
45 | -0.185584, -0.230908, -0.245093, -0.218103, -0.143518, -0.0282349, 0.111316, 0.246362, 0.323035, 0.263818, 0.0418091, -0.247791, -0.399951, | |
46 | -0.245801, 0.130835, 0.372144, 0.217542, -0.121814, -0.222314, -0.0390137, 0.103052, 0.0520996, -0.0181641, 0.0101318, 0.0483154, 0.0265869, | |
47 | -0.00666504, -0.00996094, -0.00302734, -0.000610352, 0.00522461, 0.0172119, 0.027063, 0.0286743, 0.025415, 0.0218018, 0.0203979, 0.0170776, 0.0137329, | |
48 | 0.0106445, 0.00473633, -0.00032959, -0.00130615, 0.00222168, 0.00529785, 0.00579834, 0.00633545, 0.00717773, 0.0081543, 0.00645752, 0.00487061, 0.00588379, | |
49 | 0.00864258, 0.00938721, 0.00789795, 0.00598145, 0.00288086, -0.00213623, -0.00666504, -0.00614014, -0.0032959, -0.00314941, -0.00595703, -0.00964355, -0.0100464, | |
50 | -0.00727539, -0.00544434, -0.0034668, -0.143518, -0.0282349, 0.111316, 0.246362, 0.323035, 0.263818, 0.0418091, -0.247791, -0.399951, -0.245801, | |
51 | 0.130835, 0.372144, 0.217542, -0.121814, -0.222314, -0.0390137, 0.103052, 0.0520996, -0.0181641, 0.0101318, 0.0483154, 0.0265869, -0.00666504, | |
52 | -0.00996094, -0.00302734, -0.000610352, 0.00522461, 0.0172119, 0.027063, 0.0286743, 0.025415, 0.0218018, 0.0203979, 0.0170776 | |
53 | } | |
54 | }; | |
55 | ||
56 | PreDesc_imp<128> pre_data_tube = { | |
57 | 128, 48000, | |
58 | {-0.0245605, -0.0253174, -0.0260986, -0.0286377, -0.031604, -0.033606, -0.0339966, -0.036499, -0.0418579, -0.0461304, -0.04823, -0.0494751, -0.0528564, | |
59 | -0.057312, -0.0626343, -0.0658691, -0.0683105, -0.0714844, -0.0766602, -0.0819824, -0.0854736, -0.0869263, -0.0892944, -0.091687, -0.0937378, -0.0932617, | |
60 | -0.0877075, -0.0789307, -0.0695679, -0.0598022, -0.0466553, -0.0248901, 0.00413818, 0.0353516, 0.0682861, 0.105908, 0.150488, 0.198853, 0.241895, | |
61 | 0.271985, 0.283386, 0.275623, 0.243127, 0.177686, 0.0702881, -0.0701538, -0.216687, -0.325879, -0.354602, -0.272156, -0.0790894, 0.169556, | |
62 | 0.364709, 0.378906, 0.167236, -0.147705, -0.326514, -0.206458, 0.0912231, 0.242468, 0.107129, -0.0874878, -0.0894409, 0.028479, 0.0609253, | |
63 | 0.00385742, -0.0260986, -0.0286377, -0.031604, -0.033606, -0.0339966, -0.036499, -0.0418579, -0.0461304, -0.04823, -0.0494751, -0.0528564, -0.057312, | |
64 | -0.0626343, -0.0658691, -0.0683105, -0.0714844, -0.0766602, -0.0819824, -0.0854736, -0.0869263, -0.0892944, -0.091687, -0.0937378, -0.0932617, -0.0877075, | |
65 | -0.0789307, -0.0695679, -0.0598022, -0.0466553, -0.0248901, 0.00413818, 0.0353516, 0.0682861, 0.105908, 0.150488, 0.198853, 0.241895, 0.271985, | |
66 | 0.283386, 0.275623, 0.243127, 0.177686, 0.0702881, -0.0701538, -0.216687, -0.325879, -0.354602, -0.272156, -0.0790894, 0.169556, 0.364709, | |
67 | 0.378906, 0.167236, -0.147705, -0.326514, -0.206458, 0.0912231, 0.242468, 0.107129, -0.0874878, -0.0894409, 0.028479 | |
68 | } | |
69 | }; | |
70 | ||
71 | PreDesc_imp<128> pre_data_fender = { | |
72 | 128, 48000, | |
73 | {-0.0116211, 0.00537109, 0.00996094, 0.00367432, 0.0297974, 0.0516968, 0.0670532, 0.061377, 0.0676147, 0.0970459, 0.133569, 0.146338, 0.130823, | |
74 | 0.137866, 0.165503, 0.174207, 0.157825, 0.133142, 0.115955, 0.102698, 0.0799072, 0.0361084, -0.0414185, -0.11261, -0.160596, -0.183008, | |
75 | -0.179309, -0.164636, -0.123999, -0.0490479, 0.05, 0.170764, 0.256372, 0.293835, 0.248767, 0.124622, -0.04646, -0.215698, -0.316101, | |
76 | -0.26665, -0.0455322, 0.248218, 0.399951, 0.25116, -0.0908081, -0.319226, -0.186597, 0.120093, 0.233057, 0.0499023, -0.100122, -0.0296265, | |
77 | 0.0689697, 0.0411621, -0.0216309, 0.00196533, 0.0372559, 0.0129639, -0.0108154, -0.00200195, 0.0161255, 0.0209961, 0.0179932, 0.0248291, 0.0217163, | |
78 | 0.00469971, -0.00819092, -0.00952148, 0.00715332, 0.0289551, 0.0293945, 0.0170044, 0.00500488, -0.00257568, -0.000463867, 0.0072876, 0.0129028, 0.0176636, | |
79 | 0.0216187, 0.0243164, 0.0015625, -0.0165649, -0.0194458, 0.0024292, 0.0309326, 0.0379272, 0.0205811, 0.0104248, -0.00147705, -0.00760498, -0.0174927, | |
80 | -0.00527344, 0.0196899, 0.0338135, 0.0261719, 0.00256348, -0.00771484, -0.00799561, -0.00317383, -0.00292969, 0.0136841, 0.0227539, 0.0214478, 0.000671387, | |
81 | -0.01604, 0.248218, 0.399951, 0.25116, -0.0908081, -0.319226, -0.186597, 0.120093, 0.233057, 0.0499023, -0.100122, -0.0296265, 0.0689697, | |
82 | 0.0411621, -0.0216309, 0.00196533, 0.0372559, 0.0129639, -0.0108154, -0.00200195, 0.0161255 | |
83 | } | |
84 | }; | |
85 | ||
86 | PreDesc_imp<128> pre_data_jcm800 = { | |
87 | 128, 48000, | |
88 | {0.000439453, 0.00429688, 0.00175781, 0.00196533, 0.00533447, 0.00778809, 0.00926514, 0.0117065, 0.020166, 0.0301514, 0.0398437, 0.0490234, 0.0564209, | |
89 | 0.0589844, 0.0675171, 0.0864258, 0.0965454, 0.102051, 0.115271, 0.126477, 0.118262, 0.089563, 0.0595825, 0.0301636, -0.0140869, -0.0776489, | |
90 | -0.150586, -0.217993, -0.246912, -0.202112, -0.082605, 0.0856689, 0.270557, 0.399951, 0.343542, 0.0719238, -0.254639, -0.369421, -0.134888, | |
91 | 0.22063, 0.291199, 0.0318115, -0.164673, -0.0643921, 0.0991211, 0.0802246, -0.00705566, -0.00765381, 0.0236328, 0.0121826, 0.0012085, 0.0198975, | |
92 | 0.0295776, 0.0245361, 0.0183838, 0.012561, 0.005896, 0.00584717, 0.017395, 0.0233643, 0.013501, 0.00489502, 0.0097168, 0.0224487, 0.0200195, | |
93 | 0.0150757, 0.0125, 0.00881348, 0.00986328, 0.0144043, 0.0143311, 0.00706787, 0.00874023, 0.0185303, 0.0203613, 0.00797119, 0.000744629, 0.0103027, | |
94 | 0.0264282, 0.0213989, 0.00159912, 0.102051, 0.115271, 0.126477, 0.118262, 0.089563, 0.0595825, 0.0301636, -0.0140869, -0.0776489, -0.150586, | |
95 | -0.217993, -0.246912, -0.202112, -0.082605, 0.0856689, 0.270557, 0.399951, 0.343542, 0.0719238, -0.254639, -0.369421, -0.134888, 0.22063, | |
96 | 0.291199, 0.0318115, -0.164673, -0.0643921, 0.0991211, 0.0802246, -0.00705566, -0.00765381, 0.0236328, 0.0121826, 0.0012085, 0.0198975, 0.0295776, | |
97 | 0.0245361, 0.0183838, 0.012561, 0.005896, 0.00584717, 0.017395, 0.0233643, 0.013501, 0.00489502, 0.0097168, 0.0224487 | |
98 | } | |
99 | }; | |
100 | ||
101 | PreDesc_imp<64> pre_data_jtm45 = { | |
102 | 64, 48000, | |
103 | {-0.00424805, 0.0186279, 0.0564453, 0.0822876, 0.0890381, 0.106787, 0.151208, 0.186194, 0.189404, 0.186902, 0.195264, 0.181775, 0.130627, | |
104 | 0.0626709, -0.0112671, -0.121802, -0.266382, -0.371594, -0.361304, -0.212549, 0.0317261, 0.276929, 0.399951, 0.306494, 0.0298096, -0.22655, | |
105 | -0.226782, 0.00374756, 0.171716, 0.101611, -0.0349487, -0.0384155, 0.0296997, 0.0264771, -0.0113403, 0.00616455, 0.0444702, 0.0356689, 0.00285645, | |
106 | -0.00860596, 0.00100098, 0.0141846, 0.0238525, 0.0202881, 0.00688477, 0.00476074, 0.0190552, 0.0286133, 0.0125488, -0.010144, -0.00372314, 0.0260864, | |
107 | 0.040625, 0.015332, -0.0156372, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |
108 | } | |
109 | }; | |
110 | ||
111 | PreDesc_imp<64> pre_data_mesaboogie = { | |
112 | 64, 48000, | |
113 | { 0.0117493, 0.0395203, 0.100708, 0.164703, 0.210175, 0.235229, 0.246826, 0.252838, 0.263702, 0.28244, 0.299255, 0.291962, 0.250641, | |
114 | 0.18454, 0.102966, -0.00238037, -0.138214, -0.296509, -0.448486, -0.547943, -0.555908, -0.451202, -0.244598, 0.0221252, 0.305664, 0.575653, | |
115 | 0.766541, 0.733307, 0.341339, -0.345123, -0.936401, -0.891785, -0.0845642, 0.799438, 0.854553, 0.097168, -0.501892, -0.34967, 0.0797119, | |
116 | 0.172302, 0.0288696, 0.0067749, 0.0860291, 0.0831909, 0.0121765, -0.0234375, 0, 0, 0, 0, 0, 0, | |
117 | 0, 0, 0, 0, 0, 0, -0.125061, 0, 0, -0.125061, 0, 0 | |
118 | } | |
119 | }; | |
120 | ||
121 | PreDesc_imp<64> pre_data_boutique = { | |
122 | 64, 48000, | |
123 | {0.00469971, 0.0158081, 0.0402832, 0.0658813, 0.0840698, 0.0940918, 0.0987305, 0.101135, 0.105481, 0.112976, 0.119702, 0.116785, 0.100256, | |
124 | 0.0738159, 0.0411865, -0.000952148, -0.0552856, -0.118604, -0.179395, -0.219177, -0.222363, -0.180481, -0.0978394, 0.0088501, 0.122266, 0.230261, | |
125 | 0.306616, 0.293323, 0.136536, -0.138049, -0.374561, -0.356714, -0.0338257, 0.319775, 0.341821, 0.0388672, -0.200757, -0.139868, 0.0318848, | |
126 | 0.0689209, 0.0115479, 0.00270996, 0.0344116, 0.0332764, 0.00487061, -0.009375, 0, 0, 0, 0, 0, 0, | |
127 | 0, 0, 0, 0, 0, 0, -0.0500244, 0, 0, -0.0500244, 0, 0 | |
128 | } | |
129 | }; | |
130 | ||
131 | PreDesc_imp<64> pre_data_ampeg = { | |
132 | 64, 48000, | |
133 | {0.376916, 0.399988, 0.351416, 0.257043, 0.130933, -0.0336914, -0.144531, -0.157996, -0.172644, -0.116333, -0.0712891, -0.112268, -0.113647, | |
134 | -0.0861938, -0.0596802, 0.0151367, 0.125342, 0.217004, 0.23717, 0.207117, 0.140686, 0.0196777, -0.0640503, -0.0810303, -0.0605713, -0.0167114, | |
135 | 0.0118652, -0.00550537, -0.0471436, -0.0363281, 0.00446777, 0.0364014, 0.0814819, 0.115894, 0.121606, 0.0971802, 0.0432373, -0.0343506, -0.0949463, | |
136 | -0.101904, -0.0881104, -0.0647095, -0.0311768, -0.0188232, -0.0287476, -0.0381836, -0.0307007, -0.0019043, 0.0474487, 0.0888916, 0.0936279, 0.0749878, | |
137 | 0.037854, -0.000158691, -0.0143188, -0.00498047, 0.00410156, -0.00371094, -0.00367432, 0.0041626, -0.00980225, -0.0265137, -0.0301392, 0 | |
138 | } | |
139 | }; | |
140 | ||
141 | PreDesc_imp<128> pre_data_rectifier = { | |
142 | 128, 48000, | |
143 | {0.000415039, 0.000708008, 0.000842285, 0.000708008, 0.000427246, 6.10352e-05, 0.00020752, 0.00356445, 0.019873, 0.0684448, 0.171387, 0.309338, 0.399988, | |
144 | 0.372913, 0.231567, 0.0299438, -0.158643, -0.269348, -0.289026, -0.242139, -0.154285, -0.0580444, 0.00939941, 0.0348145, 0.0287231, 0.00861816, | |
145 | -0.00637207, -0.0074585, 0.00616455, 0.028772, 0.045459, 0.0450317, 0.025415, -0.000878906, -0.01521, -0.0193359, -0.0251831, -0.0307739, -0.0307251, | |
146 | -0.0346802, -0.0551025, -0.0812134, -0.08927, -0.0733276, -0.0498169, -0.0314575, -0.0176147, -0.00771484, 0.00100098, 0.0110474, 0.0145874, 0.00759277, | |
147 | -0.00129395, -0.00842285, -0.0231079, -0.0463745, -0.0635986, -0.0686523, -0.0694946, -0.0690796, -0.0635498, -0.0541382, -0.0402588, 1.4013e-44, 0.016394, | |
148 | 0.0429443, 0.0556885, 0.0480225, 0.021582, -0.00991211, -0.0330811, -0.0422852, -0.0404175, -0.0348755, -0.0315063, -0.0310547, -0.0306396, -0.0261963, | |
149 | -0.0164307, -0.00701904, -0.00411377, -0.00596924, -0.00959473, -0.0180176, -0.0307983, -0.0412109, -0.0429321, -0.0339355, -0.0175293, 0.000976562, 0.0182007, | |
150 | 0.0319336, 0.0391846, 0.0374146, 0.0278442, 0.0142456, -0.000561523, -0.0143311, -0.0251221, -0.0328613, -0.0399902, -0.0474243, -0.0514771, -0.0478638, | |
151 | -0.0363892, -0.0198853, -0.00266113, 0.0115356, 0.0209961, 0.0262817, 0.0294556, 0.0317749, 0.0327759, 0.0296265, 0.0199097, 0.00577393, -0.00692139, | |
152 | -0.0128296, -0.0125, -0.0112915, -0.0134399, -0.018811, -0.0228516, -0.02052, -0.0106689, 0.00302734, 0.0149292, 1.4013e-44 | |
153 | } | |
154 | }; |
101 | 101 | { "ui.3 Band EQ", "ui.tonemodul" }, |
102 | 102 | { "ui.BiQuad Filter", "ui.biquad" }, |
103 | 103 | { "ui.Cabinet", "ui.cab" }, |
104 | { "ui.Preamp", "ui.pre" }, | |
104 | 105 | { "ui.Chorus", "ui.chorus" }, |
105 | 106 | { "ui.Chorus Mono", "ui.chorus_mono" }, |
106 | 107 | { "ui.Compressor", "ui.compressor" }, |
275 | 275 | jack_outputs(), |
276 | 276 | jack_uuid(), |
277 | 277 | jack_uuid2(), |
278 | jack_noconnect(false), | |
279 | jack_servername(), | |
278 | 280 | load_file(shellvar("GUITARIX_LOAD_FILE")), |
279 | 281 | builder_dir(GX_BUILDER_DIR), |
280 | 282 | style_dir(GX_STYLE_DIR), |
289 | 291 | IR_pathlist(), |
290 | 292 | rcset(shellvar("GUITARIX_RC_STYLE")), |
291 | 293 | lterminal(false), |
294 | a_save(false), | |
292 | 295 | #ifndef NDEBUG |
293 | 296 | dump_parameter(false), |
294 | 297 | #endif |
352 | 355 | opt_jack_midi.set_long_name("jack-midi"); |
353 | 356 | opt_jack_midi.set_description("Guitarix JACK midi control"); |
354 | 357 | opt_jack_midi.set_arg_description("PORT"); |
358 | Glib::OptionEntry opt_jack_noconnect; | |
359 | opt_jack_noconnect.set_short_name('J'); | |
360 | opt_jack_noconnect.set_long_name("jack-no-conect"); | |
361 | opt_jack_noconnect.set_description("dissable self-connect JACK ports"); | |
355 | 362 | Glib::OptionEntry opt_jack_instance; |
356 | 363 | opt_jack_instance.set_short_name('n'); |
357 | 364 | opt_jack_instance.set_long_name("name"); |
365 | 372 | opt_jack_uuid2.set_short_name('A'); |
366 | 373 | opt_jack_uuid2.set_long_name("jack-uuid2"); |
367 | 374 | opt_jack_uuid2.set_description("JackSession ID"); |
375 | Glib::OptionEntry opt_jack_servername; | |
376 | opt_jack_servername.set_short_name('s'); | |
377 | opt_jack_servername.set_long_name("server-name"); | |
378 | opt_jack_servername.set_description("JACK server name to connect to"); | |
379 | opt_jack_servername.set_arg_description("NAME"); | |
368 | 380 | optgroup_jack.add_entry(opt_jack_input, jack_input); |
369 | 381 | optgroup_jack.add_entry(opt_jack_output, jack_outputs); |
370 | 382 | optgroup_jack.add_entry(opt_jack_midi, jack_midi); |
383 | optgroup_jack.add_entry(opt_jack_noconnect, jack_noconnect); | |
371 | 384 | optgroup_jack.add_entry(opt_jack_instance, jack_instance); |
372 | 385 | optgroup_jack.add_entry(opt_jack_uuid, jack_uuid); |
373 | 386 | optgroup_jack.add_entry(opt_jack_uuid2, jack_uuid2); |
387 | optgroup_jack.add_entry(opt_jack_servername, jack_servername); | |
374 | 388 | |
375 | 389 | // FILE options |
376 | 390 | |
386 | 400 | opt_plugin_dir.set_description(_("directory with guitarix plugins (.so files)")); |
387 | 401 | opt_plugin_dir.set_arg_description("DIR"); |
388 | 402 | optgroup_file.add_entry_filename(opt_plugin_dir, plugin_dir); |
403 | Glib::OptionEntry opt_auto_save; | |
404 | opt_auto_save.set_short_name('K'); | |
405 | opt_auto_save.set_long_name("dissable-auto-save"); | |
406 | opt_auto_save.set_description(_("dissable auto save to state file when quit")); | |
407 | optgroup_file.add_entry(opt_auto_save, a_save); | |
389 | 408 | |
390 | 409 | // DEBUG options |
391 | 410 | Glib::OptionEntry opt_builder_dir; |
122 | 122 | |
123 | 123 | LadspaDsp::LadspaDsp(const plugdesc *plug, void *handle_, const LADSPA_Descriptor *desc_, bool mono) |
124 | 124 | : PluginDef(), desc(desc_), handle(handle_), instance(), |
125 | ports(new LADSPA_Data[desc->PortCount]), name_str(), pd(plug), is_activated(false), dry_wet(100) { | |
125 | ports(new LADSPA_Data[desc->PortCount]), name_str(), pd(plug), is_activated(false) { | |
126 | 126 | version = PLUGINDEF_VERSION; |
127 | 127 | id = pd->id_str.c_str(); |
128 | 128 | category = pd->category.c_str(); |
299 | 299 | pn.erase(rem); |
300 | 300 | } |
301 | 301 | while ((rem = pn.find_last_of(" ")) == pn.size()-1) { |
302 | pn.erase(rem); | |
302 | pn.erase(rem); | |
303 | 303 | } |
304 | 304 | rem = 0; |
305 | 305 | size_t rem1 = 0; |
392 | 392 | LadspaDsp& self = *static_cast<LadspaDsp*>(b.plugin); |
393 | 393 | b.openHorizontalhideBox(""); |
394 | 394 | if (self.pd->master_idx >= 0) { |
395 | int n = 0; | |
395 | int n = 0; | |
396 | 396 | for (std::vector<paradesc*>::const_iterator it = self.pd->names.begin(); it != self.pd->names.end(); ++it, ++n) { |
397 | 397 | if ((n)==self.pd->master_idx) { |
398 | 398 | switch ((*it)->tp) { |
107 | 107 | gx_system::gx_print_warning( |
108 | 108 | _("signal_handler"), _("signal USR1 received, save settings")); |
109 | 109 | if (gx_preset::GxSettings::instance) { |
110 | bool cur_state = gx_preset::GxSettings::instance->get_auto_save_state(); | |
111 | gx_preset::GxSettings::instance->disable_autosave(false); | |
110 | 112 | gx_preset::GxSettings::instance->auto_save_state(); |
113 | gx_preset::GxSettings::instance->disable_autosave(cur_state); | |
111 | 114 | } |
112 | 115 | } |
113 | 116 | |
341 | 344 | |
342 | 345 | try { |
343 | 346 | // ----------------------- init basic subsystems ---------------------- |
344 | Glib::thread_init(); | |
347 | #ifndef G_DISABLE_DEPRECATED | |
348 | if (!g_thread_supported ()) { | |
349 | Glib::thread_init(); | |
350 | } | |
351 | #endif | |
345 | 352 | Glib::init(); |
346 | 353 | Gxw::init(); |
347 | 354 |
1410 | 1410 | actions.group->add(Gtk::Action::create("EngineMenu",_("_Engine"))); |
1411 | 1411 | actions.jack_latency_menu = Gtk::Action::create("JackLatency",_("_Latency")); |
1412 | 1412 | actions.group->add(actions.jack_latency_menu); |
1413 | actions.osc_buffer_menu = Gtk::Action::create("OscBuffer",_("Osc. Buffer-size")); | |
1414 | actions.group->add(actions.osc_buffer_menu); | |
1413 | 1415 | actions.group->add(Gtk::Action::create("PresetsMenu",_("_Presets"))); |
1414 | 1416 | actions.group->add(Gtk::Action::create("PresetListMenu","--")); |
1415 | 1417 | actions.group->add(Gtk::Action::create("PluginsMenu",_("P_lugins"))); |
2134 | 2136 | ** oscilloscope handling |
2135 | 2137 | */ |
2136 | 2138 | |
2139 | void MainWindow::set_osc_size() { | |
2140 | //int osc_size = engine.oscilloscope.get_mul_buffer(); | |
2141 | if (mul_buffer > 0) { | |
2142 | actions.osc_buffer_size->set_current_value(mul_buffer); | |
2143 | } | |
2144 | } | |
2145 | ||
2146 | void MainWindow::change_osc_buffer(Glib::RefPtr<Gtk::RadioAction> action) { | |
2147 | if (jack.client) { | |
2148 | mul_buffer = action->get_current_value(); | |
2149 | on_oscilloscope_activate(false); | |
2150 | engine.oscilloscope.set_mul_buffer(mul_buffer, jack.get_jack_bs()); | |
2151 | on_oscilloscope_activate(true); | |
2152 | } else { | |
2153 | set_osc_size(); | |
2154 | } | |
2155 | } | |
2156 | ||
2157 | void MainWindow::add_osc_size_menu() { | |
2158 | Glib::ustring s = "<menubar><menu action=\"OptionsMenu\"><menu action=\"OscBuffer\">"; | |
2159 | Gtk::RadioButtonGroup group; | |
2160 | int osc_buffer_size = 1; | |
2161 | for (int i = 1; i <= 6; ++i) { | |
2162 | Glib::ustring name = "*" + gx_system::to_string(osc_buffer_size); | |
2163 | Glib::ustring actname = Glib::ustring::compose("buffer size %1", name); | |
2164 | s += Glib::ustring::compose("<menuitem action=\"%1\"/>", actname); | |
2165 | Glib::RefPtr<Gtk::RadioAction> action = Gtk::RadioAction::create(group, actname, name); | |
2166 | actions.group->add(action); | |
2167 | if (i == 1) { | |
2168 | action->signal_changed().connect( | |
2169 | sigc::mem_fun(*this, &MainWindow::change_osc_buffer)); | |
2170 | actions.osc_buffer_size = action; | |
2171 | } | |
2172 | action->property_value().set_value(osc_buffer_size); | |
2173 | osc_buffer_size++; | |
2174 | } | |
2175 | s.append("</menu></menu></menubar>"); | |
2176 | uimanager->add_ui_from_string(s); | |
2177 | } | |
2178 | ||
2137 | 2179 | void MainWindow::on_show_oscilloscope(bool v) { |
2138 | 2180 | if (v) { |
2139 | 2181 | // FIXME G_PRIORITY_DEFAULT_IDLE?? |
2428 | 2470 | int MainWindow::mainwin_height = -1; |
2429 | 2471 | int MainWindow::window_height = 0; |
2430 | 2472 | int MainWindow::preset_window_height = 0; |
2473 | int MainWindow::mul_buffer = 1; | |
2431 | 2474 | |
2432 | 2475 | MainWindow::MainWindow(gx_engine::GxEngine& engine_, gx_system::CmdlineOptions& options_, |
2433 | 2476 | gx_engine::ParamMap& pmap_, Gtk::Window *splash) |
2509 | 2552 | pmap.reg_par_non_preset("racktuner.scale_lim", "Limit", 0, 3.0, 1.0, 10.0, 1.0); |
2510 | 2553 | pmap.reg_par_non_preset("ui.tuner_reference_pitch", "?Tuner Reference Pitch", 0, 440, 427, 453, 0.1); |
2511 | 2554 | //pmap.reg_par("racktuner.scale_lim", "Limit", &scale_lim, 3.0, 1.0, 10.0, 1.0); FIXME add in detail view? |
2512 | ||
2555 | pmap.reg_non_midi_par("oscilloscope.bufferset",&mul_buffer,false,1,1,6); | |
2513 | 2556 | /* |
2514 | 2557 | ** create actions and some parameters |
2515 | 2558 | */ |
2547 | 2590 | // add dynamic submenus |
2548 | 2591 | add_skin_menu(); |
2549 | 2592 | add_latency_menu(); |
2593 | add_osc_size_menu(); | |
2550 | 2594 | amp_radio_menu.setup("<menubar><menu action=\"TubeMenu\">","</menu></menubar>",uimanager,actions.group); |
2551 | 2595 | |
2552 | 2596 | // add menubar, accelgroup and icon to main window |
2804 | 2848 | // state file, which means that the jack starter options are read from the |
2805 | 2849 | // standard state file (gx_head_rc or similar if -n is used) |
2806 | 2850 | gx_settings.loadstate(); |
2851 | if (!in_session) { | |
2852 | gx_settings.disable_autosave(gx_system::get_options().get_opt_auto_save()); | |
2853 | } | |
2807 | 2854 | if (!connect_jack(true, splash)) { |
2808 | 2855 | // not connected, must synthesize signal for initialization |
2809 | 2856 | jack.signal_client_change()(); |
2810 | 2857 | } |
2811 | 2858 | set_latency(); // make sure latency menu is updated |
2812 | ||
2859 | set_osc_size(); | |
2813 | 2860 | // we set the skin at this late point to avoid calling make_icons more |
2814 | 2861 | // than once |
2815 | 2862 | if (actions.skin->get_current_value() != skin) { |
537 | 537 | closeBox(); |
538 | 538 | } |
539 | 539 | |
540 | void StackBoxBuilder::make_rackbox_pre() { | |
541 | openHorizontalhideBox(""); | |
542 | create_selector("pre.select"); | |
543 | closeBox(); | |
544 | openVerticalBox(""); | |
545 | { | |
546 | openHorizontalBox(""); | |
547 | { | |
548 | create_selector("pre.select"); | |
549 | create_small_rackknob("pre.bass", "bass"); | |
550 | create_small_rackknob("pre.treble", "treble"); | |
551 | create_small_rackknobr("pre.Level", "level"); | |
552 | } | |
553 | closeBox(); | |
554 | } | |
555 | closeBox(); | |
556 | } | |
540 | 557 | void StackBoxBuilder::make_rackbox_jconv_mono() { |
541 | 558 | static gx_jconv::IRWindow *irw = gx_jconv::IRWindow::create(ui, engine.mono_convolver, window_icon, gx_settings, accels, 1); |
542 | 559 | openHorizontalhideBox(""); |
211 | 211 | { "feedback", &StackBoxBuilder::make_rackbox_feedback }, |
212 | 212 | //{ "amp.tonestack", &StackBoxBuilder::make_rackbox_amp_tonestack }, |
213 | 213 | { "cab", &StackBoxBuilder::make_rackbox_cab }, |
214 | { "pre", &StackBoxBuilder::make_rackbox_pre }, | |
214 | 215 | { "jconv_mono", &StackBoxBuilder::make_rackbox_jconv_mono }, |
215 | 216 | { "midi_out", &StackBoxBuilder::make_rackbox_midi_out }, |
216 | 217 | // stereo |
80 | 80 | ConvolverMonoAdapter mono_convolver; |
81 | 81 | ConvolverStereoAdapter stereo_convolver; |
82 | 82 | CabinetConvolver cabinet; |
83 | PreampConvolver preamp; | |
83 | 84 | ContrastConvolver contrast; |
84 | 85 | // |
85 | 86 | LadspaLoader ladspaloader; |
223 | 223 | static float* buffer; |
224 | 224 | static unsigned int size; |
225 | 225 | static void fill_buffer(int count, float *input0, float *output0, PluginDef*); |
226 | static int osc_register(const ParamReg& reg); | |
226 | 227 | static int activate(bool start, PluginDef *p); |
227 | 228 | void change_buffersize(unsigned int); |
229 | int mul_buffer; | |
228 | 230 | public: |
229 | 231 | Plugin plugin; |
230 | 232 | sigc::signal<int, bool> activation; |
233 | 235 | gx_ui::UiSignalBool visible; |
234 | 236 | void clear_buffer(); |
235 | 237 | inline float *get_buffer() { return buffer; } |
238 | int get_mul_buffer() { return mul_buffer; } | |
239 | void set_mul_buffer(int a, unsigned int b) { mul_buffer = a; change_buffersize(b); } | |
236 | 240 | OscilloscopeAdapter(gx_ui::GxUI *ui, ModuleSequencer& engine); |
237 | 241 | }; |
238 | 242 | |
458 | 462 | |
459 | 463 | |
460 | 464 | /**************************************************************** |
465 | ** class PreampConvolver | |
466 | */ | |
467 | ||
468 | #include "faust/preamp_impulse_former.h" | |
469 | ||
470 | class PreampConvolver: public BaseConvolver { | |
471 | private: | |
472 | int current_pre; | |
473 | float level; | |
474 | int preamp; | |
475 | float bass; | |
476 | float treble; | |
477 | float sum; | |
478 | value_pair *pre_names; | |
479 | preamp_impulse_former::Dsp impf; | |
480 | static void run_pre_conf(int count, float *input, float *output, PluginDef*); | |
481 | static int register_pre(const ParamReg& reg); | |
482 | bool do_update(); | |
483 | virtual void check_update(); | |
484 | virtual bool start(bool force = false); | |
485 | bool preamp_changed() { return current_pre != preamp; } | |
486 | void update_preamp() { current_pre = preamp; } | |
487 | bool sum_changed() { return abs(sum - (level + bass + treble)) > 0.01; } | |
488 | void update_sum() { sum = level + bass + treble; } | |
489 | public: | |
490 | PreampConvolver(EngineControl& engine, sigc::slot<void> sync, gx_resample::BufferResampler& resamp); | |
491 | ~PreampConvolver(); | |
492 | }; | |
493 | ||
494 | /**************************************************************** | |
461 | 495 | ** class ContrastConvolver |
462 | 496 | */ |
463 | 497 |
601 | 601 | Glib::RefPtr<Gtk::Action> compress; |
602 | 602 | Glib::RefPtr<Gtk::Action> expand; |
603 | 603 | Glib::RefPtr<Gtk::Action> jack_latency_menu; |
604 | Glib::RefPtr<Gtk::Action> osc_buffer_menu; | |
604 | 605 | Glib::RefPtr<Gtk::Action> jackstartup; |
605 | 606 | Glib::RefPtr<Gtk::Action> loadladspa; |
606 | 607 | |
629 | 630 | |
630 | 631 | Glib::RefPtr<Gtk::RadioAction> skin; |
631 | 632 | Glib::RefPtr<Gtk::RadioAction> latency; |
633 | Glib::RefPtr<Gtk::RadioAction> osc_buffer_size; | |
632 | 634 | |
633 | 635 | // preset window |
634 | 636 | Glib::RefPtr<Gtk::Action> new_bank; |
645 | 647 | static int mainwin_height; |
646 | 648 | static int window_height; |
647 | 649 | static int preset_window_height; |
650 | static int mul_buffer; | |
648 | 651 | Freezer freezer; |
649 | 652 | PluginDict plugin_dict; |
650 | 653 | int oldpos; |
806 | 809 | void user_disable_latency_warn(Gtk::CheckButton* disable_warn); |
807 | 810 | int gx_wait_latency_warn(); |
808 | 811 | void set_latency(); |
812 | void set_osc_size(); | |
813 | void add_osc_size_menu(); | |
814 | void change_osc_buffer(Glib::RefPtr<Gtk::RadioAction> action); | |
809 | 815 | void on_select_jack_control(); |
810 | 816 | void on_load_ladspa(); |
811 | 817 | void delete_select_jack_control(); |
118 | 118 | inline gx_system::CmdlineOptions& get_options() const { return options; } |
119 | 119 | static bool check_settings_dir(gx_system::CmdlineOptions& opt, bool *need_new_preset); |
120 | 120 | void loadstate(); |
121 | bool get_auto_save_state() { return no_autosave;} | |
121 | 122 | void disable_autosave(bool v) { no_autosave = v; } |
122 | 123 | void auto_save_state(); |
123 | 124 | Glib::RefPtr<PluginPresetList> load_plugin_preset_list(const Glib::ustring& id, bool factory) const; |
206 | 206 | void make_rackbox_feedback(); |
207 | 207 | void make_rackbox_amp_tonestack(); |
208 | 208 | void make_rackbox_cab(); |
209 | void make_rackbox_pre(); | |
209 | 210 | void make_rackbox_jconv_mono(); |
210 | 211 | void make_rackbox_midi_out(); |
211 | 212 | // stereo |
296 | 296 | vector<Glib::ustring> jack_outputs; |
297 | 297 | Glib::ustring jack_uuid; |
298 | 298 | Glib::ustring jack_uuid2; |
299 | bool jack_noconnect; | |
300 | Glib::ustring jack_servername; | |
299 | 301 | string load_file; |
300 | 302 | string builder_dir; |
301 | 303 | string style_dir; |
310 | 312 | PathList IR_pathlist; |
311 | 313 | Glib::ustring rcset; |
312 | 314 | bool lterminal; |
315 | bool a_save; | |
313 | 316 | static CmdlineOptions *instance; |
314 | 317 | void make_ending_slash(string& dirpath); |
315 | 318 | string get_opskin(); |
347 | 350 | const Glib::ustring& get_jack_uuid2() const { return jack_uuid2; } |
348 | 351 | const Glib::ustring& get_jack_midi() const { return jack_midi; } |
349 | 352 | const Glib::ustring& get_jack_input() const { return jack_input; } |
353 | const Glib::ustring& get_jack_servername() const { return jack_servername; } | |
354 | bool get_jack_noconnect() const { return jack_noconnect; } | |
355 | bool get_opt_auto_save() const { return a_save; } | |
350 | 356 | const PathList& get_IR_pathlist() const { return IR_pathlist; } |
351 | 357 | Glib::ustring get_jack_output(unsigned int n) const; |
352 | 358 | }; |
755 | 755 | NoiseGate noisegate; |
756 | 756 | ConvolverMonoAdapter mono_convolver; |
757 | 757 | CabinetConvolver cabinet; |
758 | PreampConvolver preamp; | |
758 | 759 | ContrastConvolver contrast; |
759 | 760 | public: |
760 | 761 | MonoEngine(const string& plugin_dir, ParamMap& param, ParameterGroups& groups, const gx_system::PathList& pathlist); |
909 | 910 | noisegate(), |
910 | 911 | mono_convolver(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), param, pathlist, ""), |
911 | 912 | cabinet(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp), |
913 | preamp(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp), | |
912 | 914 | contrast(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp) { |
913 | 915 | |
914 | 916 | mono_convolver.set_sync(true); |
915 | 917 | cabinet.set_sync(true); |
918 | preamp.set_sync(true); | |
916 | 919 | contrast.set_sync(true); |
917 | 920 | |
918 | 921 | load_static_plugins(); |
998 | 1001 | pl.add(&tonestack.plugin, PLUGIN_POS_RACK, PGN_GUI); |
999 | 1002 | pl.add(&mono_convolver.plugin, PLUGIN_POS_RACK, PGN_GUI); |
1000 | 1003 | pl.add(&cabinet.plugin, PLUGIN_POS_RACK, PGN_GUI); |
1004 | pl.add(&preamp.plugin, PLUGIN_POS_RACK, PGN_GUI); | |
1001 | 1005 | pl.add(pluginlib::abgate::plugin(), PLUGIN_POS_RACK); |
1002 | 1006 | pl.add(pluginlib::vibe::plugin_mono(), PLUGIN_POS_RACK); |
1003 | 1007 | } |
0 | 0 | // generated from file '../src/plugins/dunwah.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "gx_faust_support.h" |
4 | 4 | #include "gx_plugin.h" |
0 | 0 | // generated from file '../src/plugins/flanger_gx.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "gx_faust_support.h" |
4 | 4 | #include "gx_plugin.h" |
0 | 0 | // generated from file '../src/plugins/ts9sim.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "gx_faust_support.h" |
4 | 4 | #include "gx_plugin.h" |
0 | 0 | // generated from file '../src/plugins/zita_rev1.dsp' by dsp2cc: |
1 | // Code generated with Faust 0.9.43 (http://faust.grame.fr) | |
1 | // Code generated with Faust 0.9.46 (http://faust.grame.fr) | |
2 | 2 | |
3 | 3 | #include "gx_faust_support.h" |
4 | 4 | #include "gx_plugin.h" |
305 | 305 | double fSlow3 = (1.0 - fSlow2); |
306 | 306 | double fSlow4 = cos((fConst3 * fslider1)); |
307 | 307 | double fSlow5 = (1.0 - (fSlow4 * fSlow2)); |
308 | double fSlow6 = sqrt(((faustpower<2>(fSlow5) / faustpower<2>(fSlow3)) - 1.0)); | |
308 | double fSlow6 = sqrt(max(0, ((faustpower<2>(fSlow5) / faustpower<2>(fSlow3)) - 1.0))); | |
309 | 309 | double fSlow7 = (fSlow5 / fSlow3); |
310 | 310 | double fSlow8 = (fSlow7 - fSlow6); |
311 | 311 | double fSlow9 = (1.0 / tan((fConst4 * fslider2))); |
320 | 320 | double fSlow18 = faustpower<2>(fSlow17); |
321 | 321 | double fSlow19 = (1.0 - fSlow18); |
322 | 322 | double fSlow20 = (1.0 - (fSlow4 * fSlow18)); |
323 | double fSlow21 = sqrt(((faustpower<2>(fSlow20) / faustpower<2>(fSlow19)) - 1.0)); | |
323 | double fSlow21 = sqrt(max(0, ((faustpower<2>(fSlow20) / faustpower<2>(fSlow19)) - 1.0))); | |
324 | 324 | double fSlow22 = (fSlow20 / fSlow19); |
325 | 325 | double fSlow23 = (fSlow22 - fSlow21); |
326 | 326 | double fSlow24 = ((exp((fConst10 / fSlow13)) / fSlow17) - 1); |
329 | 329 | double fSlow27 = faustpower<2>(fSlow26); |
330 | 330 | double fSlow28 = (1.0 - fSlow27); |
331 | 331 | double fSlow29 = (1.0 - (fSlow4 * fSlow27)); |
332 | double fSlow30 = sqrt(((faustpower<2>(fSlow29) / faustpower<2>(fSlow28)) - 1.0)); | |
332 | double fSlow30 = sqrt(max(0, ((faustpower<2>(fSlow29) / faustpower<2>(fSlow28)) - 1.0))); | |
333 | 333 | double fSlow31 = (fSlow29 / fSlow28); |
334 | 334 | double fSlow32 = (fSlow31 - fSlow30); |
335 | 335 | double fSlow33 = ((exp((fConst15 / fSlow13)) / fSlow26) - 1); |
338 | 338 | double fSlow36 = faustpower<2>(fSlow35); |
339 | 339 | double fSlow37 = (1.0 - fSlow36); |
340 | 340 | double fSlow38 = (1.0 - (fSlow4 * fSlow36)); |
341 | double fSlow39 = sqrt(((faustpower<2>(fSlow38) / faustpower<2>(fSlow37)) - 1.0)); | |
341 | double fSlow39 = sqrt(max(0, ((faustpower<2>(fSlow38) / faustpower<2>(fSlow37)) - 1.0))); | |
342 | 342 | double fSlow40 = (fSlow38 / fSlow37); |
343 | 343 | double fSlow41 = (fSlow40 - fSlow39); |
344 | 344 | double fSlow42 = ((exp((fConst20 / fSlow13)) / fSlow35) - 1); |
347 | 347 | double fSlow45 = faustpower<2>(fSlow44); |
348 | 348 | double fSlow46 = (1.0 - fSlow45); |
349 | 349 | double fSlow47 = (1.0 - (fSlow4 * fSlow45)); |
350 | double fSlow48 = sqrt(((faustpower<2>(fSlow47) / faustpower<2>(fSlow46)) - 1.0)); | |
350 | double fSlow48 = sqrt(max(0, ((faustpower<2>(fSlow47) / faustpower<2>(fSlow46)) - 1.0))); | |
351 | 351 | double fSlow49 = (fSlow47 / fSlow46); |
352 | 352 | double fSlow50 = (fSlow49 - fSlow48); |
353 | 353 | double fSlow51 = ((exp((fConst25 / fSlow13)) / fSlow44) - 1); |
356 | 356 | double fSlow54 = faustpower<2>(fSlow53); |
357 | 357 | double fSlow55 = (1.0 - fSlow54); |
358 | 358 | double fSlow56 = (1.0 - (fSlow4 * fSlow54)); |
359 | double fSlow57 = sqrt(((faustpower<2>(fSlow56) / faustpower<2>(fSlow55)) - 1.0)); | |
359 | double fSlow57 = sqrt(max(0, ((faustpower<2>(fSlow56) / faustpower<2>(fSlow55)) - 1.0))); | |
360 | 360 | double fSlow58 = (fSlow56 / fSlow55); |
361 | 361 | double fSlow59 = (fSlow58 - fSlow57); |
362 | 362 | double fSlow60 = ((exp((fConst30 / fSlow13)) / fSlow53) - 1); |
365 | 365 | double fSlow63 = faustpower<2>(fSlow62); |
366 | 366 | double fSlow64 = (1.0 - fSlow63); |
367 | 367 | double fSlow65 = (1.0 - (fSlow4 * fSlow63)); |
368 | double fSlow66 = sqrt(((faustpower<2>(fSlow65) / faustpower<2>(fSlow64)) - 1.0)); | |
368 | double fSlow66 = sqrt(max(0, ((faustpower<2>(fSlow65) / faustpower<2>(fSlow64)) - 1.0))); | |
369 | 369 | double fSlow67 = (fSlow65 / fSlow64); |
370 | 370 | double fSlow68 = (fSlow67 - fSlow66); |
371 | 371 | double fSlow69 = ((exp((fConst35 / fSlow13)) / fSlow62) - 1); |
374 | 374 | double fSlow72 = faustpower<2>(fSlow71); |
375 | 375 | double fSlow73 = (1.0 - fSlow72); |
376 | 376 | double fSlow74 = (1.0 - (fSlow72 * fSlow4)); |
377 | double fSlow75 = sqrt(((faustpower<2>(fSlow74) / faustpower<2>(fSlow73)) - 1.0)); | |
377 | double fSlow75 = sqrt(max(0, ((faustpower<2>(fSlow74) / faustpower<2>(fSlow73)) - 1.0))); | |
378 | 378 | double fSlow76 = (fSlow74 / fSlow73); |
379 | 379 | double fSlow77 = (fSlow76 - fSlow75); |
380 | 380 | double fSlow78 = ((exp((fConst40 / fSlow13)) / fSlow71) - 1); |
22 | 22 | ts9nonlin = ffunction(float ts9nonlin(float), "ts9nonlin.h", ""); |
23 | 23 | ts9 = _ <: _ - ts9nonlin(X2-_) :> _; |
24 | 24 | fc = hslider("tone[log][name:Tone]", 400, 100, 1000, 1.03); |
25 | lowpass = component("filter.lib").lowpass1(fc); | |
25 | lowpass = component("filter.lib").lowpass(1,fc); | |
26 | 26 | gain = hslider("level[name:Level]", -16, -20, 4, 0.1) : component("music.lib").db2linear : smoothi(0.999); |
27 | 27 | }; |
7 | 7 | ] |
8 | 8 | |
9 | 9 | sources = [ # generate .so files that can be loaded by guitarix |
10 | #"dunwah.dsp", | |
10 | # "dunwah.dsp", | |
11 | 11 | ] |
12 | 12 | |
13 | 13 | lib_csource_defs = [ # put in static library linked with guitarix |
0 | #!/bin/bash | |
1 | ||
2 | #### export a guitarix preset-bank including settings for LADSPA plugins | |
3 | #### as preset-bank-name.tar.bz2. use -e preset-bankname | |
4 | #### import guitarix preset-bank from the preset-bank-name.tar.bz2 | |
5 | #### use -i preset-bankname. | |
6 | #### the script must run from the same directory | |
7 | #### where the preset-bank-name.tar.bz2 is located | |
8 | ||
9 | conf="none"; | |
10 | file="no"; | |
11 | while getopts eie:h o | |
12 | do case "$o" in | |
13 | e) conf="export";; | |
14 | i) conf="import";; | |
15 | h) echo "Usage: $0 [-e|-i] <guitarix-preset-bank-name> " ; | |
16 | echo " -e = export guitarix-preset-bank " ; | |
17 | echo " -i = import guitarix-preset-bank " && exit 1;; | |
18 | *) echo "Usage: $0 [-e|-i] <guitarix-preset-bank-name> " ; | |
19 | echo " -e = export guitarix-preset-bank " ; | |
20 | echo " -i = import guitarix-preset-bank " && exit 1;; | |
21 | esac | |
22 | done | |
23 | ||
24 | # Reset $@ | |
25 | shift `echo $OPTIND-1 | bc`; | |
26 | file=$1; | |
27 | DIR=$( cd "$( dirname "$0" )" && pwd ); | |
28 | ||
29 | if [ -n "$file" ];then | |
30 | if grep -q export <<<$conf;then | |
31 | cd $HOME/.config/guitarix; | |
32 | tar -cf $DIR/$file.tar.bz2 --bzip2 banks/$file.gx plugins/*.js ladspa_defs.js; | |
33 | echo "create $DIR/$file.tar.bz2"; | |
34 | echo "done"; | |
35 | exit 0; | |
36 | elif grep -q import <<<$conf;then | |
37 | tar -xjkf $file.tar.bz2 -C $HOME/.config/guitarix/ --exclude ladspa_defs.js; | |
38 | echo "extract $file.tar.bz2 to $HOME/.config/guitarix/"; | |
39 | tar -xf $file.tar.bz2 ladspa_defs.js; | |
40 | cat $HOME/.config/guitarix/ladspa_defs.js >> ladspa_defs.js; | |
41 | sort -u ladspa_defs.js | sed -e 's/^]//' -e '/^$/d' > ladspa_opt.js ; | |
42 | echo "]" >> ladspa_opt.js ; | |
43 | cat ladspa_opt.js > $HOME/.config/guitarix/ladspa_defs.js; | |
44 | rm "ladspa_opt.js"; | |
45 | rm "ladspa_defs.js"; | |
46 | echo "done"; | |
47 | exit 0; | |
48 | fi | |
49 | fi | |
50 | echo "Error: please use with [-e |-i] <guitarix-preset-bank-name>"; | |
51 | exit 0; |
23 | 23 | use_2to3 = True |
24 | 24 | |
25 | 25 | # used by waf dist and waf build |
26 | VERSION='0.23.3' | |
26 | VERSION='0.24.0' | |
27 | 27 | APPNAME='guitarix' |
28 | 28 | |
29 | good_faust_versions = ['0.9.43'] | |
29 | good_faust_versions = ['0.9.43','0.9.46'] | |
30 | 30 | |
31 | 31 | g_maxlen = 40 # maximum width of message for 2-column display |
32 | 32 | |
77 | 77 | default='-Wall', # -fomit-frame-pointer -ffast-math -fstrength-reduce -mmmx -mfpmath=sse -DUSE_XMMINTRIN -pipe |
78 | 78 | dest='cxxflags', |
79 | 79 | help='C++ base compiler flags [Default: %default]') |
80 | ||
81 | comp.add_option('--ldflags', | |
82 | type='string', | |
83 | default='', | |
84 | dest='ldflags', | |
85 | help='C++ base linker flags ') | |
80 | 86 | |
81 | 87 | comp.add_option('--optimization', |
82 | 88 | action='store_const', |
434 | 440 | ################################################################ |
435 | 441 | # guitarix waf configuration |
436 | 442 | # |
437 | ||
443 | ||
438 | 444 | def configure(conf): |
439 | 445 | opt = Options.options |
440 | 446 | if 'LINGUAS' in os.environ: conf.env['LINGUAS'] = os.environ['LINGUAS'] |
482 | 488 | if opt.python_wrapper or opt.glade_support: |
483 | 489 | conf.check_tool('compiler_cc') |
484 | 490 | conf.env['shlib_LINKFLAGS'].append("-fPIC") # error in waf 1.5.18? |
491 | # linker flags | |
492 | conf.env.append_value('LDFLAGS', opt.ldflags) | |
493 | conf.env['LINKFLAGS'] = conf.env['LDFLAGS'] | |
494 | ||
485 | 495 | # needed libaries |
486 | 496 | try: |
487 | 497 | conf.check_cfg(package='jack', atleast_version='0.116.2', max_version='1.8.0', args='--cflags --libs', uselib_store='JACK', mandatory=1) |
585 | 595 | if cpu_model: |
586 | 596 | display_msg("CPU version" , "%s" % cpu_model, "CYAN") |
587 | 597 | display_msg("C++ flags", " ".join(conf.env['CXXFLAGS']), 'CYAN') |
598 | display_msg("Link flags", " ".join(conf.env['LINKFLAGS']), 'CYAN') | |
588 | 599 | display_msg("Compiler %s version" %conf.env["CXX"], "%s" % ".".join(conf.env["CC_VERSION"]), "CYAN") |
589 | 600 | display_feature("Use prebuild faust files", not conf.env['FAUST']) |
590 | 601 | if not opt.faust_float: |