1 // generated from file '../src/plugins/rolandwah.dsp' by dsp2cc:
2 // Code generated with Faust (https://faust.grame.fr)
3 
4 #include "gx_faust_support.h"
5 #include "gx_plugin.h"
6 #include "trany.h"
7 
8 namespace pluginlib {
9 namespace rolandwah {
10 
11 class Dsp: public PluginDef {
12 private:
13 	int fSampleRate;
14 	double fConst0;
15 	double fConst4;
16 	double fConst5;
17 	double fConst6;
18 	double fConst7;
19 	FAUSTFLOAT fVslider0;
20 	int iVec0[2];
21 	double fConst9;
22 	double fConst11;
23 	FAUSTFLOAT fVslider1;
24 	double fRec10[2];
25 	double fConst13;
26 	double fConst15;
27 	double fConst17;
28 	double fConst19;
29 	double fConst20;
30 	double fConst21;
31 	double fConst22;
32 	double fConst23;
33 	double fConst24;
34 	double fConst25;
35 	double fConst26;
36 	double fConst27;
37 	double fConst29;
38 	double fConst31;
39 	double fConst32;
40 	double fConst33;
41 	double fRec9[9];
42 	double fConst35;
43 	double fConst37;
44 	double fConst39;
45 	double fConst41;
46 	double fConst44;
47 	double fConst47;
48 	double fConst49;
49 	double fConst51;
50 	double fConst52;
51 	double fConst53;
52 	double fConst54;
53 	double fConst55;
54 	double fConst56;
55 	double fConst57;
56 	double fConst58;
57 	double fConst59;
58 	double fConst60;
59 	double fConst61;
60 	double fConst63;
61 	FAUSTFLOAT fCheckbox0;
62 	double fConst64;
63 	FAUSTFLOAT fVslider2;
64 	double fRec13[2];
65 	double fRec12[2];
66 	double fRec11[2];
67 	double fConst65;
68 	double fConst66;
69 	double fConst67;
70 	double fConst68;
71 	double fRec15[2];
72 	double fRec14[2];
73 	FAUSTFLOAT fVslider3;
74 	double fRec16[2];
75 	double fConst70;
76 	double fConst72;
77 	double fConst74;
78 	double fConst76;
79 	double fConst78;
80 	double fConst79;
81 	double fConst80;
82 	double fConst81;
83 	double fConst82;
84 	double fConst83;
85 	double fConst84;
86 	double fConst85;
87 	double fConst86;
88 	double fConst87;
89 	double fConst89;
90 	double fConst91;
91 	double fConst93;
92 	double fConst94;
93 	double fConst95;
94 	double fConst96;
95 	double fRec8[7];
96 	double fConst98;
97 	double fConst100;
98 	double fConst102;
99 	double fConst104;
100 	double fConst106;
101 	double fConst108;
102 	double fConst110;
103 	double fConst112;
104 	double fConst114;
105 	double fConst115;
106 	double fConst116;
107 	double fConst117;
108 	double fConst118;
109 	double fConst119;
110 	double fConst120;
111 	double fConst121;
112 	double fConst122;
113 	double fConst123;
114 	double fConst124;
115 	double fConst125;
116 	double fConst126;
117 	double fVec1[2];
118 	double fRec7[2];
119 	double fRec6[3];
120 	double fConst128;
121 	double fConst129;
122 	double fRec17[2];
123 	double fRec5[3];
124 	double fConst130;
125 	double fConst131;
126 	double fRec4[2];
127 	double fRec3[2];
128 	double fRec2[3];
129 	double fRec18[2];
130 	double fRec1[3];
131 	double fRec0[2];
132 
133 	void clear_state_f();
134 	int load_ui_f(const UiBuilder& b, int form);
135 	static const char *glade_def;
136 	void init(unsigned int sample_rate);
137 	void compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0);
138 	int register_par(const ParamReg& reg);
139 
140 	static void clear_state_f_static(PluginDef*);
141 	static int load_ui_f_static(const UiBuilder& b, int form);
142 	static void init_static(unsigned int sample_rate, PluginDef*);
143 	static void compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginDef*);
144 	static int register_params_static(const ParamReg& reg);
145 	static void del_instance(PluginDef *p);
146 public:
147 	Dsp();
148 	~Dsp();
149 };
150 
151 
152 
Dsp()153 Dsp::Dsp()
154 	: PluginDef() {
155 	version = PLUGINDEF_VERSION;
156 	flags = 0;
157 	id = "rolandwah";
158 	name = N_("Roland Double Beat");
159 	groups = 0;
160 	description = N_("Roland Double Beat"); // description (tooltip)
161 	category = N_("Guitar Effects");       // category
162 	shortname = N_("Double Beat");     // shortname
163 	mono_audio = compute_static;
164 	stereo_audio = 0;
165 	set_samplerate = init_static;
166 	activate_plugin = 0;
167 	register_params = register_params_static;
168 	load_ui = load_ui_f_static;
169 	clear_state = clear_state_f_static;
170 	delete_instance = del_instance;
171 }
172 
~Dsp()173 Dsp::~Dsp() {
174 }
175 
clear_state_f()176 inline void Dsp::clear_state_f()
177 {
178 	for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) iVec0[l0] = 0;
179 	for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) fRec10[l1] = 0.0;
180 	for (int l2 = 0; (l2 < 9); l2 = (l2 + 1)) fRec9[l2] = 0.0;
181 	for (int l3 = 0; (l3 < 2); l3 = (l3 + 1)) fRec13[l3] = 0.0;
182 	for (int l4 = 0; (l4 < 2); l4 = (l4 + 1)) fRec12[l4] = 0.0;
183 	for (int l5 = 0; (l5 < 2); l5 = (l5 + 1)) fRec11[l5] = 0.0;
184 	for (int l6 = 0; (l6 < 2); l6 = (l6 + 1)) fRec15[l6] = 0.0;
185 	for (int l7 = 0; (l7 < 2); l7 = (l7 + 1)) fRec14[l7] = 0.0;
186 	for (int l8 = 0; (l8 < 2); l8 = (l8 + 1)) fRec16[l8] = 0.0;
187 	for (int l9 = 0; (l9 < 7); l9 = (l9 + 1)) fRec8[l9] = 0.0;
188 	for (int l10 = 0; (l10 < 2); l10 = (l10 + 1)) fVec1[l10] = 0.0;
189 	for (int l11 = 0; (l11 < 2); l11 = (l11 + 1)) fRec7[l11] = 0.0;
190 	for (int l12 = 0; (l12 < 3); l12 = (l12 + 1)) fRec6[l12] = 0.0;
191 	for (int l13 = 0; (l13 < 2); l13 = (l13 + 1)) fRec17[l13] = 0.0;
192 	for (int l14 = 0; (l14 < 3); l14 = (l14 + 1)) fRec5[l14] = 0.0;
193 	for (int l15 = 0; (l15 < 2); l15 = (l15 + 1)) fRec4[l15] = 0.0;
194 	for (int l16 = 0; (l16 < 2); l16 = (l16 + 1)) fRec3[l16] = 0.0;
195 	for (int l17 = 0; (l17 < 3); l17 = (l17 + 1)) fRec2[l17] = 0.0;
196 	for (int l18 = 0; (l18 < 2); l18 = (l18 + 1)) fRec18[l18] = 0.0;
197 	for (int l19 = 0; (l19 < 3); l19 = (l19 + 1)) fRec1[l19] = 0.0;
198 	for (int l20 = 0; (l20 < 2); l20 = (l20 + 1)) fRec0[l20] = 0.0;
199 }
200 
clear_state_f_static(PluginDef * p)201 void Dsp::clear_state_f_static(PluginDef *p)
202 {
203 	static_cast<Dsp*>(p)->clear_state_f();
204 }
205 
init(unsigned int sample_rate)206 inline void Dsp::init(unsigned int sample_rate)
207 {
208 	fSampleRate = sample_rate;
209 	fConst0 = std::min<double>(192000.0, std::max<double>(1.0, double(fSampleRate)));
210 	double fConst1 = std::tan((97.389372261283583 / fConst0));
211 	double fConst2 = (1.0 / fConst1);
212 	double fConst3 = (fConst2 + 1.0);
213 	fConst4 = (1.0 / (fConst1 * fConst3));
214 	fConst5 = mydsp_faustpower2_f(fConst0);
215 	fConst6 = (0.93028479253239138 * fConst5);
216 	fConst7 = mydsp_faustpower3_f(fConst0);
217 	double fConst8 = (8.6453768554099601e-54 * fConst0);
218 	fConst9 = ((fConst0 * ((fConst0 * ((fConst5 * ((fConst0 * ((fConst0 * (fConst8 + -1.01507284191684e-32)) + -9.1925129482745801e-29)) + -1.14668174326105e-25)) + 1.7131119450777e-20)) + 2.0004598723027898e-18)) + 5.17754054952568e-17);
219 	double fConst10 = (7.7135875124018505e-54 * fConst0);
220 	fConst11 = ((fConst0 * ((fConst0 * ((fConst5 * ((fConst0 * ((fConst0 * (3.4617148379147101e-33 - fConst10)) + 7.3851826335984701e-29)) + 1.0562321161133599e-25)) + -1.35506989727438e-20)) + -6.4187190694828203e-19)) + -3.6184466339169999e-18);
221 	double fConst12 = (3.02588189939348e-53 * fConst0);
222 	fConst13 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (2.3685032978059599e-32 - fConst12)) + 9.1925129482745801e-29)) + -1.14668174326105e-25)) + -1.52318075159202e-22)) + -1.7131119450777e-20)) + 2.0004598723027898e-18)) + 1.20809279488933e-16);
223 	double fConst14 = (2.6997556293406501e-53 * fConst0);
224 	fConst15 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst14 + -8.0773346218009802e-33)) + -7.3851826335984701e-29)) + 1.0562321161133599e-25)) + 1.3795366937074801e-22)) + 1.35506989727438e-20)) + -6.4187190694828203e-19)) + -8.4430421458063305e-18);
225 	double fConst16 = (6.0517637987869703e-53 * fConst0);
226 	fConst17 = ((fConst0 * ((fConst0 * ((fConst5 * ((fConst0 * ((fConst0 * (fConst16 + -2.3685032978059599e-32)) + 9.1925129482745801e-29)) + 3.44004522978315e-25)) + -5.13933583523309e-20)) + -2.0004598723027898e-18)) + 1.20809279488933e-16);
227 	double fConst18 = (5.3995112586813002e-53 * fConst0);
228 	fConst19 = ((fConst0 * ((fConst0 * ((fConst5 * ((fConst0 * ((fConst0 * (8.0773346218009802e-33 - fConst18)) + -7.3851826335984701e-29)) + -3.1686963483400899e-25)) + 4.0652096918231401e-20)) + 6.4187190694828203e-19)) + -8.4430421458063305e-18);
229 	fConst20 = ((fConst5 * ((fConst5 * (-2.29812823706864e-28 - (7.5647047484837103e-53 * fConst5))) + 2.2847711273880299e-22)) + -5.0011496807569701e-18);
230 	fConst21 = ((fConst5 * ((fConst5 * ((6.7493890733516199e-53 * fConst5) + 1.8462956583996199e-28)) + -2.0693050405612199e-22)) + 1.6046797673707001e-18);
231 	fConst22 = ((fConst0 * ((fConst0 * ((fConst5 * ((fConst0 * ((fConst0 * (fConst16 + 2.3685032978059599e-32)) + 9.1925129482745801e-29)) + -3.44004522978315e-25)) + 5.13933583523309e-20)) + -2.0004598723027898e-18)) + -1.20809279488933e-16);
232 	fConst23 = ((fConst0 * ((fConst0 * ((fConst5 * ((fConst0 * ((fConst0 * (-8.0773346218009802e-33 - fConst18)) + -7.3851826335984701e-29)) + 3.1686963483400899e-25)) + -4.0652096918231401e-20)) + 6.4187190694828203e-19)) + 8.4430421458063305e-18);
233 	fConst24 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (-2.3685032978059599e-32 - fConst12)) + 9.1925129482745801e-29)) + 1.14668174326105e-25)) + -1.52318075159202e-22)) + 1.7131119450777e-20)) + 2.0004598723027898e-18)) + -1.20809279488933e-16);
234 	fConst25 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst14 + 8.0773346218009802e-33)) + -7.3851826335984701e-29)) + -1.0562321161133599e-25)) + 1.3795366937074801e-22)) + -1.35506989727438e-20)) + -6.4187190694828203e-19)) + 8.4430421458063305e-18);
235 	fConst26 = ((fConst0 * ((fConst0 * ((fConst5 * ((fConst0 * ((fConst0 * (fConst8 + 1.01507284191684e-32)) + -9.1925129482745801e-29)) + 1.14668174326105e-25)) + -1.7131119450777e-20)) + 2.0004598723027898e-18)) + -5.17754054952568e-17);
236 	fConst27 = ((fConst0 * ((fConst0 * ((fConst5 * ((fConst0 * ((fConst0 * (-3.4617148379147101e-33 - fConst10)) + 7.3851826335984701e-29)) + -1.0562321161133599e-25)) + 1.35506989727438e-20)) + -6.4187190694828203e-19)) + 3.6184466339169999e-18);
237 	double fConst28 = (1.0806721069262399e-54 * fConst0);
238 	fConst29 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (-1.6917880698614e-33 - fConst28)) + 2.29812823706864e-29)) + -5.7334087163052396e-26)) + 3.8079518789800499e-23)) + -8.5655597253884803e-21)) + 5.0011496807569601e-19)) + -8.6292342492094698e-18);
239 	double fConst30 = (9.6419843905023102e-55 * fConst0);
240 	fConst31 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst30 + 5.7695247298578402e-34)) + -1.8462956583996201e-29)) + 5.2811605805668203e-26)) + -3.4488417342687002e-23)) + 6.7753494863719001e-21)) + -1.6046797673707e-19)) + 6.0307443898616604e-19);
241 	fConst32 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (1.6917880698614e-33 - fConst28)) + 2.29812823706864e-29)) + 5.7334087163052396e-26)) + 3.8079518789800499e-23)) + 8.5655597253884803e-21)) + 5.0011496807569601e-19)) + 8.6292342492094698e-18);
242 	fConst33 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst30 + -5.7695247298578402e-34)) + -1.8462956583996201e-29)) + -5.2811605805668203e-26)) + -3.4488417342687002e-23)) + -6.7753494863719001e-21)) + -1.6046797673707e-19)) + -6.0307443898616604e-19);
243 	double fConst34 = (2.6226779359819302e-32 * fConst0);
244 	fConst35 = ((fConst0 * ((fConst0 * ((fConst0 * (-2.30252524666021e-25 - fConst34)) + -1.21809214941527e-22)) + -4.4700687878866801e-21)) + -4.1404252109699403e-20);
245 	double fConst36 = (8.60349117319693e-33 * fConst0);
246 	fConst37 = (fConst0 * ((fConst0 * ((fConst0 * (fConst36 + 7.4247065053322598e-26)) + 3.8082846258472101e-23)) + 8.2808504219398703e-22));
247 	double fConst38 = (1.5736067615891601e-31 * fConst0);
248 	fConst39 = ((fConst5 * ((fConst0 * (fConst38 + 9.2101009866408307e-25)) + 2.4361842988305401e-22)) + -8.2808504219398697e-20);
249 	double fConst40 = (5.1620947039181596e-32 * fConst0);
250 	fConst41 = (fConst5 * ((fConst0 * (-2.9698826021328998e-25 - fConst40)) + -7.6165692516944296e-23));
251 	double fConst42 = (3.6717491103746999e-31 * fConst0);
252 	double fConst43 = (fConst0 * (-9.2101009866408307e-25 - fConst42));
253 	fConst44 = ((fConst0 * ((fConst0 * (fConst43 + 2.4361842988305401e-22)) + 1.7880275151546699e-20)) + 8.2808504219398697e-20);
254 	double fConst45 = (1.20448876424757e-31 * fConst0);
255 	double fConst46 = (fConst0 * (fConst45 + 2.9698826021328998e-25));
256 	fConst47 = (fConst0 * ((fConst0 * (fConst46 + -7.6165692516944296e-23)) + -3.31234016877595e-21));
257 	double fConst48 = (fConst0 * (fConst42 + -9.2101009866408307e-25));
258 	fConst49 = ((fConst5 * (fConst48 + -7.3085528964916198e-22)) + 2.4842551265819602e-19);
259 	double fConst50 = (fConst0 * (2.9698826021328998e-25 - fConst45));
260 	fConst51 = (fConst5 * (fConst50 + 2.2849707755083301e-22));
261 	fConst52 = ((2.3025252466602099e-24 * fConst5) + -2.6820412727320099e-20);
262 	fConst53 = (4.9685102531639197e-21 - (7.4247065053322603e-25 * fConst5));
263 	fConst54 = ((fConst5 * (fConst43 + 7.3085528964916198e-22)) + -2.4842551265819602e-19);
264 	fConst55 = (fConst5 * (fConst46 + -2.2849707755083301e-22));
265 	fConst56 = ((fConst0 * ((fConst0 * (fConst48 + -2.4361842988305401e-22)) + 1.7880275151546699e-20)) + -8.2808504219398697e-20);
266 	fConst57 = (fConst0 * ((fConst0 * (fConst50 + 7.6165692516944296e-23)) + -3.31234016877595e-21));
267 	fConst58 = ((fConst5 * ((fConst0 * (9.2101009866408307e-25 - fConst38)) + -2.4361842988305401e-22)) + 8.2808504219398697e-20);
268 	fConst59 = (fConst5 * ((fConst0 * (fConst40 + -2.9698826021328998e-25)) + 7.6165692516944296e-23));
269 	fConst60 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst34 + -2.30252524666021e-25)) + 1.21809214941527e-22)) + -4.4700687878866801e-21)) + 4.1404252109699403e-20);
270 	fConst61 = (fConst0 * ((fConst0 * ((fConst0 * (7.4247065053322598e-26 - fConst36)) + -3.8082846258472101e-23)) + 8.2808504219398703e-22));
271 	double fConst62 = (3.0207049650607199e-29 * fConst0);
272 	fConst63 = ((fConst0 * ((fConst5 * ((fConst0 * (-4.2224699126538501e-26 - fConst62)) + -5.1028451720445405e-22)) + 7.5236423320258805e-18)) + 1.2367938041498899e-16);
273 	fConst64 = (0.10471975511965977 / fConst0);
274 	fConst65 = std::exp((0.0 - (100.0 / fConst0)));
275 	fConst66 = (1.0 - fConst65);
276 	fConst67 = std::exp((0.0 - (10.0 / fConst0)));
277 	fConst68 = (1.0 - fConst67);
278 	double fConst69 = (1.0332413167573e-27 * fConst0);
279 	fConst70 = ((fConst0 * ((fConst5 * ((fConst0 * (-4.5813559411368004e-25 - fConst69)) + -1.9536713520122399e-22)) + 2.1593959722292799e-18)) + 2.1255337677114601e-17);
280 	double fConst71 = (2.5790740534914202e-28 * fConst0);
281 	fConst72 = (fConst0 * ((fConst5 * ((fConst0 * (fConst71 + 1.2774942666629701e-25)) + 1.7800778559222001e-22)) + -7.0142614334478301e-19));
282 	double fConst73 = (7.5517624126518095e-29 * fConst0);
283 	fConst74 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst73 + 5.27808739081731e-26)) + -2.5514225860222702e-22)) + -4.4594494030519004e-19)) + -3.7618211660129403e-18)) + 1.54599225518736e-16);
284 	double fConst75 = (2.5831032918932499e-27 * fConst0);
285 	fConst76 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst75 + 5.7266949264210002e-25)) + -9.7683567600611997e-23)) + -1.5643246402074301e-19)) + -1.07969798611464e-18)) + 2.6569172096393299e-17);
286 	double fConst77 = (6.4476851337285599e-28 * fConst0);
287 	fConst78 = (fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (-1.59686783332872e-25 - fConst77)) + 8.9003892796110098e-23)) + 1.46112676135974e-19)) + 3.5071307167239199e-19));
288 	fConst79 = ((fConst5 * (1.02056903440891e-21 - (1.00690165502024e-28 * fConst5))) + -1.5047284664051801e-17);
289 	fConst80 = ((fConst5 * (3.9073427040244799e-22 - (3.4441377225243296e-27 * fConst5))) + -4.3187919444585699e-18);
290 	fConst81 = ((fConst5 * ((8.5969135116380804e-28 * fConst5) + -3.5601557118444002e-22)) + 1.4028522866895701e-18);
291 	fConst82 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst73 + -5.27808739081731e-26)) + -2.5514225860222702e-22)) + 4.4594494030519004e-19)) + -3.7618211660129403e-18)) + -1.54599225518736e-16);
292 	fConst83 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst75 + -5.7266949264210002e-25)) + -9.7683567600611997e-23)) + 1.5643246402074301e-19)) + -1.07969798611464e-18)) + -2.6569172096393299e-17);
293 	fConst84 = (fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (1.59686783332872e-25 - fConst77)) + 8.9003892796110098e-23)) + -1.46112676135974e-19)) + 3.5071307167239199e-19));
294 	fConst85 = ((fConst0 * ((fConst5 * ((fConst0 * (4.2224699126538501e-26 - fConst62)) + -5.1028451720445405e-22)) + 7.5236423320258805e-18)) + -1.2367938041498899e-16);
295 	fConst86 = ((fConst0 * ((fConst5 * ((fConst0 * (4.5813559411368004e-25 - fConst69)) + -1.9536713520122399e-22)) + 2.1593959722292799e-18)) + -2.1255337677114601e-17);
296 	fConst87 = (fConst0 * ((fConst5 * ((fConst0 * (fConst71 + -1.2774942666629701e-25)) + 1.7800778559222001e-22)) + -7.0142614334478301e-19));
297 	double fConst88 = (5.0345082751012003e-30 * fConst0);
298 	fConst89 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst88 + -1.0556174781634599e-26)) + 2.5514225860222702e-22)) + -1.4864831343506299e-19)) + 3.7618211660129403e-18)) + -3.0919845103747099e-17);
299 	double fConst90 = (1.72206886126217e-28 * fConst0);
300 	fConst91 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst90 + -1.1453389852842001e-25)) + 9.7683567600611997e-23)) + -5.2144154673581001e-20)) + 1.07969798611464e-18)) + -5.3138344192786603e-18);
301 	double fConst92 = (4.29845675581904e-29 * fConst0);
302 	fConst93 = (fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (3.1937356666574297e-26 - fConst92)) + -8.9003892796110098e-23)) + 4.8704225378657897e-20)) + -3.5071307167239199e-19));
303 	fConst94 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst88 + 1.0556174781634599e-26)) + 2.5514225860222702e-22)) + 1.4864831343506299e-19)) + 3.7618211660129403e-18)) + 3.0919845103747099e-17);
304 	fConst95 = ((fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (fConst90 + 1.1453389852842001e-25)) + 9.7683567600611997e-23)) + 5.2144154673581001e-20)) + 1.07969798611464e-18)) + 5.3138344192786603e-18);
305 	fConst96 = (fConst0 * ((fConst0 * ((fConst0 * ((fConst0 * (-3.1937356666574297e-26 - fConst92)) + -8.9003892796110098e-23)) + -4.8704225378657897e-20)) + -3.5071307167239199e-19));
306 	double fConst97 = (9.6574497270343303e-31 * fConst0);
307 	fConst98 = ((fConst0 * ((fConst0 * ((fConst0 * (-3.0882218864428199e-26 - fConst97)) + -4.8262471952169603e-23)) + -2.8826460531036599e-21)) + -1.4900785581079499e-20);
308 	double fConst99 = (7.1663335121242097e-31 * fConst0);
309 	fConst100 = ((fConst0 * ((fConst0 * ((fConst0 * (-1.2201212507437399e-26 - fConst99)) + -1.8312671176616301e-23)) + -1.2159222901252701e-21)) + -1.2608516331659e-20);
310 	double fConst101 = (7.1808255629623197e-31 * fConst0);
311 	fConst102 = (fConst0 * ((fConst0 * ((fConst0 * (fConst101 + 1.2196809675606999e-26)) + 1.8163521797294801e-23)) + 9.8345184835124996e-22));
312 	double fConst103 = (5.7944698362206003e-30 * fConst0);
313 	fConst104 = ((fConst5 * ((fConst0 * (fConst103 + 1.23528875457713e-25)) + 9.6524943904339299e-23)) + -2.9801571162159101e-20);
314 	double fConst105 = (4.2998001072745197e-30 * fConst0);
315 	fConst106 = ((fConst5 * ((fConst0 * (fConst105 + 4.8804850029749597e-26)) + 3.6625342353232602e-23)) + -2.5217032663318e-20);
316 	double fConst107 = (4.3084953377773899e-30 * fConst0);
317 	fConst108 = (fConst5 * ((fConst0 * (-4.8787238702428101e-26 - fConst107)) + -3.6327043594589501e-23));
318 	double fConst109 = (1.44861745905515e-29 * fConst0);
319 	fConst110 = ((fConst0 * ((fConst0 * ((fConst0 * (-1.54411094322141e-25 - fConst109)) + 4.8262471952169603e-23)) + 8.6479381593109902e-21)) + 1.4900785581079499e-20);
320 	double fConst111 = (1.07495002681863e-29 * fConst0);
321 	fConst112 = ((fConst0 * ((fConst0 * ((fConst0 * (-6.1006062537187001e-26 - fConst111)) + 1.8312671176616301e-23)) + 3.6477668703758198e-21)) + 1.2608516331659e-20);
322 	double fConst113 = (1.07712383444435e-29 * fConst0);
323 	fConst114 = (fConst0 * ((fConst0 * ((fConst0 * (fConst113 + 6.0984048378035096e-26)) + -1.8163521797294801e-23)) + -2.9503555450537499e-21));
324 	fConst115 = ((fConst5 * ((1.93148994540687e-29 * fConst5) + -1.93049887808679e-22)) + 5.9603142324318202e-20);
325 	fConst116 = ((fConst5 * ((1.4332667024248399e-29 * fConst5) + -7.3250684706465204e-23)) + 5.0434065326635999e-20);
326 	fConst117 = (fConst5 * (7.2654087189179003e-23 - (1.43616511259246e-29 * fConst5)));
327 	fConst118 = ((fConst0 * ((fConst0 * ((fConst0 * (1.54411094322141e-25 - fConst109)) + 4.8262471952169603e-23)) + -8.6479381593109902e-21)) + 1.4900785581079499e-20);
328 	fConst119 = ((fConst0 * ((fConst0 * ((fConst0 * (6.1006062537187001e-26 - fConst111)) + 1.8312671176616301e-23)) + -3.6477668703758198e-21)) + 1.2608516331659e-20);
329 	fConst120 = (fConst0 * ((fConst0 * ((fConst0 * (fConst113 + -6.0984048378035096e-26)) + -1.8163521797294801e-23)) + 2.9503555450537499e-21));
330 	fConst121 = ((fConst5 * ((fConst0 * (fConst103 + -1.23528875457713e-25)) + 9.6524943904339299e-23)) + -2.9801571162159101e-20);
331 	fConst122 = ((fConst5 * ((fConst0 * (fConst105 + -4.8804850029749597e-26)) + 3.6625342353232602e-23)) + -2.5217032663318e-20);
332 	fConst123 = (fConst5 * ((fConst0 * (4.8787238702428101e-26 - fConst107)) + -3.6327043594589501e-23));
333 	fConst124 = ((fConst0 * ((fConst0 * ((fConst0 * (3.0882218864428199e-26 - fConst97)) + -4.8262471952169603e-23)) + 2.8826460531036599e-21)) + -1.4900785581079499e-20);
334 	fConst125 = ((fConst0 * ((fConst0 * ((fConst0 * (1.2201212507437399e-26 - fConst99)) + -1.8312671176616301e-23)) + 1.2159222901252701e-21)) + -1.2608516331659e-20);
335 	fConst126 = (fConst0 * ((fConst0 * ((fConst0 * (fConst101 + -1.2196809675606999e-26)) + 1.8163521797294801e-23)) + -9.8345184835124996e-22));
336 	double fConst127 = (1.0 / std::tan((270.1769682087222 / fConst0)));
337 	fConst128 = (1.0 / (fConst127 + 1.0));
338 	fConst129 = (1.0 - fConst127);
339 	fConst130 = (0.0 - fConst4);
340 	fConst131 = ((1.0 - fConst2) / fConst3);
341 	clear_state_f();
342 }
343 
init_static(unsigned int sample_rate,PluginDef * p)344 void Dsp::init_static(unsigned int sample_rate, PluginDef *p)
345 {
346 	static_cast<Dsp*>(p)->init(sample_rate);
347 }
348 
compute(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0)349 void always_inline Dsp::compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0)
350 {
351 	double fSlow0 = (0.01 * double(fVslider0));
352 	double fSlow1 = (0.0070000000000000062 * double(fVslider1));
353 	int iSlow2 = int(double(fCheckbox0));
354 	int iSlow3 = (iSlow2 == 0);
355 	int iSlow4 = (iSlow2 == 1);
356 	double fSlow5 = (fConst64 * double(fVslider2));
357 	double fSlow6 = (0.004073836948085289 * (std::exp((1.0 - double(fVslider3))) + -1.0));
358 	double fSlow7 = (1.0 - fSlow0);
359 	for (int i0 = 0; (i0 < count); i0 = (i0 + 1)) {
360 		double fTemp0 = double(input0[i0]);
361 		iVec0[0] = 1;
362 		fRec10[0] = (fSlow1 + (0.99299999999999999 * fRec10[1]));
363 		double fTemp1 = ((fConst0 * (fConst32 + (fConst33 * fRec10[0]))) + 3.0153721949308302e-17);
364 		fRec9[0] = ((fSlow0 * fTemp0) - (((((((((fRec9[1] * ((fConst0 * (fConst9 + (fConst11 * fRec10[0]))) + 2.4122977559446701e-16)) + (fRec9[2] * ((fConst0 * (fConst13 + (fConst15 * fRec10[0]))) + 8.4430421458063303e-16))) + (fRec9[3] * ((fConst0 * (fConst17 + (fConst19 * fRec10[0]))) + 1.68860842916127e-15))) + (fRec9[4] * ((fConst5 * (fConst20 + (fConst21 * fRec10[0]))) + 2.1107605364515801e-15))) + (fRec9[5] * ((fConst0 * (fConst22 + (fConst23 * fRec10[0]))) + 1.68860842916127e-15))) + (fRec9[6] * ((fConst0 * (fConst24 + (fConst25 * fRec10[0]))) + 8.4430421458063303e-16))) + (fRec9[7] * ((fConst0 * (fConst26 + (fConst27 * fRec10[0]))) + 2.4122977559446701e-16))) + (fRec9[8] * ((fConst0 * (fConst29 + (fConst31 * fRec10[0]))) + 3.0153721949308302e-17))) / fTemp1));
365 		double fTemp2 = (fConst7 * ((((((((((fRec9[0] * (fConst35 + (fConst37 * fRec10[0]))) + (fRec9[1] * (fConst39 + (fConst41 * fRec10[0])))) + (fRec9[2] * (fConst44 + (fConst47 * fRec10[0])))) + (fRec9[3] * (fConst49 + (fConst51 * fRec10[0])))) + (fConst0 * (fRec9[4] * (fConst52 + (fConst53 * fRec10[0]))))) + (fRec9[5] * (fConst54 + (fConst55 * fRec10[0])))) + (fRec9[6] * (fConst56 + (fConst57 * fRec10[0])))) + (fRec9[7] * (fConst58 + (fConst59 * fRec10[0])))) + (fRec9[8] * (fConst60 + (fConst61 * fRec10[0])))) / fTemp1));
366 		fRec13[0] = (fRec13[1] + (fSlow5 * (0.0 - fRec11[1])));
367 		fRec12[0] = ((fSlow5 * fRec13[0]) + (double((1 - iVec0[1])) + fRec12[1]));
368 		fRec11[0] = fRec12[0];
369 		double fTemp3 = std::fabs(fTemp2);
370 		fRec15[0] = std::max<double>(fTemp3, ((fConst67 * fRec15[1]) + (fConst68 * fTemp3)));
371 		fRec14[0] = ((fConst65 * fRec14[1]) + (fConst66 * fRec15[0]));
372 		double fThen0 = (1.0 - std::max<double>(0.089999999999999997, std::min<double>(0.90000000000000002, (0.5 * (fRec11[0] + 1.0)))));
373 		double fElse0 = std::max<double>(0.089999999999999997, std::min<double>(0.90000000000000002, fRec14[0]));
374 		fRec16[0] = (fSlow6 + (0.99299999999999999 * fRec16[1]));
375 		double fThen1 = (iSlow4 ? fElse0 : fThen0);
376 		double fTemp4 = (iSlow3 ? fRec16[0] : fThen1);
377 		double fTemp5 = ((fConst0 * (fConst94 + (fTemp4 * (fConst95 + (fConst96 * fTemp4))))) + 8.0512642716343297e-17);
378 		fRec8[0] = (fTemp2 - (((((((fRec8[1] * ((fConst0 * (fConst63 + (fTemp4 * (fConst70 + (fConst72 * fTemp4))))) + 4.8307585629805998e-16)) + (fRec8[2] * ((fConst0 * (fConst74 + (fTemp4 * (fConst76 + (fConst78 * fTemp4))))) + 1.2076896407451501e-15))) + (fRec8[3] * ((fConst5 * (fConst79 + (fTemp4 * (fConst80 + (fConst81 * fTemp4))))) + 1.6102528543268701e-15))) + (fRec8[4] * ((fConst0 * (fConst82 + (fTemp4 * (fConst83 + (fConst84 * fTemp4))))) + 1.2076896407451501e-15))) + (fRec8[5] * ((fConst0 * (fConst85 + (fTemp4 * (fConst86 + (fConst87 * fTemp4))))) + 4.8307585629805998e-16))) + (fRec8[6] * ((fConst0 * (fConst89 + (fTemp4 * (fConst91 + (fConst93 * fTemp4))))) + 8.0512642716343297e-17))) / fTemp5));
379 		double fTemp6 = ((((((((fRec8[0] * (fConst98 + (fTemp4 * (fConst100 + (fConst102 * fTemp4))))) + (fRec8[1] * (fConst104 + (fTemp4 * (fConst106 + (fConst108 * fTemp4)))))) + (fRec8[2] * (fConst110 + (fTemp4 * (fConst112 + (fConst114 * fTemp4)))))) + (fRec8[3] * (fConst115 + (fTemp4 * (fConst116 + (fConst117 * fTemp4)))))) + (fRec8[4] * (fConst118 + (fTemp4 * (fConst119 + (fConst120 * fTemp4)))))) + (fRec8[5] * (fConst121 + (fTemp4 * (fConst122 + (fConst123 * fTemp4)))))) + (fRec8[6] * (fConst124 + (fTemp4 * (fConst125 + (fConst126 * fTemp4)))))) / fTemp5);
380 		fVec1[0] = fTemp6;
381 		fRec7[0] = ((fConst6 * (fTemp6 + fVec1[1])) - (0.86056958506478287 * fRec7[1]));
382 		fRec6[0] = (fRec7[0] - ((1.8405051250752198 * fRec6[1]) + (0.86129424393186271 * fRec6[2])));
383 		fRec17[0] = (fConst128 * ((0.027 * (fRec5[1] + fRec5[2])) - (fConst129 * fRec17[1])));
384 		fRec5[0] = (double(Ftrany(int(TRANY_TABLE_KT88_68k), double((((0.92544984225177063 * (fRec6[0] + fRec6[2])) + (fRec17[0] + (1.8508996845035413 * fRec6[1]))) + -5.5628950000000001)))) + -43.966851851851828);
385 		fRec4[0] = ((0.025000000000000001 * ((fConst4 * fRec5[0]) + (fConst130 * fRec5[1]))) - (fConst131 * fRec4[1]));
386 		fRec3[0] = ((0.93028479253239138 * (fRec4[0] + fRec4[1])) - (0.86056958506478287 * fRec3[1]));
387 		fRec2[0] = (fRec3[0] - ((1.8405051250752198 * fRec2[1]) + (0.86129424393186271 * fRec2[2])));
388 		fRec18[0] = (fConst128 * ((0.027 * (fRec1[1] + fRec1[2])) - (fConst129 * fRec18[1])));
389 		fRec1[0] = (double(Ftrany(int(TRANY_TABLE_KT88_68k), double((((0.92544984225177063 * (fRec2[0] + fRec2[2])) + (fRec18[0] + (1.8508996845035413 * fRec2[1]))) + -5.5628950000000001)))) + -43.966851851851828);
390 		fRec0[0] = ((0.025000000000000001 * ((fConst4 * fRec1[0]) + (fConst130 * fRec1[1]))) - (fConst131 * fRec0[1]));
391 		output0[i0] = FAUSTFLOAT((fRec0[0] + (fSlow7 * fTemp0)));
392 		iVec0[1] = iVec0[0];
393 		fRec10[1] = fRec10[0];
394 		for (int j0 = 8; (j0 > 0); j0 = (j0 - 1)) {
395 			fRec9[j0] = fRec9[(j0 - 1)];
396 		}
397 		fRec13[1] = fRec13[0];
398 		fRec12[1] = fRec12[0];
399 		fRec11[1] = fRec11[0];
400 		fRec15[1] = fRec15[0];
401 		fRec14[1] = fRec14[0];
402 		fRec16[1] = fRec16[0];
403 		for (int j1 = 6; (j1 > 0); j1 = (j1 - 1)) {
404 			fRec8[j1] = fRec8[(j1 - 1)];
405 		}
406 		fVec1[1] = fVec1[0];
407 		fRec7[1] = fRec7[0];
408 		fRec6[2] = fRec6[1];
409 		fRec6[1] = fRec6[0];
410 		fRec17[1] = fRec17[0];
411 		fRec5[2] = fRec5[1];
412 		fRec5[1] = fRec5[0];
413 		fRec4[1] = fRec4[0];
414 		fRec3[1] = fRec3[0];
415 		fRec2[2] = fRec2[1];
416 		fRec2[1] = fRec2[0];
417 		fRec18[1] = fRec18[0];
418 		fRec1[2] = fRec1[1];
419 		fRec1[1] = fRec1[0];
420 		fRec0[1] = fRec0[0];
421 	}
422 }
423 
compute_static(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0,PluginDef * p)424 void __rt_func Dsp::compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginDef *p)
425 {
426 	static_cast<Dsp*>(p)->compute(count, input0, output0);
427 }
428 
register_par(const ParamReg & reg)429 int Dsp::register_par(const ParamReg& reg)
430 {
431 	reg.registerFloatVar("rolandwah.Fuzz",N_("Fuzz"),"S","",&fVslider1, 0.5, 0.0, 1.0, 0.01, 0);
432 	reg.registerFloatVar("rolandwah.Wah",N_("Wah"),"S","",&fVslider3, 0.5, 0.02, 1.0, 0.01, 0);
433 	reg.registerFloatVar("rolandwah.lfobpm",N_("Alien Freq"),"S",N_("LFO in Beats per Minute"),&fVslider2, 24.0, 24.0, 360.0, 1.0, 0);
434 	static const value_pair fCheckbox0_values[] = {{"manual"},{"auto"},{"alien"},{0}};
435 	reg.registerFloatVar("rolandwah.mode","","B","",&fCheckbox0, 0.0, 0.0, 1.0, 1.0, fCheckbox0_values);
436 	reg.registerFloatVar("rolandwah.wet_dry",N_("Dry/Wet"),"S",N_("percentage of processed signal in output signal"),&fVslider0, 100.0, 0.0, 100.0, 1.0, 0);
437 	return 0;
438 }
439 
register_params_static(const ParamReg & reg)440 int Dsp::register_params_static(const ParamReg& reg)
441 {
442 	return static_cast<Dsp*>(reg.plugin)->register_par(reg);
443 }
444 
445 const char *Dsp::glade_def = "\
446 <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
447 <!-- Generated with glade 3.22.1 -->\n\
448 <interface>\n\
449   <requires lib=\"gtk+\" version=\"3.20\"/>\n\
450   <requires lib=\"gxwidgets\" version=\"0.0\"/>\n\
451   <object class=\"GtkWindow\" id=\"window1\">\n\
452     <property name=\"can_focus\">False</property>\n\
453     <child>\n\
454       <placeholder/>\n\
455     </child>\n\
456     <child>\n\
457       <object class=\"GtkBox\" id=\"vbox1\">\n\
458         <property name=\"visible\">True</property>\n\
459         <property name=\"can_focus\">False</property>\n\
460         <property name=\"orientation\">vertical</property>\n\
461         <child>\n\
462           <object class=\"GtkBox\" id=\"rackbox\">\n\
463             <property name=\"visible\">True</property>\n\
464             <property name=\"can_focus\">False</property>\n\
465             <property name=\"spacing\">4</property>\n\
466             <child>\n\
467               <object class=\"GtkBox\" id=\"hbox1\">\n\
468                 <property name=\"visible\">True</property>\n\
469                 <property name=\"can_focus\">False</property>\n\
470                 <property name=\"spacing\">10</property>\n\
471                 <child>\n\
472                   <object class=\"GtkBox\" id=\"vbox6\">\n\
473                     <property name=\"visible\">True</property>\n\
474                     <property name=\"can_focus\">False</property>\n\
475                     <property name=\"orientation\">vertical</property>\n\
476                     <property name=\"spacing\">23</property>\n\
477                     <child>\n\
478                       <object class=\"GtkLabel\" id=\"label01:rack_label\">\n\
479                         <property name=\"visible\">True</property>\n\
480                         <property name=\"can_focus\">False</property>\n\
481                         <property name=\"label\" translatable=\"yes\">Mode</property>\n\
482                       </object>\n\
483                       <packing>\n\
484                         <property name=\"expand\">False</property>\n\
485                         <property name=\"fill\">False</property>\n\
486                         <property name=\"position\">0</property>\n\
487                       </packing>\n\
488                     </child>\n\
489                     <child>\n\
490                       <object class=\"GxSelector\" id=\"gxselector1\">\n\
491                         <property name=\"visible\">True</property>\n\
492                         <property name=\"can_focus\">True</property>\n\
493                         <property name=\"receives_default\">True</property>\n\
494                         <property name=\"var_id\">rolandwah.mode</property>\n\
495                       </object>\n\
496                       <packing>\n\
497                         <property name=\"expand\">False</property>\n\
498                         <property name=\"fill\">False</property>\n\
499                         <property name=\"position\">1</property>\n\
500                       </packing>\n\
501                     </child>\n\
502                   </object>\n\
503                   <packing>\n\
504                     <property name=\"expand\">False</property>\n\
505                     <property name=\"fill\">False</property>\n\
506                     <property name=\"position\">0</property>\n\
507                   </packing>\n\
508                 </child>\n\
509                 <child>\n\
510                   <object class=\"GtkBox\" id=\"vbox2\">\n\
511                     <property name=\"visible\">True</property>\n\
512                     <property name=\"can_focus\">False</property>\n\
513                     <property name=\"orientation\">vertical</property>\n\
514                     <child>\n\
515                       <object class=\"GtkLabel\" id=\"label1:rack_label\">\n\
516                         <property name=\"visible\">True</property>\n\
517                         <property name=\"can_focus\">False</property>\n\
518                         <property name=\"label\" translatable=\"yes\">label</property>\n\
519                       </object>\n\
520                       <packing>\n\
521                         <property name=\"expand\">False</property>\n\
522                         <property name=\"fill\">False</property>\n\
523                         <property name=\"position\">0</property>\n\
524                       </packing>\n\
525                     </child>\n\
526                     <child>\n\
527                       <object class=\"GxSmallKnobR\" id=\"gxbigknob1\">\n\
528                         <property name=\"visible\">True</property>\n\
529                         <property name=\"can_focus\">True</property>\n\
530                         <property name=\"receives_default\">True</property>\n\
531                         <property name=\"var_id\">rolandwah.lfobpm</property>\n\
532                         <property name=\"label_ref\">label1:rack_label</property>\n\
533                       </object>\n\
534                       <packing>\n\
535                         <property name=\"expand\">False</property>\n\
536                         <property name=\"fill\">False</property>\n\
537                         <property name=\"position\">1</property>\n\
538                       </packing>\n\
539                     </child>\n\
540                   </object>\n\
541                   <packing>\n\
542                     <property name=\"expand\">False</property>\n\
543                     <property name=\"fill\">False</property>\n\
544                     <property name=\"position\">1</property>\n\
545                   </packing>\n\
546                 </child>\n\
547                 <child>\n\
548                   <object class=\"GtkBox\" id=\"vbox3\">\n\
549                     <property name=\"visible\">True</property>\n\
550                     <property name=\"can_focus\">False</property>\n\
551                     <property name=\"orientation\">vertical</property>\n\
552                     <child>\n\
553                       <object class=\"GtkLabel\" id=\"label2:rack_label\">\n\
554                         <property name=\"visible\">True</property>\n\
555                         <property name=\"can_focus\">False</property>\n\
556                         <property name=\"label\" translatable=\"yes\">label</property>\n\
557                       </object>\n\
558                       <packing>\n\
559                         <property name=\"expand\">False</property>\n\
560                         <property name=\"fill\">False</property>\n\
561                         <property name=\"position\">0</property>\n\
562                       </packing>\n\
563                     </child>\n\
564                     <child>\n\
565                       <object class=\"GxSmallKnobR\" id=\"gxbigknob2\">\n\
566                         <property name=\"visible\">True</property>\n\
567                         <property name=\"can_focus\">True</property>\n\
568                         <property name=\"receives_default\">True</property>\n\
569                         <property name=\"var_id\">rolandwah.Fuzz</property>\n\
570                         <property name=\"label_ref\">label2:rack_label</property>\n\
571                       </object>\n\
572                       <packing>\n\
573                         <property name=\"expand\">False</property>\n\
574                         <property name=\"fill\">False</property>\n\
575                         <property name=\"position\">1</property>\n\
576                       </packing>\n\
577                     </child>\n\
578                   </object>\n\
579                   <packing>\n\
580                     <property name=\"expand\">False</property>\n\
581                     <property name=\"fill\">False</property>\n\
582                     <property name=\"position\">2</property>\n\
583                   </packing>\n\
584                 </child>\n\
585                 <child>\n\
586                   <object class=\"GtkBox\" id=\"vbox4\">\n\
587                     <property name=\"visible\">True</property>\n\
588                     <property name=\"can_focus\">False</property>\n\
589                     <property name=\"orientation\">vertical</property>\n\
590                     <child>\n\
591                       <object class=\"GtkLabel\" id=\"label3:rack_label\">\n\
592                         <property name=\"visible\">True</property>\n\
593                         <property name=\"can_focus\">False</property>\n\
594                         <property name=\"label\" translatable=\"yes\">label</property>\n\
595                       </object>\n\
596                       <packing>\n\
597                         <property name=\"expand\">False</property>\n\
598                         <property name=\"fill\">False</property>\n\
599                         <property name=\"position\">0</property>\n\
600                       </packing>\n\
601                     </child>\n\
602                     <child>\n\
603                       <object class=\"GxMidKnob\" id=\"gxbigknob3\">\n\
604                         <property name=\"visible\">True</property>\n\
605                         <property name=\"can_focus\">True</property>\n\
606                         <property name=\"receives_default\">True</property>\n\
607                         <property name=\"var_id\">rolandwah.Wah</property>\n\
608                         <property name=\"label_ref\">label3:rack_label</property>\n\
609                       </object>\n\
610                       <packing>\n\
611                         <property name=\"expand\">False</property>\n\
612                         <property name=\"fill\">False</property>\n\
613                         <property name=\"position\">1</property>\n\
614                       </packing>\n\
615                     </child>\n\
616                   </object>\n\
617                   <packing>\n\
618                     <property name=\"expand\">False</property>\n\
619                     <property name=\"fill\">False</property>\n\
620                     <property name=\"position\">3</property>\n\
621                   </packing>\n\
622                 </child>\n\
623                 <child>\n\
624                   <object class=\"GtkBox\" id=\"vbox5\">\n\
625                     <property name=\"visible\">True</property>\n\
626                     <property name=\"can_focus\">False</property>\n\
627                     <property name=\"orientation\">vertical</property>\n\
628                     <child>\n\
629                       <object class=\"GtkLabel\" id=\"label4:rack_label\">\n\
630                         <property name=\"visible\">True</property>\n\
631                         <property name=\"can_focus\">False</property>\n\
632                         <property name=\"label\" translatable=\"yes\">label</property>\n\
633                       </object>\n\
634                       <packing>\n\
635                         <property name=\"expand\">False</property>\n\
636                         <property name=\"fill\">False</property>\n\
637                         <property name=\"position\">0</property>\n\
638                       </packing>\n\
639                     </child>\n\
640                     <child>\n\
641                       <object class=\"GxSmallKnobR\" id=\"gxbigknob4\">\n\
642                         <property name=\"visible\">True</property>\n\
643                         <property name=\"can_focus\">True</property>\n\
644                         <property name=\"receives_default\">True</property>\n\
645                         <property name=\"var_id\">rolandwah.wet_dry</property>\n\
646                         <property name=\"label_ref\">label4:rack_label</property>\n\
647                       </object>\n\
648                       <packing>\n\
649                         <property name=\"expand\">False</property>\n\
650                         <property name=\"fill\">False</property>\n\
651                         <property name=\"position\">1</property>\n\
652                       </packing>\n\
653                     </child>\n\
654                   </object>\n\
655                   <packing>\n\
656                     <property name=\"expand\">False</property>\n\
657                     <property name=\"fill\">False</property>\n\
658                     <property name=\"position\">4</property>\n\
659                   </packing>\n\
660                 </child>\n\
661               </object>\n\
662               <packing>\n\
663                 <property name=\"expand\">True</property>\n\
664                 <property name=\"fill\">False</property>\n\
665                 <property name=\"pack_type\">end</property>\n\
666                 <property name=\"position\">0</property>\n\
667               </packing>\n\
668             </child>\n\
669           </object>\n\
670           <packing>\n\
671             <property name=\"expand\">True</property>\n\
672             <property name=\"fill\">False</property>\n\
673             <property name=\"position\">0</property>\n\
674           </packing>\n\
675         </child>\n\
676         <child>\n\
677           <object class=\"GtkBox\" id=\"minibox\">\n\
678             <property name=\"visible\">True</property>\n\
679             <property name=\"can_focus\">False</property>\n\
680             <property name=\"spacing\">4</property>\n\
681             <child>\n\
682               <object class=\"GxHSlider\" id=\"gxhslider1\">\n\
683                 <property name=\"visible\">True</property>\n\
684                 <property name=\"can_focus\">True</property>\n\
685                 <property name=\"receives_default\">True</property>\n\
686                 <property name=\"round_digits\">0</property>\n\
687                 <property name=\"var_id\">rolandwah.Wah</property>\n\
688                 <property name=\"show_value\">False</property>\n\
689                 <property name=\"value_position\">right</property>\n\
690                 <property name=\"value_xalign\">0.52000000000000002</property>\n\
691                 <property name=\"label_ref\">label0:rack_label</property>\n\
692               </object>\n\
693               <packing>\n\
694                 <property name=\"expand\">False</property>\n\
695                 <property name=\"fill\">False</property>\n\
696                 <property name=\"position\">0</property>\n\
697               </packing>\n\
698             </child>\n\
699             <child>\n\
700               <object class=\"GtkLabel\" id=\"label0:rack_label\">\n\
701                 <property name=\"visible\">True</property>\n\
702                 <property name=\"can_focus\">False</property>\n\
703                 <property name=\"label\" translatable=\"yes\">Wah</property>\n\
704                 <property name=\"xalign\">0</property>\n\
705               </object>\n\
706               <packing>\n\
707                 <property name=\"expand\">False</property>\n\
708                 <property name=\"fill\">False</property>\n\
709                 <property name=\"position\">1</property>\n\
710               </packing>\n\
711             </child>\n\
712           </object>\n\
713           <packing>\n\
714             <property name=\"expand\">True</property>\n\
715             <property name=\"fill\">True</property>\n\
716             <property name=\"position\">1</property>\n\
717           </packing>\n\
718         </child>\n\
719       </object>\n\
720     </child>\n\
721   </object>\n\
722 </interface>\n\
723 ";
724 
load_ui_f(const UiBuilder & b,int form)725 inline int Dsp::load_ui_f(const UiBuilder& b, int form)
726 {
727     if (form & UI_FORM_GLADE) {
728         b.load_glade(glade_def);
729         return 0;
730     }
731     if (form & UI_FORM_STACK) {
732 #define PARAM(p) ("rolandwah" "." p)
733 
734 b.openHorizontalhideBox("");
735     b.create_master_slider(PARAM("Wah"), "Wah");
736 b.closeBox();
737 b.openHorizontalBox("");
738 
739     b.create_selector(PARAM("mode"), "Mode");
740     b.create_small_rackknobr(PARAM("lfobpm"), "Alien Freq");
741     b.create_small_rackknobr(PARAM("Fuzz"), "Fuzz");
742    // b.create_small_rackknobr(PARAM("Gain"), "Gain");
743     b.create_small_rackknobr(PARAM("Wah"), "Wah");
744     b.create_small_rackknobr(PARAM("wet_dry"), "dry/wet");
745 b.closeBox();
746 
747 #undef PARAM
748         return 0;
749     }
750 	return -1;
751 }
752 
load_ui_f_static(const UiBuilder & b,int form)753 int Dsp::load_ui_f_static(const UiBuilder& b, int form)
754 {
755 	return static_cast<Dsp*>(b.plugin)->load_ui_f(b, form);
756 }
plugin()757 PluginDef *plugin() {
758 	return new Dsp();
759 }
760 
del_instance(PluginDef * p)761 void Dsp::del_instance(PluginDef *p)
762 {
763 	delete static_cast<Dsp*>(p);
764 }
765 
766 } // end namespace rolandwah
767 } // end namespace pluginlib
768