Codebase list guitarix / 6cbf2b5
Imported Debian patch 0.24.0-1 Roland Stigge authored 11 years ago Ross Gammon committed 8 years ago
152 changed file(s) with 1121 addition(s) and 340 deletion(s). Raw diff Collapse all Expand all
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
144
155 guitarix2 (0.17.0svn) unstable; urgency=low
166 * 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
06 guitarix (0.23.3-1) experimental; urgency=low
17
28 * New upstream release
66 dh $@
77
88 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
1013
1114 override_dh_auto_build:
12 ./waf build
15 ./waf build -v
1316
1417 override_dh_auto_clean:
1518 ./waf distclean
2121 ******************************************************************************/
2222
2323 #include "GxWaveView.h"
24 #include "GxGradient.h"
2425 #include <math.h>
2526
2627 #define P_(s) (s) // FIXME -> gettext
4849 static const int liveview_y = 80;
4950 static const int background_width = 282;
5051 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 }
5182
5283 static void wave_view_background(GxWaveView *waveview,GtkWidget *widget ,
5384 int liveviewx, int liveviewy)
209240 cairo_line_to (cr, liveviewx, liveviewy+25);
210241 cairo_pattern_t* linpat =
211242 cairo_pattern_create_linear (liveviewx, liveviewy-15,liveviewx, liveviewy+25);
212
213243 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);
216248 cairo_set_source (cr, linpat);
217249 cairo_close_path (cr);
218250
232264 cairo_pattern_create_linear (liveviewx, liveviewy,liveviewx+140, liveviewy);
233265
234266 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);
237270 cairo_set_source (cr, linpat);
238271 cairo_set_line_width (cr, 3.0);
239272 cairo_stroke (cr);
303336 P_("Text to be displayed at the bottom right"),
304337 0, 100, 70,
305338 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);
306347 }
307348
308349 static void gx_wave_view_init(GxWaveView *waveview)
6565
6666 style "guitarix_waveview"
6767 {
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
6872 fg[NORMAL] = { 0.48, 0.48, 0.12 } # RGBA: 0.8, 0.8, 0.2, 0.6
6973 font_name = "sans 6"
7074 }
8383 TB_6C16_250k = fconstant(int TUBE_TABLE_6C16_250k, "valve.h");
8484
8585 tubestageF(tb,vplus,divider,fck,Rk,Vk0) = tube : hpf with {
86 lpfk = lowpass1(fck);
86 lpfk = lowpass(1,fck);
8787 Rp = 100.0e3;
8888 VkC = Vk0 * (Rp/Rk);
8989 tube = (+ : -(Vk0) : Ftube(tb) : +(VkC-vplus)) ~ (*(Rk/Rp) : lpfk) : /(divider);
90 hpf = highpass1(31.0);
90 hpf = highpass(1,31.0);
9191 };
9292
9393 tubestage(tb,fck,Rk,Vk0) = tubestageF(tb,250.0,40.0,fck,Rk,Vk0);
193193 };
194194 };
195195
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 {
197197 C1 = tse.C1;
198198 C2 = tse.C2;
199199 C3 = tse.C3;
125125 distortion2 = _:cubicnl(drive2,drivelevel) : *(high_gain);
126126 distortion3 = _:cubicnl(drive3,drivelevel) : *(middle_gain_l);
127127 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);
129129
130130 //-resonator
131131 resonator = (+ <: (delay(4096, d-1) + delay(4096, d)) / 2) ~ *(1.0-a)
1313 hgroup("stage2", stage2)
1414 with {
1515 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);
1818 };
1919
2020
1313 hgroup("stage2", stage2)
1414 with {
1515 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);
1818
1919 } ;
2020
2828 with {
2929
3030 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);
3333
3434 } ;
3535
2828 preamp = vslider(".amp2.stage1.Pregain[alias]",0,-20,20,0.1) : db2linear : smoothi(0.999);
2929 */
3030 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)) :> _
3333 with {
3434 gain1 = ampctrl.gain1;
3535 /*
2828
2929 atten = 0.6;
3030 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);
3333
3434 };
3535
1616 with {
1717
1818 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);
2121
2222 } ;
2323
2929 preamp = vslider(".amp2.stage1.Pregain[alias]",0,-20,20,0.1) : db2linear : smoothi(0.999);
3030 */
3131 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)) :> _
3434 with {
3535 gain1 = ampctrl.gain1;
3636 /*
3333 atten = 0.6;
3434 stage1 = speakerbp(310.0, 12000.0) :
3535 *(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)))) :>
3838 notch1 : notch2 : notch3
3939 with {
4040 gain1 = ampctrl.gain1;
2929
3030 atten = 0.6;
3131 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);
3434
3535 } ;
3636
1414 hgroup("stage2", stage2)
1515 with {
1616 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);
1919 };
2020
2121
3838 with {
3939
4040 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);
4343
4444 };
4545
4848 with {
4949
5050 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);
5353
5454 } ;
5555
1414 with {
1515
1616 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);
1919
2020 } ;
2121
4646 preamp = vslider(".amp2.stage1.Pregain[alias]",0,-20,20,0.1) : db2linear : smoothi(0.999);
4747 */
4848 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)) :>_
5151 with {
5252 gain1 = ampctrl.gain1;
5353 /*
4646 preamp = vslider(".amp2.stage1.Pregain[alias]",0,-20,20,0.1) : db2linear : smoothi(0.999);
4747 */
4848 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)) :>_
5151 with {
5252 gain1 = ampctrl.gain1;
5353 /*
3232 atten = 0.6;
3333 stage1 = speakerbp(310.0, 12000.0) :
3434 *(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)))) :>
3737 notch1 : notch2 : notch3
3838 with {
3939 gain1 = ampctrl.gain1;
3333 atten = 0.6;
3434 stage1 = speakerbp(310.0, 12000.0)
3535 : *(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)))) :>
3838 notch1 : notch2 : notch3
3939 with {
4040 gain1 = ampctrl.gain1;
3333 atten = 0.6;
3434 stage1 = speakerbp(310.0, 12000.0) :
3535 *(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)))) :>
3838 notch1 : notch2 : notch3
3939 with {
4040 gain1 = ampctrl.gain1;
2929
3030 atten = 0.6;
3131 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);
3434
3535 } ;
3636
142142 distortion2 = _:cubicnl(0.4*drive,0.0) : *(1.584893192); // h
143143 distortion3 = _:cubicnl(1.0*drive,0.0) : *(1.584893192); //ml
144144 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);
146146
147147 wet_dry = (drive - 0.5) * 2;
148148 };
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";
21 declare version "1.0";
32 declare author "brummer";
43 declare license "BSD";
2120 smooth(c) = *(1-c) : +~*(c);
2221 level = hslider("gain", 0, -96, 4, 0.1) : db2linear : smooth(0.999);
2322
24 process = vgroup( "sloop", _ <:_, (capture : *(level)):>_ ) ;
23 process = vgroup( "SampleLooper", _ <:_, (capture : *(level)):>_ ) ;
2524
303303 m = vslider(".amp.tonestack.Middle[alias]", 0.5, 0, 1, 0.01);
304304 l = vslider(".amp.tonestack.Bass[alias]", 0.5, 0, 1, 0.01) : (_-1)*3.4 : exp;
305305
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 {
307309 C1 = tse.C1;
308310 C2 = tse.C2;
309311 C3 = tse.C3;
3535 'jconv_post_mono.dsp',
3636 'presence_level.dsp',
3737 'cabinet_impulse_former.dsp',
38 'preamp_impulse_former.dsp',
3839 ]
3940
4041 sources_static = [
00 // 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)
22
33
44 namespace autowah {
00 // 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)
22
33
44 namespace balance {
00 // 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)
22
33
44 namespace bassbooster {
00 // 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)
22
33
44 namespace biquad {
00 // 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)
22
33
44 namespace cabinet_impulse_former {
00 // 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)
22
33 #define FAUSTFLOAT float
44
00 // 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)
22
33
44 namespace chorus {
00 // 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)
22
33
44 namespace chorus_mono {
00 // 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)
22
33
44 namespace compressor {
00 // 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)
22
33
44 namespace crybaby {
00 // 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)
22
33
44 namespace delay {
00 // 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)
22
33
44 namespace echo {
00 // 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)
22
33
44 namespace expander {
00 // 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)
22
33
44 namespace flanger {
00 // 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)
22
33
44 namespace flanger_mono {
00 // 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)
22
33
44 namespace freeverb {
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33
44 namespace gx_ampout {
00 // 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)
22
33
44 namespace gx_ampout_ladspa {
00 // 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)
22
33
44 namespace gx_distortion {
00 // 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)
22
33
44 namespace gx_feedback {
00 // 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)
22
33
44 namespace gx_outputlevel {
00 // 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)
22
33
44 namespace gx_outputlevel_ladspa {
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33 #include "valve.h"
44
00 // 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)
22
33
44 namespace gxfeed {
00 // 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)
22
33
44 namespace gxnoamp {
00 // 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)
22
33
44 namespace impulseresponse {
00 // 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)
22
33
44 namespace jconv_post {
00 // 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)
22
33 #define FAUSTFLOAT float
44
00 // 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)
22
33
44 namespace jconv_post_mono {
00 // 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)
22
33 #define FAUSTFLOAT float
44
00 // 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)
22
33
44 namespace low_high_pass {
00 // 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)
22
33
44 namespace moog {
00 // 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)
22
33
44 namespace noise_shaper {
00 // 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)
22
33
44 namespace overdrive {
00 // 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)
22
33
44 namespace phaser {
00 // 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)
22
33
44 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
00 // 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)
22
33
44 namespace presence_level {
00 // 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)
22
33 #define FAUSTFLOAT float
44
00 // 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)
22
33
44 namespace selecteq {
00 // 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)
22
33
44 namespace softclip {
00 // 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)
22
33
44 namespace stereodelay {
00 // 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)
22
33
44 namespace stereoecho {
00 // 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)
22
33
44 namespace stereoverb {
00 // 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)
22
33
44 namespace tonecontroll {
00 // 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)
22
33
44 namespace tonestack_ac15 {
108108 double fSlow11 = ((fSlow7 + (fConst3 * (fSlow3 - fSlow9))) - 3);
109109 double fSlow12 = (1.0 / ((fConst3 * (0 - (fSlow3 + fSlow6))) - (1 + fSlow7)));
110110 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)))));
112112 double fSlow15 = (fConst5 * fSlow14);
113113 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))));
115115 double fSlow18 = (fConst6 * fSlow17);
116116 double fSlow19 = (fSlow18 + (fConst3 * (fSlow16 - fSlow15)));
117117 double fSlow20 = (fConst1 * fSlow14);
00 // 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)
22
33
44 namespace tonestack_ac30 {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (1.32e-08 + (((2.2000000000000004e-07 * fSlow16) + (fSlow0 * (5.951000000000001e-08 - fSlow1))) + (fSlow2 * (1.32e-06 + (4.8510000000000015e-06 * fSlow0)))));
109109 double fSlow20 = (0.00022050000000000002 + (fSlow9 + (fSlow8 + (5e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_ampeg {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (8.1169e-08 + (((1.6544000000000003e-07 * fSlow16) + (fSlow0 * (3.735875000000001e-07 - fSlow1))) + (fSlow2 * (3.24676e-06 + (1.2358500000000002e-05 * fSlow0)))));
109109 double fSlow20 = (0.0005617500000000001 + (fSlow9 + (fSlow8 + (0.00011750000000000001 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_ampeg_rev {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (3.9700000000000005e-08 + (((3.675000000000001e-07 * fSlow16) + (fSlow0 * (4.8222e-07 - fSlow1))) + (fSlow2 * (9.925e-07 + (1.1761750000000001e-05 * fSlow0)))));
109109 double fSlow20 = (0.001001 + (fSlow9 + (fSlow8 + (2.5e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_bassman {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (4.525e-08 + (((1.4e-07 * fSlow16) + (fSlow0 * (2.8437500000000003e-07 - fSlow1))) + (fSlow2 * (1.8100000000000002e-06 + (1.0125e-05 * fSlow0)))));
109109 double fSlow20 = (0.00050625 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_bogner {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (5.018112e-08 + (((1.7391e-07 * fSlow16) + (fSlow0 * (8.643102600000002e-07 - fSlow1))) + (fSlow2 * (1.5206400000000001e-06 + (2.3606220000000006e-05 * fSlow0)))));
109109 double fSlow20 = (0.0005022600000000001 + (fSlow9 + (fSlow8 + (5.4999999999999995e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_crunch {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (4.3428e-08 + (((4.5496e-07 * fSlow16) + (fSlow0 * (2.4468200000000005e-07 - fSlow1))) + (fSlow2 * (9.55416e-07 + (4.882548000000001e-06 * fSlow0)))));
109109 double fSlow20 = (0.00047220000000000004 + (fSlow9 + (fSlow8 + (4.84e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_default {
00 // 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)
22
33
44 namespace tonestack_fender_blues {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (6.1875e-08 + (((2.75e-07 * fSlow16) + (fSlow0 * (3.403125000000001e-07 - fSlow1))) + (fSlow2 * (6.1875e-07 + (3.0593750000000007e-06 * fSlow0)))));
109109 double fSlow20 = (0.00055625 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_fender_default {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (9.925e-08 + (((9.187500000000001e-07 * fSlow16) + (fSlow0 * (5.0055e-07 - fSlow1))) + (fSlow2 * (2.48125e-06 + (1.1779375000000001e-05 * fSlow0)))));
109109 double fSlow20 = (0.0010025 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_fender_deville {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (2.55375e-07 + (((9.912500000000003e-07 * fSlow16) + (fSlow0 * (1.4128125e-06 - fSlow1))) + (fSlow2 * (2.5537500000000007e-06 + (1.3784375000000003e-05 * fSlow0)))));
109109 double fSlow20 = (0.0025062500000000002 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_gibsen {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (1.9176000000000002e-07 + (((5.400000000000001e-07 * fSlow16) + (fSlow0 * (1.0654618000000002e-05 - fSlow1))) + (fSlow2 * (2.0400000000000004e-06 + (0.00011284700000000001 * fSlow0)))));
109109 double fSlow20 = (0.005642350000000001 + (fSlow9 + (fSlow8 + (2.5e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_groove {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (8.098288000000002e-08 + (((3.0937280000000007e-07 * fSlow16) + (fSlow0 * (2.893061600000001e-07 - fSlow1))) + (fSlow2 * (3.6810400000000007e-06 + (1.0875480000000001e-05 * fSlow0)))));
109109 double fSlow20 = (0.00049434 + (fSlow9 + (fSlow8 + (0.0001034 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_ibanez {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (1.0530000000000001e-07 + (((9.45e-07 * fSlow16) + (fSlow0 * (4.2808000000000006e-07 - fSlow1))) + (fSlow2 * (2.6324999999999998e-06 + (1.0027e-05 * fSlow0)))));
109109 double fSlow20 = (0.0010027 + (fSlow9 + (fSlow8 + (6.75e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_jcm2000 {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (9.955000000000001e-08 + (((3.08e-07 * fSlow16) + (fSlow0 * (3.781250000000001e-07 - fSlow1))) + (fSlow2 * (3.982e-06 + (1.2375000000000003e-05 * fSlow0)))));
109109 double fSlow20 = (0.0005625000000000001 + (fSlow9 + (fSlow8 + (0.000125 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_jcm800 {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (6.505928000000001e-08 + (((1.5013680000000003e-07 * fSlow16) + (fSlow0 * (2.893061600000001e-07 - fSlow1))) + (fSlow2 * (2.95724e-06 + (1.0875480000000001e-05 * fSlow0)))));
109109 double fSlow20 = (0.00049434 + (fSlow9 + (fSlow8 + (0.0001034 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_jtm45 {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (4.6926e-08 + (((9.801000000000002e-08 * fSlow16) + (fSlow0 * (3.433375000000001e-07 - fSlow1))) + (fSlow2 * (1.8770400000000002e-06 + (1.2248500000000003e-05 * fSlow0)))));
109109 double fSlow20 = (0.0005567500000000001 + (fSlow9 + (fSlow8 + (6.75e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_m2199 {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (1.0633750000000002e-07 + (((3.2900000000000005e-07 * fSlow16) + (fSlow0 * (1.4614062500000001e-06 - fSlow1))) + (fSlow2 * (1.0633750000000002e-06 + (1.38796875e-05 * fSlow0)))));
109109 double fSlow20 = (0.00118125 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_mesa {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (2.48125e-07 + (((9.187500000000001e-07 * fSlow16) + (fSlow0 * (3.0182812500000004e-06 - fSlow1))) + (fSlow2 * (2.48125e-06 + (2.9448437500000007e-05 * fSlow0)))));
109109 double fSlow20 = (0.0025062500000000002 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_mlead {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (8.690000000000002e-08 + (((1.815e-07 * fSlow16) + (fSlow0 * (3.781250000000001e-07 - fSlow1))) + (fSlow2 * (3.4760000000000007e-06 + (1.2375000000000003e-05 * fSlow0)))));
109109 double fSlow20 = (0.0005625000000000001 + (fSlow9 + (fSlow8 + (0.000125 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_peavey {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (4.585680000000001e-08 + (((2.0196000000000004e-07 * fSlow16) + (fSlow0 * (2.2567600000000002e-07 - fSlow1))) + (fSlow2 * (5.732100000000001e-07 + (2.4497000000000004e-06 * fSlow0)))));
109109 double fSlow20 = (0.00044540000000000004 + (fSlow9 + (fSlow8 + (6.75e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_princeton {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (4.764000000000001e-08 + (((9.187500000000001e-07 * fSlow16) + (fSlow0 * (1.2265872000000003e-07 - fSlow1))) + (fSlow2 * (2.48125e-06 + (5.6541000000000015e-06 * fSlow0)))));
109109 double fSlow20 = (0.00048120000000000004 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_roland {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (3.1116000000000005e-08 + (((2.829e-07 * fSlow16) + (fSlow0 * (3.2176800000000005e-07 - fSlow1))) + (fSlow2 * (7.779000000000002e-07 + (6.8142000000000025e-06 * fSlow0)))));
109109 double fSlow20 = (0.00033240000000000006 + (fSlow9 + (fSlow8 + (6e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_soldano {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (8.084000000000001e-08 + (((2.2090000000000003e-07 * fSlow16) + (fSlow0 * (3.146250000000001e-07 - fSlow1))) + (fSlow2 * (3.2336000000000007e-06 + (1.0235000000000001e-05 * fSlow0)))));
109109 double fSlow20 = (0.00051175 + (fSlow9 + (fSlow8 + (0.00011750000000000001 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_sovtek {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (6.141960000000001e-08 + (((4.859800000000001e-07 * fSlow16) + (fSlow0 * (1.0113400000000001e-07 - fSlow1))) + (fSlow2 * (6.141960000000001e-06 + (4.943400000000001e-06 * fSlow0)))));
109109 double fSlow20 = (0.00022470000000000001 + (fSlow9 + (fSlow8 + (0.00023500000000000002 * fSlow16))));
00 // 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)
22
33
44 namespace tonestack_twin {
103103 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
104104 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
105105 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)))));
107107 double fSlow18 = (fConst2 * fSlow17);
108108 double fSlow19 = (4.764000000000001e-08 + (((4.410000000000001e-07 * fSlow16) + (fSlow0 * (4.846640000000001e-07 - fSlow1))) + (fSlow2 * (1.1910000000000001e-06 + (1.1764100000000001e-05 * fSlow0)))));
109109 double fSlow20 = (0.0010012 + (fSlow9 + (fSlow8 + (3e-05 * fSlow16))));
00 // 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)
22
33
44 namespace tremolo {
00 // 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)
22
33 namespace vibe_lfo_sine {
44 static int iVec0[2];
00 // 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)
22
33 namespace vibe_mono_lfo_sine {
44 static int iVec0[2];
99 (gtk_accel_path "<Actions>/Main/Expand" "<Control>e")
1010 (gtk_accel_path "<Actions>/Main/Help" "F1")
1111 (gtk_accel_path "<Actions>/Main/JackLatency" "")
12 (gtk_accel_path "<Actions>/Main/OscBuffer" "")
1213 (gtk_accel_path "<Actions>/Main/JackPorts" "<Control>p")
1314 (gtk_accel_path "<Actions>/Main/JackServerConnection" "<Control>c")
1415 (gtk_accel_path "<Actions>/Main/JackStartup" "<Control>j")
55 <object class="GtkWindow" id="window1">
66 <property name="can_focus">False</property>
77 <child>
8 <object class="GtkHBox" id="rackbox">
8 <object class="GtkVBox" id="vbox1">
99 <property name="visible">True</property>
1010 <property name="can_focus">False</property>
1111 <child>
12 <object class="GtkHBox" id="hbox1">
12 <object class="GtkHBox" id="minibox">
1313 <property name="visible">True</property>
1414 <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">
1718 <property name="visible">True</property>
1819 <property name="can_focus">True</property>
1920 <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>
2527 <property name="position">0</property>
2628 </packing>
2729 </child>
2830 <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>
6239 <property name="position">1</property>
6340 </packing>
6441 </child>
6542 </object>
6643 <packing>
6744 <property name="expand">True</property>
68 <property name="fill">False</property>
45 <property name="fill">True</property>
6946 <property name="position">0</property>
7047 </packing>
7148 </child>
7249 <child>
73 <object class="GtkVBox" id="vbox2">
50 <object class="GtkHBox" id="rackbox">
7451 <property name="visible">True</property>
7552 <property name="can_focus">False</property>
7653 <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>
85111 <property name="position">0</property>
86112 </packing>
87113 </child>
88114 <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>
98147 <property name="fill">True</property>
99148 <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>
100211 </packing>
101212 </child>
102213 </object>
106217 <property name="position">1</property>
107218 </packing>
108219 </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>
171220 </object>
172221 </child>
173222 </object>
2424 */
2525
2626 #include "engine.h"
27 #include "valve.h"
2728
2829 #include "gx_faust_plugins.h"
2930 #include "../plugins/pluginlib.h"
134135 stereo_convolver(*this, sigc::mem_fun(stereo_chain, &StereoModuleChain::sync),
135136 param, options.get_IR_pathlist(), options.get_sys_IR_dir()),
136137 cabinet(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp),
138 preamp(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp),
137139 contrast(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp),
138140 ladspaloader(options) {
139141 #ifdef USE_MIDI_OUT
141143 #endif
142144
143145 load_static_plugins();
144
145146 // loaded from shared libs
146147 if (!plugin_dir.empty()) {
147148 pluginlist.load_from_path(plugin_dir, PLUGIN_POS_RACK);
236237 pl.add(gx_effects::gx_feedback::plugin(), PLUGIN_POS_RACK, PGN_GUI);
237238 pl.add(&tonestack.plugin, PLUGIN_POS_RACK, PGN_GUI);
238239 pl.add(&cabinet.plugin, PLUGIN_POS_RACK, PGN_GUI);
240 pl.add(&preamp.plugin, PLUGIN_POS_RACK, PGN_GUI);
239241 pl.add(pluginlib::abgate::plugin(), PLUGIN_POS_RACK);
240242 pl.add(pluginlib::vibe::plugin_mono(), PLUGIN_POS_RACK);
241243 // stereo
838838 return 0;
839839 }
840840
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 }
841982
842983 /****************************************************************
843984 ** class ContrastConvolver
169169 OscilloscopeAdapter::OscilloscopeAdapter(
170170 gx_ui::GxUI *ui, ModuleSequencer& engine)
171171 : PluginDef(),
172 mul_buffer(1),
172173 plugin(),
173174 activation(),
174175 size_change(),
188189 sigc::mem_fun(*this, &OscilloscopeAdapter::change_buffersize));
189190 }
190191
192 int OscilloscopeAdapter::osc_register(const ParamReg& reg) {
193
194 return 0;
195 }
196
191197 void OscilloscopeAdapter::change_buffersize(unsigned int size_) {
192198 //FIXME waveview display needs mutex
193199 size_change(0);
194200 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;
197204 clear_buffer();
198 size_change(size_);
205 size_change(size_* d);
199206 delete b;
200207 }
201208
203210 unsigned int OscilloscopeAdapter::size = 0;
204211
205212 // 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);
209220 }
210221
211222 int OscilloscopeAdapter::activate(bool start, PluginDef *plugin) {
184184 jackopt |= JackUseExactName;
185185 }
186186
187 std::string ServerName = opt.get_jack_servername();
188
187189 set_jack_down(false);
188190 set_jack_exit(true);
189191 engine.set_stateflag(gx_engine::GxEngine::SF_INITIALIZING);
200202 client_name.c_str(), JackOptions(jackopt | JackSessionID),
201203 &jackstat, opt.get_jack_uuid().c_str());
202204 } else {
205 if (ServerName.empty()) {
203206 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 }
204211 }
205212 #else
213 if (ServerName.empty()) {
206214 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 }
207219 #endif
208220 // ----- only start the insert gxjack.client when the amp gxjack.client is true
209221 if (client) {
223235 JackOptions(jackopt | JackSessionID | JackUseExactName),
224236 &jackstat, opt.get_jack_uuid2().c_str());
225237 } else {
238 if (ServerName.empty()) {
226239 client_insert = jack_client_open(
227240 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 }
229248 }
230249 #else
250 if (ServerName.empty()) {
231251 client_insert = jack_client_open(
232252 client_insert_name.c_str(),
233253 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 }
234260 #endif
235261 if (!client_insert) {
236262 jack_client_close(client);
273299
274300 gx_jack_callbacks();
275301 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()) {
277303 // when not loaded by session manager
278304 gx_jack_init_port_connection();
279305 }
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 };
101101 { "ui.3 Band EQ", "ui.tonemodul" },
102102 { "ui.BiQuad Filter", "ui.biquad" },
103103 { "ui.Cabinet", "ui.cab" },
104 { "ui.Preamp", "ui.pre" },
104105 { "ui.Chorus", "ui.chorus" },
105106 { "ui.Chorus Mono", "ui.chorus_mono" },
106107 { "ui.Compressor", "ui.compressor" },
275275 jack_outputs(),
276276 jack_uuid(),
277277 jack_uuid2(),
278 jack_noconnect(false),
279 jack_servername(),
278280 load_file(shellvar("GUITARIX_LOAD_FILE")),
279281 builder_dir(GX_BUILDER_DIR),
280282 style_dir(GX_STYLE_DIR),
289291 IR_pathlist(),
290292 rcset(shellvar("GUITARIX_RC_STYLE")),
291293 lterminal(false),
294 a_save(false),
292295 #ifndef NDEBUG
293296 dump_parameter(false),
294297 #endif
352355 opt_jack_midi.set_long_name("jack-midi");
353356 opt_jack_midi.set_description("Guitarix JACK midi control");
354357 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");
355362 Glib::OptionEntry opt_jack_instance;
356363 opt_jack_instance.set_short_name('n');
357364 opt_jack_instance.set_long_name("name");
365372 opt_jack_uuid2.set_short_name('A');
366373 opt_jack_uuid2.set_long_name("jack-uuid2");
367374 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");
368380 optgroup_jack.add_entry(opt_jack_input, jack_input);
369381 optgroup_jack.add_entry(opt_jack_output, jack_outputs);
370382 optgroup_jack.add_entry(opt_jack_midi, jack_midi);
383 optgroup_jack.add_entry(opt_jack_noconnect, jack_noconnect);
371384 optgroup_jack.add_entry(opt_jack_instance, jack_instance);
372385 optgroup_jack.add_entry(opt_jack_uuid, jack_uuid);
373386 optgroup_jack.add_entry(opt_jack_uuid2, jack_uuid2);
387 optgroup_jack.add_entry(opt_jack_servername, jack_servername);
374388
375389 // FILE options
376390
386400 opt_plugin_dir.set_description(_("directory with guitarix plugins (.so files)"));
387401 opt_plugin_dir.set_arg_description("DIR");
388402 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);
389408
390409 // DEBUG options
391410 Glib::OptionEntry opt_builder_dir;
122122
123123 LadspaDsp::LadspaDsp(const plugdesc *plug, void *handle_, const LADSPA_Descriptor *desc_, bool mono)
124124 : 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) {
126126 version = PLUGINDEF_VERSION;
127127 id = pd->id_str.c_str();
128128 category = pd->category.c_str();
299299 pn.erase(rem);
300300 }
301301 while ((rem = pn.find_last_of(" ")) == pn.size()-1) {
302 pn.erase(rem);
302 pn.erase(rem);
303303 }
304304 rem = 0;
305305 size_t rem1 = 0;
392392 LadspaDsp& self = *static_cast<LadspaDsp*>(b.plugin);
393393 b.openHorizontalhideBox("");
394394 if (self.pd->master_idx >= 0) {
395 int n = 0;
395 int n = 0;
396396 for (std::vector<paradesc*>::const_iterator it = self.pd->names.begin(); it != self.pd->names.end(); ++it, ++n) {
397397 if ((n)==self.pd->master_idx) {
398398 switch ((*it)->tp) {
107107 gx_system::gx_print_warning(
108108 _("signal_handler"), _("signal USR1 received, save settings"));
109109 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);
110112 gx_preset::GxSettings::instance->auto_save_state();
113 gx_preset::GxSettings::instance->disable_autosave(cur_state);
111114 }
112115 }
113116
341344
342345 try {
343346 // ----------------------- init basic subsystems ----------------------
344 Glib::thread_init();
347 #ifndef G_DISABLE_DEPRECATED
348 if (!g_thread_supported ()) {
349 Glib::thread_init();
350 }
351 #endif
345352 Glib::init();
346353 Gxw::init();
347354
14101410 actions.group->add(Gtk::Action::create("EngineMenu",_("_Engine")));
14111411 actions.jack_latency_menu = Gtk::Action::create("JackLatency",_("_Latency"));
14121412 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);
14131415 actions.group->add(Gtk::Action::create("PresetsMenu",_("_Presets")));
14141416 actions.group->add(Gtk::Action::create("PresetListMenu","--"));
14151417 actions.group->add(Gtk::Action::create("PluginsMenu",_("P_lugins")));
21342136 ** oscilloscope handling
21352137 */
21362138
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
21372179 void MainWindow::on_show_oscilloscope(bool v) {
21382180 if (v) {
21392181 // FIXME G_PRIORITY_DEFAULT_IDLE??
24282470 int MainWindow::mainwin_height = -1;
24292471 int MainWindow::window_height = 0;
24302472 int MainWindow::preset_window_height = 0;
2473 int MainWindow::mul_buffer = 1;
24312474
24322475 MainWindow::MainWindow(gx_engine::GxEngine& engine_, gx_system::CmdlineOptions& options_,
24332476 gx_engine::ParamMap& pmap_, Gtk::Window *splash)
25092552 pmap.reg_par_non_preset("racktuner.scale_lim", "Limit", 0, 3.0, 1.0, 10.0, 1.0);
25102553 pmap.reg_par_non_preset("ui.tuner_reference_pitch", "?Tuner Reference Pitch", 0, 440, 427, 453, 0.1);
25112554 //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);
25132556 /*
25142557 ** create actions and some parameters
25152558 */
25472590 // add dynamic submenus
25482591 add_skin_menu();
25492592 add_latency_menu();
2593 add_osc_size_menu();
25502594 amp_radio_menu.setup("<menubar><menu action=\"TubeMenu\">","</menu></menubar>",uimanager,actions.group);
25512595
25522596 // add menubar, accelgroup and icon to main window
28042848 // state file, which means that the jack starter options are read from the
28052849 // standard state file (gx_head_rc or similar if -n is used)
28062850 gx_settings.loadstate();
2851 if (!in_session) {
2852 gx_settings.disable_autosave(gx_system::get_options().get_opt_auto_save());
2853 }
28072854 if (!connect_jack(true, splash)) {
28082855 // not connected, must synthesize signal for initialization
28092856 jack.signal_client_change()();
28102857 }
28112858 set_latency(); // make sure latency menu is updated
2812
2859 set_osc_size();
28132860 // we set the skin at this late point to avoid calling make_icons more
28142861 // than once
28152862 if (actions.skin->get_current_value() != skin) {
537537 closeBox();
538538 }
539539
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 }
540557 void StackBoxBuilder::make_rackbox_jconv_mono() {
541558 static gx_jconv::IRWindow *irw = gx_jconv::IRWindow::create(ui, engine.mono_convolver, window_icon, gx_settings, accels, 1);
542559 openHorizontalhideBox("");
211211 { "feedback", &StackBoxBuilder::make_rackbox_feedback },
212212 //{ "amp.tonestack", &StackBoxBuilder::make_rackbox_amp_tonestack },
213213 { "cab", &StackBoxBuilder::make_rackbox_cab },
214 { "pre", &StackBoxBuilder::make_rackbox_pre },
214215 { "jconv_mono", &StackBoxBuilder::make_rackbox_jconv_mono },
215216 { "midi_out", &StackBoxBuilder::make_rackbox_midi_out },
216217 // stereo
8080 ConvolverMonoAdapter mono_convolver;
8181 ConvolverStereoAdapter stereo_convolver;
8282 CabinetConvolver cabinet;
83 PreampConvolver preamp;
8384 ContrastConvolver contrast;
8485 //
8586 LadspaLoader ladspaloader;
223223 static float* buffer;
224224 static unsigned int size;
225225 static void fill_buffer(int count, float *input0, float *output0, PluginDef*);
226 static int osc_register(const ParamReg& reg);
226227 static int activate(bool start, PluginDef *p);
227228 void change_buffersize(unsigned int);
229 int mul_buffer;
228230 public:
229231 Plugin plugin;
230232 sigc::signal<int, bool> activation;
233235 gx_ui::UiSignalBool visible;
234236 void clear_buffer();
235237 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); }
236240 OscilloscopeAdapter(gx_ui::GxUI *ui, ModuleSequencer& engine);
237241 };
238242
458462
459463
460464 /****************************************************************
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 /****************************************************************
461495 ** class ContrastConvolver
462496 */
463497
601601 Glib::RefPtr<Gtk::Action> compress;
602602 Glib::RefPtr<Gtk::Action> expand;
603603 Glib::RefPtr<Gtk::Action> jack_latency_menu;
604 Glib::RefPtr<Gtk::Action> osc_buffer_menu;
604605 Glib::RefPtr<Gtk::Action> jackstartup;
605606 Glib::RefPtr<Gtk::Action> loadladspa;
606607
629630
630631 Glib::RefPtr<Gtk::RadioAction> skin;
631632 Glib::RefPtr<Gtk::RadioAction> latency;
633 Glib::RefPtr<Gtk::RadioAction> osc_buffer_size;
632634
633635 // preset window
634636 Glib::RefPtr<Gtk::Action> new_bank;
645647 static int mainwin_height;
646648 static int window_height;
647649 static int preset_window_height;
650 static int mul_buffer;
648651 Freezer freezer;
649652 PluginDict plugin_dict;
650653 int oldpos;
806809 void user_disable_latency_warn(Gtk::CheckButton* disable_warn);
807810 int gx_wait_latency_warn();
808811 void set_latency();
812 void set_osc_size();
813 void add_osc_size_menu();
814 void change_osc_buffer(Glib::RefPtr<Gtk::RadioAction> action);
809815 void on_select_jack_control();
810816 void on_load_ladspa();
811817 void delete_select_jack_control();
118118 inline gx_system::CmdlineOptions& get_options() const { return options; }
119119 static bool check_settings_dir(gx_system::CmdlineOptions& opt, bool *need_new_preset);
120120 void loadstate();
121 bool get_auto_save_state() { return no_autosave;}
121122 void disable_autosave(bool v) { no_autosave = v; }
122123 void auto_save_state();
123124 Glib::RefPtr<PluginPresetList> load_plugin_preset_list(const Glib::ustring& id, bool factory) const;
206206 void make_rackbox_feedback();
207207 void make_rackbox_amp_tonestack();
208208 void make_rackbox_cab();
209 void make_rackbox_pre();
209210 void make_rackbox_jconv_mono();
210211 void make_rackbox_midi_out();
211212 // stereo
296296 vector<Glib::ustring> jack_outputs;
297297 Glib::ustring jack_uuid;
298298 Glib::ustring jack_uuid2;
299 bool jack_noconnect;
300 Glib::ustring jack_servername;
299301 string load_file;
300302 string builder_dir;
301303 string style_dir;
310312 PathList IR_pathlist;
311313 Glib::ustring rcset;
312314 bool lterminal;
315 bool a_save;
313316 static CmdlineOptions *instance;
314317 void make_ending_slash(string& dirpath);
315318 string get_opskin();
347350 const Glib::ustring& get_jack_uuid2() const { return jack_uuid2; }
348351 const Glib::ustring& get_jack_midi() const { return jack_midi; }
349352 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; }
350356 const PathList& get_IR_pathlist() const { return IR_pathlist; }
351357 Glib::ustring get_jack_output(unsigned int n) const;
352358 };
755755 NoiseGate noisegate;
756756 ConvolverMonoAdapter mono_convolver;
757757 CabinetConvolver cabinet;
758 PreampConvolver preamp;
758759 ContrastConvolver contrast;
759760 public:
760761 MonoEngine(const string& plugin_dir, ParamMap& param, ParameterGroups& groups, const gx_system::PathList& pathlist);
909910 noisegate(),
910911 mono_convolver(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), param, pathlist, ""),
911912 cabinet(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp),
913 preamp(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp),
912914 contrast(*this, sigc::mem_fun(mono_chain, &MonoModuleChain::sync), resamp) {
913915
914916 mono_convolver.set_sync(true);
915917 cabinet.set_sync(true);
918 preamp.set_sync(true);
916919 contrast.set_sync(true);
917920
918921 load_static_plugins();
9981001 pl.add(&tonestack.plugin, PLUGIN_POS_RACK, PGN_GUI);
9991002 pl.add(&mono_convolver.plugin, PLUGIN_POS_RACK, PGN_GUI);
10001003 pl.add(&cabinet.plugin, PLUGIN_POS_RACK, PGN_GUI);
1004 pl.add(&preamp.plugin, PLUGIN_POS_RACK, PGN_GUI);
10011005 pl.add(pluginlib::abgate::plugin(), PLUGIN_POS_RACK);
10021006 pl.add(pluginlib::vibe::plugin_mono(), PLUGIN_POS_RACK);
10031007 }
00 // 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)
22
33 #include "gx_faust_support.h"
44 #include "gx_plugin.h"
00 // 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)
22
33 #include "gx_faust_support.h"
44 #include "gx_plugin.h"
00 // 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)
22
33 #include "gx_faust_support.h"
44 #include "gx_plugin.h"
00 // 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)
22
33 #include "gx_faust_support.h"
44 #include "gx_plugin.h"
305305 double fSlow3 = (1.0 - fSlow2);
306306 double fSlow4 = cos((fConst3 * fslider1));
307307 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)));
309309 double fSlow7 = (fSlow5 / fSlow3);
310310 double fSlow8 = (fSlow7 - fSlow6);
311311 double fSlow9 = (1.0 / tan((fConst4 * fslider2)));
320320 double fSlow18 = faustpower<2>(fSlow17);
321321 double fSlow19 = (1.0 - fSlow18);
322322 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)));
324324 double fSlow22 = (fSlow20 / fSlow19);
325325 double fSlow23 = (fSlow22 - fSlow21);
326326 double fSlow24 = ((exp((fConst10 / fSlow13)) / fSlow17) - 1);
329329 double fSlow27 = faustpower<2>(fSlow26);
330330 double fSlow28 = (1.0 - fSlow27);
331331 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)));
333333 double fSlow31 = (fSlow29 / fSlow28);
334334 double fSlow32 = (fSlow31 - fSlow30);
335335 double fSlow33 = ((exp((fConst15 / fSlow13)) / fSlow26) - 1);
338338 double fSlow36 = faustpower<2>(fSlow35);
339339 double fSlow37 = (1.0 - fSlow36);
340340 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)));
342342 double fSlow40 = (fSlow38 / fSlow37);
343343 double fSlow41 = (fSlow40 - fSlow39);
344344 double fSlow42 = ((exp((fConst20 / fSlow13)) / fSlow35) - 1);
347347 double fSlow45 = faustpower<2>(fSlow44);
348348 double fSlow46 = (1.0 - fSlow45);
349349 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)));
351351 double fSlow49 = (fSlow47 / fSlow46);
352352 double fSlow50 = (fSlow49 - fSlow48);
353353 double fSlow51 = ((exp((fConst25 / fSlow13)) / fSlow44) - 1);
356356 double fSlow54 = faustpower<2>(fSlow53);
357357 double fSlow55 = (1.0 - fSlow54);
358358 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)));
360360 double fSlow58 = (fSlow56 / fSlow55);
361361 double fSlow59 = (fSlow58 - fSlow57);
362362 double fSlow60 = ((exp((fConst30 / fSlow13)) / fSlow53) - 1);
365365 double fSlow63 = faustpower<2>(fSlow62);
366366 double fSlow64 = (1.0 - fSlow63);
367367 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)));
369369 double fSlow67 = (fSlow65 / fSlow64);
370370 double fSlow68 = (fSlow67 - fSlow66);
371371 double fSlow69 = ((exp((fConst35 / fSlow13)) / fSlow62) - 1);
374374 double fSlow72 = faustpower<2>(fSlow71);
375375 double fSlow73 = (1.0 - fSlow72);
376376 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)));
378378 double fSlow76 = (fSlow74 / fSlow73);
379379 double fSlow77 = (fSlow76 - fSlow75);
380380 double fSlow78 = ((exp((fConst40 / fSlow13)) / fSlow71) - 1);
2222 ts9nonlin = ffunction(float ts9nonlin(float), "ts9nonlin.h", "");
2323 ts9 = _ <: _ - ts9nonlin(X2-_) :> _;
2424 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);
2626 gain = hslider("level[name:Level]", -16, -20, 4, 0.1) : component("music.lib").db2linear : smoothi(0.999);
2727 };
77 ]
88
99 sources = [ # generate .so files that can be loaded by guitarix
10 #"dunwah.dsp",
10 # "dunwah.dsp",
1111 ]
1212
1313 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;
2323 use_2to3 = True
2424
2525 # used by waf dist and waf build
26 VERSION='0.23.3'
26 VERSION='0.24.0'
2727 APPNAME='guitarix'
2828
29 good_faust_versions = ['0.9.43']
29 good_faust_versions = ['0.9.43','0.9.46']
3030
3131 g_maxlen = 40 # maximum width of message for 2-column display
3232
7777 default='-Wall', # -fomit-frame-pointer -ffast-math -fstrength-reduce -mmmx -mfpmath=sse -DUSE_XMMINTRIN -pipe
7878 dest='cxxflags',
7979 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 ')
8086
8187 comp.add_option('--optimization',
8288 action='store_const',
434440 ################################################################
435441 # guitarix waf configuration
436442 #
437
443
438444 def configure(conf):
439445 opt = Options.options
440446 if 'LINGUAS' in os.environ: conf.env['LINGUAS'] = os.environ['LINGUAS']
482488 if opt.python_wrapper or opt.glade_support:
483489 conf.check_tool('compiler_cc')
484490 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
485495 # needed libaries
486496 try:
487497 conf.check_cfg(package='jack', atleast_version='0.116.2', max_version='1.8.0', args='--cflags --libs', uselib_store='JACK', mandatory=1)
585595 if cpu_model:
586596 display_msg("CPU version" , "%s" % cpu_model, "CYAN")
587597 display_msg("C++ flags", " ".join(conf.env['CXXFLAGS']), 'CYAN')
598 display_msg("Link flags", " ".join(conf.env['LINKFLAGS']), 'CYAN')
588599 display_msg("Compiler %s version" %conf.env["CXX"], "%s" % ".".join(conf.env["CC_VERSION"]), "CYAN")
589600 display_feature("Use prebuild faust files", not conf.env['FAUST'])
590601 if not opt.faust_float: