1 // generated from file '../src/plugins/ffreak.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 <string.h>
7 
8 namespace pluginlib {
9 namespace ffreak {
10 
11 class Dsp: public PluginDef {
12 private:
13 	int fSampleRate;
14 	double fConst0;
15 	double fConst1;
16 	FAUSTFLOAT fVslider0;
17 	double fRec0[2];
18 	FAUSTFLOAT fVslider1;
19 	double fRec2[2];
20 	double fConst3;
21 	FAUSTFLOAT fVslider2;
22 	double fRec3[2];
23 	double fConst4;
24 	double fConst6;
25 	double fConst8;
26 	FAUSTFLOAT fVslider3;
27 	double fRec4[2];
28 	double fConst10;
29 	double fConst11;
30 	double fConst13;
31 	double fConst14;
32 	double fConst16;
33 	double fConst18;
34 	double fConst20;
35 	double fConst21;
36 	double fConst23;
37 	double fConst24;
38 	double fConst26;
39 	double fConst28;
40 	double fConst30;
41 	double fConst31;
42 	double fConst33;
43 	double fConst34;
44 	double fConst36;
45 	double fConst38;
46 	double fConst40;
47 	double fConst41;
48 	double fConst42;
49 	double fConst43;
50 	double fConst44;
51 	double fConst45;
52 	double fConst46;
53 	double fConst47;
54 	double fConst48;
55 	double fConst49;
56 	double fConst50;
57 	double fConst51;
58 	double fConst52;
59 	double fConst53;
60 	double fConst54;
61 	double fConst55;
62 	double fConst56;
63 	double fConst57;
64 	double fConst58;
65 	double fConst59;
66 	double fConst60;
67 	double fConst61;
68 	double fConst62;
69 	double fConst63;
70 	double fConst64;
71 	double fConst65;
72 	double fConst67;
73 	double fConst68;
74 	double fConst70;
75 	double fConst72;
76 	double fConst74;
77 	double fConst75;
78 	double fConst77;
79 	double fConst78;
80 	double fConst80;
81 	double fConst82;
82 	double fConst84;
83 	double fConst85;
84 	double fConst86;
85 	double fConst87;
86 	double fConst88;
87 	double fConst89;
88 	double fConst90;
89 	double fConst91;
90 	double fConst92;
91 	double fConst93;
92 	double fConst94;
93 	double fConst95;
94 	double fConst96;
95 	double fConst97;
96 	double fRec1[6];
97 	double fConst99;
98 	double fConst101;
99 	double fConst103;
100 	double fConst105;
101 	double fConst107;
102 	double fConst109;
103 	double fConst111;
104 	double fConst113;
105 	double fConst115;
106 	double fConst117;
107 	double fConst119;
108 	double fConst121;
109 	double fConst123;
110 	double fConst125;
111 	double fConst127;
112 	double fConst129;
113 	double fConst131;
114 	double fConst133;
115 	double fConst135;
116 	double fConst137;
117 	double fConst139;
118 	double fConst141;
119 	double fConst143;
120 	double fConst145;
121 	double fConst146;
122 	double fConst147;
123 	double fConst148;
124 	double fConst149;
125 	double fConst150;
126 	double fConst151;
127 	double fConst152;
128 	double fConst153;
129 	double fConst154;
130 	double fConst155;
131 	double fConst156;
132 	double fConst157;
133 	double fConst158;
134 	double fConst159;
135 	double fConst160;
136 	double fConst161;
137 	double fConst162;
138 	double fConst163;
139 	double fConst164;
140 	double fConst165;
141 	double fConst166;
142 	double fConst167;
143 	double fConst168;
144 	double fConst169;
145 
146 	FAUSTFLOAT fsliderdw0;
147 	void clear_state_f();
148 	int load_ui_f(const UiBuilder& b, int form);
149 	static const char *glade_def;
150 	void init(unsigned int sample_rate);
151 	void compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0);
152 	int register_par(const ParamReg& reg);
153 
154 	static void clear_state_f_static(PluginDef*);
155 	static int load_ui_f_static(const UiBuilder& b, int form);
156 	static void init_static(unsigned int sample_rate, PluginDef*);
157 	static void compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginDef*);
158 	static int register_params_static(const ParamReg& reg);
159 	static void del_instance(PluginDef *p);
160 public:
161 	Dsp();
162 	~Dsp();
163 };
164 
165 
166 
Dsp()167 Dsp::Dsp()
168 	: PluginDef() {
169 	version = PLUGINDEF_VERSION;
170 	flags = 0;
171 	id = "ffreak";
172 	name = N_("Fat Furry Freak");
173 	groups = 0;
174 	description = N_("Extreme Bass Fuzz Monster"); // description (tooltip)
175 	category = N_("Fuzz");       // category
176 	shortname = N_("Fat FFreak");     // shortname
177 	mono_audio = compute_static;
178 	stereo_audio = 0;
179 	set_samplerate = init_static;
180 	activate_plugin = 0;
181 	register_params = register_params_static;
182 	load_ui = load_ui_f_static;
183 	clear_state = clear_state_f_static;
184 	delete_instance = del_instance;
185 }
186 
~Dsp()187 Dsp::~Dsp() {
188 }
189 
clear_state_f()190 inline void Dsp::clear_state_f()
191 {
192 	for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) fRec0[l0] = 0.0;
193 	for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) fRec2[l1] = 0.0;
194 	for (int l2 = 0; (l2 < 2); l2 = (l2 + 1)) fRec3[l2] = 0.0;
195 	for (int l3 = 0; (l3 < 2); l3 = (l3 + 1)) fRec4[l3] = 0.0;
196 	for (int l4 = 0; (l4 < 6); l4 = (l4 + 1)) fRec1[l4] = 0.0;
197 }
198 
clear_state_f_static(PluginDef * p)199 void Dsp::clear_state_f_static(PluginDef *p)
200 {
201 	static_cast<Dsp*>(p)->clear_state_f();
202 }
203 
init(unsigned int sample_rate)204 inline void Dsp::init(unsigned int sample_rate)
205 {
206 	fSampleRate = sample_rate;
207 	fConst0 = std::min<double>(192000.0, std::max<double>(1.0, double(fSampleRate)));
208 	fConst1 = mydsp_faustpower2_f(fConst0);
209 	double fConst2 = (3.3502661673929698e-23 * fConst0);
210 	fConst3 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst2 + 1.7873480648156699e-19)) + 1.90595008624394e-17)) + -1.88638248347695e-16)) + -6.5201876680611895e-16);
211 	fConst4 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst2 + 1.72846172283149e-19)) + 3.8072571713818497e-18)) + -3.2477077720450097e-17)) + -8.4419470762099498e-17);
212 	double fConst5 = (2.3822005892794199e-23 * fConst0);
213 	fConst6 = ((fConst0 * ((fConst0 * ((fConst0 * (-7.2922594272322706e-20 - fConst5)) + -2.4071143573057499e-18)) + 2.16097599157672e-17)) + 5.6493276205652504e-17);
214 	double fConst7 = (2.3264772378957199e-23 * fConst0);
215 	fConst8 = (fConst0 * ((fConst0 * ((fConst0 * (fConst7 + 7.1203189810367999e-20)) + 2.3276290219993299e-18)) + -1.8831092068550801e-17));
216 	double fConst9 = (3.2718982668413897e-23 * fConst0);
217 	fConst10 = (fConst0 * ((fConst0 * ((fConst0 * (-1.6878386115029699e-19 - fConst9)) + -3.66325429672487e-18)) + 2.8139823587366501e-17));
218 	fConst11 = ((fConst0 * ((fConst0 * ((fConst0 * (-1.74534751099098e-19 - fConst9)) + -1.8556852326307699e-17)) + 1.66102929456909e-16)) + 1.50114464615909e-16);
219 	double fConst12 = (4.0211030798770698e-23 * fConst0);
220 	fConst13 = ((fConst0 * ((fConst0 * ((fConst0 * (-2.3867993953651901e-19 - fConst12)) + -9.4400434462260698e-17)) + 2.24958749395835e-14)) + 8.8135235912485604e-14);
221 	fConst14 = ((fConst0 * ((fConst0 * ((fConst0 * (-2.31612201055921e-19 - fConst12)) + -7.3735356988903701e-17)) + 4.0005445034622704e-15)) + 1.1777572946099699e-14);
222 	double fConst15 = (2.8591979406491397e-23 * fConst0);
223 	fConst16 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst15 + 1.0470050822638701e-19)) + 3.2048993155084302e-17)) + -2.6598801796002799e-15)) + -7.8815192214512497e-15);
224 	double fConst17 = (2.7923299189887e-23 * fConst0);
225 	fConst18 = (fConst0 * ((fConst0 * ((fConst0 * (-1.0263576587599599e-19 - fConst17)) + -3.1945412756842203e-17)) + 2.6271730738170801e-15));
226 	double fConst19 = (3.9270615992151898e-23 * fConst0);
227 	fConst20 = (fConst0 * ((fConst0 * ((fConst0 * (fConst19 + 2.2673537861440999e-19)) + 7.3548635730191699e-17)) + -3.9258576486998901e-15));
228 	fConst21 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst19 + 2.33637823995467e-19)) + 9.3783138321284205e-17)) + -2.2395439003671001e-14)) + -2.09428469678622e-14);
229 	double fConst22 = (6.7005323347859302e-23 * fConst0);
230 	fConst23 = ((fConst0 * ((fConst0 * ((fConst0 * (-1.1915653765437799e-19 - fConst22)) + 3.8119001724878801e-17)) + 3.7727649669539001e-16)) + -4.3467917787074598e-16);
231 	fConst24 = ((fConst0 * ((fConst0 * ((fConst0 * (-1.1523078152209901e-19 - fConst22)) + 7.6145143427636994e-18)) + 6.4954155440900194e-17)) + -5.6279647174733002e-17);
232 	double fConst25 = (4.7644011785588299e-23 * fConst0);
233 	fConst26 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst25 + 4.8615062848215099e-20)) + -4.8142287146114999e-18)) + -4.3219519831534399e-17)) + 3.76621841371017e-17);
234 	double fConst27 = (4.6529544757914398e-23 * fConst0);
235 	fConst28 = (fConst0 * ((fConst0 * ((fConst0 * (-4.7468793206911998e-20 - fConst27)) + 4.6552580439986699e-18)) + 3.76621841371017e-17));
236 	double fConst29 = (6.54379653368279e-23 * fConst0);
237 	fConst30 = (fConst0 * ((fConst0 * ((fConst0 * (fConst29 + 1.1252257410019799e-19)) + -7.3265085934497401e-18)) + -5.6279647174733002e-17));
238 	fConst31 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst29 + 1.16356500732732e-19)) + -3.71137046526153e-17)) + -3.32205858913818e-16)) + 1.0007630974393899e-16);
239 	double fConst32 = (8.0422061597541502e-23 * fConst0);
240 	fConst33 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst32 + 1.59119959691012e-19)) + -1.88800868924521e-16)) + -4.49917498791669e-14)) + 5.8756823941657095e-14);
241 	fConst34 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst32 + 1.54408134037281e-19)) + -1.4747071397780701e-16)) + -8.0010890069245297e-15)) + 7.8517152973997801e-15);
242 	double fConst35 = (5.7183958812982795e-23 * fConst0);
243 	fConst36 = ((fConst0 * ((fConst0 * ((fConst0 * (-6.9800338817591501e-20 - fConst35)) + 6.4097986310168506e-17)) + 5.3197603592005599e-15)) + -5.2543461476341696e-15);
244 	double fConst37 = (5.5846598379774001e-23 * fConst0);
245 	fConst38 = (fConst0 * ((fConst0 * ((fConst0 * (fConst37 + 6.8423843917330603e-20)) + -6.3890825513684405e-17)) + -5.2543461476341696e-15));
246 	double fConst39 = (7.8541231984303702e-23 * fConst0);
247 	fConst40 = (fConst0 * ((fConst0 * ((fConst0 * (-1.51156919076274e-19 - fConst39)) + 1.47097271460383e-16)) + 7.8517152973997801e-15));
248 	fConst41 = ((fConst0 * ((fConst0 * ((fConst0 * (-1.5575854933031099e-19 - fConst39)) + 1.8756627664256799e-16)) + 4.4790878007342002e-14)) + -1.39618979785748e-14);
249 	fConst42 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst22 + -1.1915653765437799e-19)) + -3.8119001724878801e-17)) + 3.7727649669539001e-16)) + 4.3467917787074598e-16);
250 	fConst43 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst22 + -1.1523078152209901e-19)) + -7.6145143427636994e-18)) + 6.4954155440900194e-17)) + 5.6279647174733002e-17);
251 	fConst44 = ((fConst0 * ((fConst0 * ((fConst0 * (4.8615062848215099e-20 - fConst25)) + 4.8142287146114999e-18)) + -4.3219519831534399e-17)) + -3.76621841371017e-17);
252 	fConst45 = (fConst0 * ((fConst0 * ((fConst0 * (fConst27 + -4.7468793206911998e-20)) + -4.6552580439986699e-18)) + 3.76621841371017e-17));
253 	fConst46 = (fConst0 * ((fConst0 * ((fConst0 * (1.1252257410019799e-19 - fConst29)) + 7.3265085934497401e-18)) + -5.6279647174733002e-17));
254 	fConst47 = ((fConst0 * ((fConst0 * ((fConst0 * (1.16356500732732e-19 - fConst29)) + 3.71137046526153e-17)) + -3.32205858913818e-16)) + -1.0007630974393899e-16);
255 	fConst48 = ((fConst0 * ((fConst0 * ((fConst0 * (1.59119959691012e-19 - fConst32)) + 1.88800868924521e-16)) + -4.49917498791669e-14)) + -5.8756823941657095e-14);
256 	fConst49 = ((fConst0 * ((fConst0 * ((fConst0 * (1.54408134037281e-19 - fConst32)) + 1.4747071397780701e-16)) + -8.0010890069245297e-15)) + -7.8517152973997801e-15);
257 	fConst50 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst35 + -6.9800338817591501e-20)) + -6.4097986310168506e-17)) + 5.3197603592005599e-15)) + 5.2543461476341696e-15);
258 	fConst51 = (fConst0 * ((fConst0 * ((fConst0 * (6.8423843917330603e-20 - fConst37)) + 6.3890825513684405e-17)) + -5.2543461476341696e-15));
259 	fConst52 = (fConst0 * ((fConst0 * ((fConst0 * (fConst39 + -1.51156919076274e-19)) + -1.47097271460383e-16)) + 7.8517152973997801e-15));
260 	fConst53 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst39 + -1.5575854933031099e-19)) + -1.8756627664256799e-16)) + 4.4790878007342002e-14)) + 1.39618979785748e-14);
261 	fConst54 = ((fConst0 * ((fConst0 * ((fConst0 * (1.7873480648156699e-19 - fConst2)) + -1.90595008624394e-17)) + -1.88638248347695e-16)) + 6.5201876680611895e-16);
262 	fConst55 = ((fConst0 * ((fConst0 * ((fConst0 * (1.72846172283149e-19 - fConst2)) + -3.8072571713818497e-18)) + -3.2477077720450097e-17)) + 8.4419470762099498e-17);
263 	fConst56 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst5 + -7.2922594272322706e-20)) + 2.4071143573057499e-18)) + 2.16097599157672e-17)) + -5.6493276205652504e-17);
264 	fConst57 = (fConst0 * ((fConst0 * ((fConst0 * (7.1203189810367999e-20 - fConst7)) + -2.3276290219993299e-18)) + -1.8831092068550801e-17));
265 	fConst58 = (fConst0 * ((fConst0 * ((fConst0 * (fConst9 + -1.6878386115029699e-19)) + 3.66325429672487e-18)) + 2.8139823587366501e-17));
266 	fConst59 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst9 + -1.74534751099098e-19)) + 1.8556852326307699e-17)) + 1.66102929456909e-16)) + -1.50114464615909e-16);
267 	fConst60 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst12 + -2.3867993953651901e-19)) + 9.4400434462260698e-17)) + 2.24958749395835e-14)) + -8.8135235912485604e-14);
268 	fConst61 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst12 + -2.31612201055921e-19)) + 7.3735356988903701e-17)) + 4.0005445034622704e-15)) + -1.1777572946099699e-14);
269 	fConst62 = ((fConst0 * ((fConst0 * ((fConst0 * (1.0470050822638701e-19 - fConst15)) + -3.2048993155084302e-17)) + -2.6598801796002799e-15)) + 7.8815192214512497e-15);
270 	fConst63 = (fConst0 * ((fConst0 * ((fConst0 * (fConst17 + -1.0263576587599599e-19)) + 3.1945412756842203e-17)) + 2.6271730738170801e-15));
271 	fConst64 = (fConst0 * ((fConst0 * ((fConst0 * (2.2673537861440999e-19 - fConst19)) + -7.3548635730191699e-17)) + -3.9258576486998901e-15));
272 	fConst65 = ((fConst0 * ((fConst0 * ((fConst0 * (2.33637823995467e-19 - fConst19)) + -9.3783138321284205e-17)) + -2.2395439003671001e-14)) + 2.09428469678622e-14);
273 	double fConst66 = (6.7005323347859305e-24 * fConst0);
274 	fConst67 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst66 + -5.9578268827189105e-20)) + 1.90595008624394e-17)) + -1.88638248347695e-16)) + 2.1733958893537299e-16);
275 	fConst68 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst66 + -5.7615390761049697e-20)) + 3.8072571713818497e-18)) + -3.2477077720450097e-17)) + 2.8139823587366501e-17);
276 	double fConst69 = (4.7644011785588302e-24 * fConst0);
277 	fConst70 = ((fConst0 * ((fConst0 * ((fConst0 * (2.4307531424107601e-20 - fConst69)) + -2.4071143573057499e-18)) + 2.16097599157672e-17)) + -1.8831092068550801e-17);
278 	double fConst71 = (4.6529544757914402e-24 * fConst0);
279 	fConst72 = (fConst0 * ((fConst0 * ((fConst0 * (fConst71 + -2.3734396603455999e-20)) + 2.3276290219993299e-18)) + -1.8831092068550801e-17));
280 	double fConst73 = (6.5437965336827903e-24 * fConst0);
281 	fConst74 = (fConst0 * ((fConst0 * ((fConst0 * (5.6261287050099103e-20 - fConst73)) + -3.66325429672487e-18)) + 2.8139823587366501e-17));
282 	fConst75 = ((fConst0 * ((fConst0 * ((fConst0 * (5.8178250366366002e-20 - fConst73)) + -1.8556852326307699e-17)) + 1.66102929456909e-16)) + -5.0038154871969701e-17);
283 	double fConst76 = (8.0422061597541496e-24 * fConst0);
284 	fConst77 = ((fConst0 * ((fConst0 * ((fConst0 * (7.9559979845506204e-20 - fConst76)) + -9.4400434462260698e-17)) + 2.24958749395835e-14)) + -2.9378411970828497e-14);
285 	fConst78 = ((fConst0 * ((fConst0 * ((fConst0 * (7.7204067018640298e-20 - fConst76)) + -7.3735356988903701e-17)) + 4.0005445034622704e-15)) + -3.9258576486998901e-15);
286 	double fConst79 = (5.7183958812982797e-24 * fConst0);
287 	fConst80 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst79 + -3.4900169408795799e-20)) + 3.2048993155084302e-17)) + -2.6598801796002799e-15)) + 2.6271730738170801e-15);
288 	double fConst81 = (5.5846598379774004e-24 * fConst0);
289 	fConst82 = (fConst0 * ((fConst0 * ((fConst0 * (3.4211921958665301e-20 - fConst81)) + -3.1945412756842203e-17)) + 2.6271730738170801e-15));
290 	double fConst83 = (7.8541231984303702e-24 * fConst0);
291 	fConst84 = (fConst0 * ((fConst0 * ((fConst0 * (fConst83 + -7.5578459538136805e-20)) + 7.3548635730191699e-17)) + -3.9258576486998901e-15));
292 	fConst85 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst83 + -7.7879274665155701e-20)) + 9.3783138321284205e-17)) + -2.2395439003671001e-14)) + 6.9809489892874e-15);
293 	fConst86 = ((fConst0 * ((fConst0 * ((fConst0 * (-5.9578268827189105e-20 - fConst66)) + -1.90595008624394e-17)) + -1.88638248347695e-16)) + -2.1733958893537299e-16);
294 	fConst87 = ((fConst0 * ((fConst0 * ((fConst0 * (-5.7615390761049697e-20 - fConst66)) + -3.8072571713818497e-18)) + -3.2477077720450097e-17)) + -2.8139823587366501e-17);
295 	fConst88 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst69 + 2.4307531424107601e-20)) + 2.4071143573057499e-18)) + 2.16097599157672e-17)) + 1.8831092068550801e-17);
296 	fConst89 = (fConst0 * ((fConst0 * ((fConst0 * (-2.3734396603455999e-20 - fConst71)) + -2.3276290219993299e-18)) + -1.8831092068550801e-17));
297 	fConst90 = (fConst0 * ((fConst0 * ((fConst0 * (fConst73 + 5.6261287050099103e-20)) + 3.66325429672487e-18)) + 2.8139823587366501e-17));
298 	fConst91 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst73 + 5.8178250366366002e-20)) + 1.8556852326307699e-17)) + 1.66102929456909e-16)) + 5.0038154871969701e-17);
299 	fConst92 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst76 + 7.9559979845506204e-20)) + 9.4400434462260698e-17)) + 2.24958749395835e-14)) + 2.9378411970828497e-14);
300 	fConst93 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst76 + 7.7204067018640298e-20)) + 7.3735356988903701e-17)) + 4.0005445034622704e-15)) + 3.9258576486998901e-15);
301 	fConst94 = ((fConst0 * ((fConst0 * ((fConst0 * (-3.4900169408795799e-20 - fConst79)) + -3.2048993155084302e-17)) + -2.6598801796002799e-15)) + -2.6271730738170801e-15);
302 	fConst95 = (fConst0 * ((fConst0 * ((fConst0 * (fConst81 + 3.4211921958665301e-20)) + 3.1945412756842203e-17)) + 2.6271730738170801e-15));
303 	fConst96 = (fConst0 * ((fConst0 * ((fConst0 * (-7.5578459538136805e-20 - fConst83)) + -7.3548635730191699e-17)) + -3.9258576486998901e-15));
304 	fConst97 = ((fConst0 * ((fConst0 * ((fConst0 * (-7.7879274665155701e-20 - fConst83)) + -9.3783138321284205e-17)) + -2.2395439003671001e-14)) + -6.9809489892874e-15);
305 	double fConst98 = (2.24478316881583e-18 * fConst0);
306 	fConst99 = ((fConst0 * (-1.8662501140321701e-14 - fConst98)) + -1.2958987682722301e-14);
307 	double fConst100 = (1.5588772005664601e-18 * fConst0);
308 	fConst101 = (fConst0 * (fConst100 + 1.2958987682722301e-14));
309 	double fConst102 = (3.3359559144521401e-21 * fConst0);
310 	fConst103 = ((fConst0 * (-1.6692603703996201e-17 - fConst102)) + -1.1590477130516399e-17);
311 	double fConst104 = (2.3166360517027401e-21 * fConst0);
312 	fConst105 = (fConst0 * (fConst104 + 1.1590477130516399e-17));
313 	double fConst106 = (4.01337447559094e-21 * fConst0);
314 	fConst107 = ((fConst0 * (fConst106 + 2.0082303777310401e-17)) + 1.39597416617563e-17);
315 	double fConst108 = (2.7901906402916699e-21 * fConst0);
316 	fConst109 = (fConst0 * (-1.39597416617563e-17 - fConst108));
317 	double fConst110 = (2.70062186191725e-18 * fConst0);
318 	fConst111 = ((fConst0 * (fConst110 + 2.24522189930002e-14)) + 1.5607995961821499e-14);
319 	double fConst112 = (1.8775347000180101e-18 * fConst0);
320 	fConst113 = (fConst0 * (-1.5607995961821499e-14 - fConst112));
321 	double fConst114 = (6.7343495064474998e-18 * fConst0);
322 	fConst115 = ((fConst0 * (fConst114 + 1.8662501140321701e-14)) + -1.2958987682722301e-14);
323 	double fConst116 = (4.6766316016993804e-18 * fConst0);
324 	fConst117 = (fConst0 * (-1.2958987682722301e-14 - fConst116));
325 	double fConst118 = (1.66797795722607e-20 * fConst0);
326 	fConst119 = ((fConst0 * (fConst118 + 5.0077811111988598e-17)) + 1.1590477130516399e-17);
327 	double fConst120 = (1.1583180258513701e-20 * fConst0);
328 	fConst121 = (fConst0 * (-3.47714313915491e-17 - fConst120));
329 	double fConst122 = (2.0066872377954701e-20 * fConst0);
330 	fConst123 = ((fConst0 * (-6.02469113319311e-17 - fConst122)) + -1.39597416617563e-17);
331 	double fConst124 = (1.39509532014583e-20 * fConst0);
332 	fConst125 = (fConst0 * (fConst124 + 4.1879224985268799e-17));
333 	double fConst126 = (8.1018655857517603e-18 * fConst0);
334 	fConst127 = ((fConst0 * (-2.24522189930002e-14 - fConst126)) + 1.5607995961821499e-14);
335 	double fConst128 = (5.6326041000540296e-18 * fConst0);
336 	fConst129 = (fConst0 * (fConst128 + 1.5607995961821499e-14));
337 	double fConst130 = (4.4895663376316601e-18 * fConst0);
338 	fConst131 = ((fConst0 * (3.7325002280643301e-14 - fConst130)) + 2.59179753654445e-14);
339 	double fConst132 = (3.1177544011329201e-18 * fConst0);
340 	fConst133 = (fConst0 * (fConst132 + -2.59179753654445e-14));
341 	double fConst134 = (3.3359559144521401e-20 * fConst0);
342 	fConst135 = ((fConst0 * (-3.3385207407992403e-17 - fConst134)) + 2.31809542610327e-17);
343 	double fConst136 = (2.3166360517027401e-20 * fConst0);
344 	fConst137 = (fConst0 * (fConst136 + 2.31809542610327e-17));
345 	double fConst138 = (4.0133744755909402e-20 * fConst0);
346 	fConst139 = ((fConst0 * (fConst138 + 4.0164607554620703e-17)) + -2.79194833235126e-17);
347 	double fConst140 = (2.7901906402916703e-20 * fConst0);
348 	fConst141 = (fConst0 * (-2.79194833235126e-17 - fConst140));
349 	double fConst142 = (5.4012437238345099e-18 * fConst0);
350 	fConst143 = ((fConst0 * (fConst142 + -4.49044379860004e-14)) + -3.1215991923643099e-14);
351 	double fConst144 = (3.7550694000360203e-18 * fConst0);
352 	fConst145 = (fConst0 * (3.1215991923643099e-14 - fConst144));
353 	fConst146 = ((fConst0 * (-3.7325002280643301e-14 - fConst130)) + 2.59179753654445e-14);
354 	fConst147 = (fConst0 * (fConst132 + 2.59179753654445e-14));
355 	fConst148 = ((fConst0 * (fConst134 + -3.3385207407992403e-17)) + -2.31809542610327e-17);
356 	fConst149 = (fConst0 * (2.31809542610327e-17 - fConst136));
357 	fConst150 = ((fConst0 * (4.0164607554620703e-17 - fConst138)) + 2.79194833235126e-17);
358 	fConst151 = (fConst0 * (fConst140 + -2.79194833235126e-17));
359 	fConst152 = ((fConst0 * (fConst142 + 4.49044379860004e-14)) + -3.1215991923643099e-14);
360 	fConst153 = (fConst0 * (-3.1215991923643099e-14 - fConst144));
361 	fConst154 = ((fConst0 * (fConst114 + -1.8662501140321701e-14)) + -1.2958987682722301e-14);
362 	fConst155 = (fConst0 * (1.2958987682722301e-14 - fConst116));
363 	fConst156 = ((fConst0 * (5.0077811111988598e-17 - fConst118)) + -1.1590477130516399e-17);
364 	fConst157 = (fConst0 * (fConst120 + -3.47714313915491e-17));
365 	fConst158 = ((fConst0 * (fConst122 + -6.02469113319311e-17)) + 1.39597416617563e-17);
366 	fConst159 = (fConst0 * (4.1879224985268799e-17 - fConst124));
367 	fConst160 = ((fConst0 * (2.24522189930002e-14 - fConst126)) + 1.5607995961821499e-14);
368 	fConst161 = (fConst0 * (fConst128 + -1.5607995961821499e-14));
369 	fConst162 = ((fConst0 * (1.8662501140321701e-14 - fConst98)) + -1.2958987682722301e-14);
370 	fConst163 = (fConst0 * (fConst100 + -1.2958987682722301e-14));
371 	fConst164 = ((fConst0 * (fConst102 + -1.6692603703996201e-17)) + 1.1590477130516399e-17);
372 	fConst165 = (fConst0 * (1.1590477130516399e-17 - fConst104));
373 	fConst166 = ((fConst0 * (2.0082303777310401e-17 - fConst106)) + -1.39597416617563e-17);
374 	fConst167 = (fConst0 * (fConst108 + -1.39597416617563e-17));
375 	fConst168 = ((fConst0 * (fConst110 + -2.24522189930002e-14)) + 1.5607995961821499e-14);
376 	fConst169 = (fConst0 * (1.5607995961821499e-14 - fConst112));
377 	clear_state_f();
378 }
379 
init_static(unsigned int sample_rate,PluginDef * p)380 void Dsp::init_static(unsigned int sample_rate, PluginDef *p)
381 {
382 	static_cast<Dsp*>(p)->init(sample_rate);
383 }
384 
compute(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0)385 void always_inline Dsp::compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0)
386 {
387 	double 	fSlowdw0 = (0.01 * fsliderdw0);
388 	double 	fSlowdw1 = (1 - fSlowdw0);
389 	FAUSTFLOAT 	dryinput[count];
390 	memcpy(&dryinput, input0, count * sizeof(float));
391 
392 	double fSlow0 = (0.00035000000000000032 * (double(fVslider0) + 0.01));
393 	double fSlow1 = (0.0070000000000000062 * double(fVslider1));
394 	double fSlow2 = (0.0070000000000000062 * double(fVslider2));
395 	double fSlow3 = (0.0070000000000000062 * double(fVslider3));
396 	for (int i0 = 0; (i0 < count); i0 = (i0 + 1)) {
397 		fRec0[0] = (fSlow0 + (0.99299999999999999 * fRec0[1]));
398 		fRec2[0] = (fSlow1 + (0.99299999999999999 * fRec2[1]));
399 		fRec3[0] = (fSlow2 + (0.99299999999999999 * fRec3[1]));
400 		fRec4[0] = (fSlow3 + (0.99299999999999999 * fRec4[1]));
401 		double fTemp0 = (((fRec2[0] * ((fConst0 * (fConst86 + ((fRec3[0] * (fConst87 + ((fRec3[0] * (fConst88 + (fConst89 * fRec4[0]))) + (fConst90 * fRec4[0])))) + (fConst91 * fRec4[0])))) + -5.0038154871969701e-17)) + (fConst0 * (fConst92 + ((fRec3[0] * (fConst93 + ((fRec3[0] * (fConst94 + (fConst95 * fRec4[0]))) + (fConst96 * fRec4[0])))) + (fConst97 * fRec4[0]))))) + 6.9809489892874e-15);
402 		fRec1[0] = (double(input0[i0]) - ((((((fRec1[1] * (((fRec2[0] * ((fConst0 * (fConst3 + ((fRec3[0] * (fConst4 + ((fRec3[0] * (fConst6 + (fConst8 * fRec4[0]))) + (fConst10 * fRec4[0])))) + (fConst11 * fRec4[0])))) + -2.5019077435984898e-16)) + (fConst0 * (fConst13 + ((fRec3[0] * (fConst14 + ((fRec3[0] * (fConst16 + (fConst18 * fRec4[0]))) + (fConst20 * fRec4[0])))) + (fConst21 * fRec4[0]))))) + 3.4904744946437e-14)) + (fRec1[2] * (((fRec2[0] * ((fConst0 * (fConst23 + ((fRec3[0] * (fConst24 + ((fRec3[0] * (fConst26 + (fConst28 * fRec4[0]))) + (fConst30 * fRec4[0])))) + (fConst31 * fRec4[0])))) + -5.0038154871969697e-16)) + (fConst0 * (fConst33 + ((fRec3[0] * (fConst34 + ((fRec3[0] * (fConst36 + (fConst38 * fRec4[0]))) + (fConst40 * fRec4[0])))) + (fConst41 * fRec4[0]))))) + 6.9809489892874e-14))) + (fRec1[3] * (((fRec2[0] * ((fConst0 * (fConst42 + ((fRec3[0] * (fConst43 + ((fRec3[0] * (fConst44 + (fConst45 * fRec4[0]))) + (fConst46 * fRec4[0])))) + (fConst47 * fRec4[0])))) + -5.0038154871969697e-16)) + (fConst0 * (fConst48 + ((fRec3[0] * (fConst49 + ((fRec3[0] * (fConst50 + (fConst51 * fRec4[0]))) + (fConst52 * fRec4[0])))) + (fConst53 * fRec4[0]))))) + 6.9809489892874e-14))) + (fRec1[4] * (((fRec2[0] * ((fConst0 * (fConst54 + ((fRec3[0] * (fConst55 + ((fRec3[0] * (fConst56 + (fConst57 * fRec4[0]))) + (fConst58 * fRec4[0])))) + (fConst59 * fRec4[0])))) + -2.5019077435984898e-16)) + (fConst0 * (fConst60 + ((fRec3[0] * (fConst61 + ((fRec3[0] * (fConst62 + (fConst63 * fRec4[0]))) + (fConst64 * fRec4[0])))) + (fConst65 * fRec4[0]))))) + 3.4904744946437e-14))) + (fRec1[5] * (((fRec2[0] * ((fConst0 * (fConst67 + ((fRec3[0] * (fConst68 + ((fRec3[0] * (fConst70 + (fConst72 * fRec4[0]))) + (fConst74 * fRec4[0])))) + (fConst75 * fRec4[0])))) + -5.0038154871969701e-17)) + (fConst0 * (fConst77 + ((fRec3[0] * (fConst78 + ((fRec3[0] * (fConst80 + (fConst82 * fRec4[0]))) + (fConst84 * fRec4[0])))) + (fConst85 * fRec4[0]))))) + 6.9809489892874e-15))) / fTemp0));
403 		output0[i0] = FAUSTFLOAT((0.31830988618379069 * std::atan((fConst1 * ((fRec0[0] * ((((((fRec1[0] * (((fRec2[0] * ((fConst99 + (fConst101 * fRec4[0])) + (fConst0 * (fRec3[0] * (fConst103 + (fConst105 * fRec4[0])))))) + (fConst0 * (fRec3[0] * (fConst107 + (fConst109 * fRec4[0]))))) + (fConst111 + (fConst113 * fRec4[0])))) + (fRec1[1] * (((fRec2[0] * ((fConst115 + (fConst117 * fRec4[0])) + (fConst0 * (fRec3[0] * (fConst119 + (fConst121 * fRec4[0])))))) + (fConst0 * (fRec3[0] * (fConst123 + (fConst125 * fRec4[0]))))) + (fConst127 + (fConst129 * fRec4[0]))))) + (fRec1[2] * (((fRec2[0] * ((fConst131 + (fConst133 * fRec4[0])) + (fConst0 * (fRec3[0] * (fConst135 + (fConst137 * fRec4[0])))))) + (fConst0 * (fRec3[0] * (fConst139 + (fConst141 * fRec4[0]))))) + (fConst143 + (fConst145 * fRec4[0]))))) + (fRec1[3] * (((fRec2[0] * ((fConst146 + (fConst147 * fRec4[0])) + (fConst0 * (fRec3[0] * (fConst148 + (fConst149 * fRec4[0])))))) + (fConst0 * (fRec3[0] * (fConst150 + (fConst151 * fRec4[0]))))) + (fConst152 + (fConst153 * fRec4[0]))))) + (fRec1[4] * (((fRec2[0] * ((fConst154 + (fConst155 * fRec4[0])) + (fConst0 * (fRec3[0] * (fConst156 + (fConst157 * fRec4[0])))))) + (fConst0 * (fRec3[0] * (fConst158 + (fConst159 * fRec4[0]))))) + (fConst160 + (fConst161 * fRec4[0]))))) + (fRec1[5] * (((fRec2[0] * ((fConst162 + (fConst163 * fRec4[0])) + (fConst0 * (fRec3[0] * (fConst164 + (fConst165 * fRec4[0])))))) + (fConst0 * (fRec3[0] * (fConst166 + (fConst167 * fRec4[0]))))) + (fConst168 + (fConst169 * fRec4[0])))))) / fTemp0)))));
404 		fRec0[1] = fRec0[0];
405 		fRec2[1] = fRec2[0];
406 		fRec3[1] = fRec3[0];
407 		fRec4[1] = fRec4[0];
408 		for (int j0 = 5; (j0 > 0); j0 = (j0 - 1)) {
409 			fRec1[j0] = fRec1[(j0 - 1)];
410 		}
411 	}
412 	for (int i=0; i<count; i++) {
413 		output0[i] = ((fSlowdw1 * (double)dryinput[i]) + (fSlowdw0 * (double)output0[i]));
414 	}
415 
416 }
417 
compute_static(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0,PluginDef * p)418 void __rt_func Dsp::compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginDef *p)
419 {
420 	static_cast<Dsp*>(p)->compute(count, input0, output0);
421 }
422 
register_par(const ParamReg & reg)423 int Dsp::register_par(const ParamReg& reg)
424 {
425 	reg.registerFloatVar("ffreak.wet_dry",N_("Dry/Wet"),"S",N_("percentage of processed signal in output signal"),&fsliderdw0, 1e+02, 0.0, 1e+02, 1.0, 0);
426 	reg.registerFloatVar("ffreak.Fuzz",N_("Fuzz"),"S","",&fVslider3, 0.5, 0.0, 1.0, 0.01, 0);
427 	reg.registerFloatVar("ffreak.Gate",N_("Gate"),"S","",&fVslider1, 0.5, 0.0, 1.0, 0.01, 0);
428 	reg.registerFloatVar("ffreak.Level",N_("Level"),"S","",&fVslider0, 0.5, 0.0, 1.0, 0.01, 0);
429 	reg.registerFloatVar("ffreak.Tone",N_("Tone"),"S","",&fVslider2, 0.5, 0.0, 1.0, 0.01, 0);
430 	return 0;
431 }
432 
register_params_static(const ParamReg & reg)433 int Dsp::register_params_static(const ParamReg& reg)
434 {
435 	return static_cast<Dsp*>(reg.plugin)->register_par(reg);
436 }
437 
438 const char *Dsp::glade_def = "\
439 <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
440 <!-- Generated with glade 3.22.1 -->\n\
441 <interface>\n\
442   <requires lib=\"gtk+\" version=\"3.20\"/>\n\
443   <requires lib=\"gxwidgets\" version=\"0.0\"/>\n\
444   <object class=\"GtkWindow\" id=\"window1\">\n\
445     <property name=\"can_focus\">False</property>\n\
446     <child>\n\
447       <placeholder/>\n\
448     </child>\n\
449     <child>\n\
450       <object class=\"GtkBox\" id=\"vbox1\">\n\
451         <property name=\"visible\">True</property>\n\
452         <property name=\"can_focus\">False</property>\n\
453         <property name=\"orientation\">vertical</property>\n\
454         <child>\n\
455           <object class=\"GtkBox\" id=\"rackbox\">\n\
456             <property name=\"visible\">True</property>\n\
457             <property name=\"can_focus\">False</property>\n\
458             <property name=\"spacing\">4</property>\n\
459             <child>\n\
460               <object class=\"GtkBox\" id=\"hbox1\">\n\
461                 <property name=\"visible\">True</property>\n\
462                 <property name=\"can_focus\">False</property>\n\
463                 <property name=\"spacing\">10</property>\n\
464                 <child>\n\
465                   <object class=\"GtkBox\" id=\"vbox2\">\n\
466                     <property name=\"visible\">True</property>\n\
467                     <property name=\"can_focus\">False</property>\n\
468                     <property name=\"orientation\">vertical</property>\n\
469                     <child>\n\
470                       <object class=\"GtkLabel\" id=\"label1:rack_label\">\n\
471                         <property name=\"visible\">True</property>\n\
472                         <property name=\"can_focus\">False</property>\n\
473                         <property name=\"label\" translatable=\"yes\">label</property>\n\
474                       </object>\n\
475                       <packing>\n\
476                         <property name=\"expand\">False</property>\n\
477                         <property name=\"fill\">False</property>\n\
478                         <property name=\"position\">0</property>\n\
479                       </packing>\n\
480                     </child>\n\
481                     <child>\n\
482                       <object class=\"GxSmallKnobR\" id=\"gxbigknob1\">\n\
483                         <property name=\"visible\">True</property>\n\
484                         <property name=\"can_focus\">True</property>\n\
485                         <property name=\"receives_default\">True</property>\n\
486                         <property name=\"var_id\">ffreak.Gate</property>\n\
487                         <property name=\"label_ref\">label1:rack_label</property>\n\
488                       </object>\n\
489                       <packing>\n\
490                         <property name=\"expand\">False</property>\n\
491                         <property name=\"fill\">False</property>\n\
492                         <property name=\"position\">1</property>\n\
493                       </packing>\n\
494                     </child>\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\">0</property>\n\
500                   </packing>\n\
501                 </child>\n\
502                 <child>\n\
503                   <object class=\"GtkBox\" id=\"vbox3\">\n\
504                     <property name=\"visible\">True</property>\n\
505                     <property name=\"can_focus\">False</property>\n\
506                     <property name=\"orientation\">vertical</property>\n\
507                     <child>\n\
508                       <object class=\"GtkLabel\" id=\"label2:rack_label\">\n\
509                         <property name=\"visible\">True</property>\n\
510                         <property name=\"can_focus\">False</property>\n\
511                         <property name=\"label\" translatable=\"yes\">label</property>\n\
512                       </object>\n\
513                       <packing>\n\
514                         <property name=\"expand\">False</property>\n\
515                         <property name=\"fill\">False</property>\n\
516                         <property name=\"position\">0</property>\n\
517                       </packing>\n\
518                     </child>\n\
519                     <child>\n\
520                       <object class=\"GxSmallKnobR\" id=\"gxbigknob2\">\n\
521                         <property name=\"visible\">True</property>\n\
522                         <property name=\"can_focus\">True</property>\n\
523                         <property name=\"receives_default\">True</property>\n\
524                         <property name=\"var_id\">ffreak.Fuzz</property>\n\
525                         <property name=\"label_ref\">label2:rack_label</property>\n\
526                       </object>\n\
527                       <packing>\n\
528                         <property name=\"expand\">False</property>\n\
529                         <property name=\"fill\">False</property>\n\
530                         <property name=\"position\">1</property>\n\
531                       </packing>\n\
532                     </child>\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                 <child>\n\
541                   <object class=\"GtkBox\" id=\"vbox4\">\n\
542                     <property name=\"visible\">True</property>\n\
543                     <property name=\"can_focus\">False</property>\n\
544                     <property name=\"orientation\">vertical</property>\n\
545                     <child>\n\
546                       <object class=\"GtkLabel\" id=\"label3:rack_label\">\n\
547                         <property name=\"visible\">True</property>\n\
548                         <property name=\"can_focus\">False</property>\n\
549                         <property name=\"label\" translatable=\"yes\">label</property>\n\
550                       </object>\n\
551                       <packing>\n\
552                         <property name=\"expand\">False</property>\n\
553                         <property name=\"fill\">False</property>\n\
554                         <property name=\"position\">0</property>\n\
555                       </packing>\n\
556                     </child>\n\
557                     <child>\n\
558                       <object class=\"GxSmallKnobR\" id=\"gxbigknob3\">\n\
559                         <property name=\"visible\">True</property>\n\
560                         <property name=\"can_focus\">True</property>\n\
561                         <property name=\"receives_default\">True</property>\n\
562                         <property name=\"var_id\">ffreak.Tone</property>\n\
563                         <property name=\"label_ref\">label3:rack_label</property>\n\
564                       </object>\n\
565                       <packing>\n\
566                         <property name=\"expand\">False</property>\n\
567                         <property name=\"fill\">False</property>\n\
568                         <property name=\"position\">1</property>\n\
569                       </packing>\n\
570                     </child>\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\">2</property>\n\
576                   </packing>\n\
577                 </child>\n\
578                 <child>\n\
579                   <object class=\"GtkBox\" id=\"vbox5\">\n\
580                     <property name=\"visible\">True</property>\n\
581                     <property name=\"can_focus\">False</property>\n\
582                     <property name=\"orientation\">vertical</property>\n\
583                     <child>\n\
584                       <object class=\"GtkLabel\" id=\"label4:rack_label\">\n\
585                         <property name=\"visible\">True</property>\n\
586                         <property name=\"can_focus\">False</property>\n\
587                         <property name=\"label\" translatable=\"yes\">label</property>\n\
588                       </object>\n\
589                       <packing>\n\
590                         <property name=\"expand\">False</property>\n\
591                         <property name=\"fill\">False</property>\n\
592                         <property name=\"position\">0</property>\n\
593                       </packing>\n\
594                     </child>\n\
595                     <child>\n\
596                       <object class=\"GxMidKnob\" id=\"gxbigknob4\">\n\
597                         <property name=\"visible\">True</property>\n\
598                         <property name=\"can_focus\">True</property>\n\
599                         <property name=\"receives_default\">True</property>\n\
600                         <property name=\"var_id\">ffreak.Level</property>\n\
601                         <property name=\"label_ref\">label4:rack_label</property>\n\
602                       </object>\n\
603                       <packing>\n\
604                         <property name=\"expand\">False</property>\n\
605                         <property name=\"fill\">False</property>\n\
606                         <property name=\"position\">1</property>\n\
607                       </packing>\n\
608                     </child>\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\">3</property>\n\
614                   </packing>\n\
615                 </child>\n\
616                 <child>\n\
617                   <object class=\"GtkBox\" id=\"vbox6\">\n\
618                     <property name=\"visible\">True</property>\n\
619                     <property name=\"can_focus\">False</property>\n\
620                     <property name=\"orientation\">vertical</property>\n\
621                     <child>\n\
622                       <object class=\"GtkLabel\" id=\"label5:rack_label\">\n\
623                         <property name=\"visible\">True</property>\n\
624                         <property name=\"can_focus\">False</property>\n\
625                         <property name=\"label\" translatable=\"yes\">label</property>\n\
626                       </object>\n\
627                       <packing>\n\
628                         <property name=\"expand\">False</property>\n\
629                         <property name=\"fill\">False</property>\n\
630                         <property name=\"position\">0</property>\n\
631                       </packing>\n\
632                     </child>\n\
633                     <child>\n\
634                       <object class=\"GxSmallKnobR\" id=\"gxbigknob5\">\n\
635                         <property name=\"visible\">True</property>\n\
636                         <property name=\"can_focus\">True</property>\n\
637                         <property name=\"receives_default\">True</property>\n\
638                         <property name=\"var_id\">ffreak.wet_dry</property>\n\
639                         <property name=\"label_ref\">label5:rack_label</property>\n\
640                       </object>\n\
641                       <packing>\n\
642                         <property name=\"expand\">False</property>\n\
643                         <property name=\"fill\">False</property>\n\
644                         <property name=\"position\">1</property>\n\
645                       </packing>\n\
646                     </child>\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\">4</property>\n\
652                   </packing>\n\
653                 </child>\n\
654               </object>\n\
655               <packing>\n\
656                 <property name=\"expand\">True</property>\n\
657                 <property name=\"fill\">False</property>\n\
658                 <property name=\"pack_type\">end</property>\n\
659                 <property name=\"position\">0</property>\n\
660               </packing>\n\
661             </child>\n\
662           </object>\n\
663           <packing>\n\
664             <property name=\"expand\">True</property>\n\
665             <property name=\"fill\">False</property>\n\
666             <property name=\"position\">0</property>\n\
667           </packing>\n\
668         </child>\n\
669         <child>\n\
670           <object class=\"GtkBox\" id=\"minibox\">\n\
671             <property name=\"visible\">True</property>\n\
672             <property name=\"can_focus\">False</property>\n\
673             <property name=\"spacing\">4</property>\n\
674             <child>\n\
675               <object class=\"GxHSlider\" id=\"gxhslider1\">\n\
676                 <property name=\"visible\">True</property>\n\
677                 <property name=\"can_focus\">True</property>\n\
678                 <property name=\"receives_default\">True</property>\n\
679                 <property name=\"round_digits\">0</property>\n\
680                 <property name=\"var_id\">ffreak.Level</property>\n\
681                 <property name=\"show_value\">False</property>\n\
682                 <property name=\"value_position\">right</property>\n\
683                 <property name=\"value_xalign\">0.52000000000000002</property>\n\
684                 <property name=\"label_ref\">label0:rack_label</property>\n\
685               </object>\n\
686               <packing>\n\
687                 <property name=\"expand\">False</property>\n\
688                 <property name=\"fill\">False</property>\n\
689                 <property name=\"position\">0</property>\n\
690               </packing>\n\
691             </child>\n\
692             <child>\n\
693               <object class=\"GtkLabel\" id=\"label0:rack_label\">\n\
694                 <property name=\"visible\">True</property>\n\
695                 <property name=\"can_focus\">False</property>\n\
696                 <property name=\"label\" translatable=\"yes\">Level</property>\n\
697                 <property name=\"xalign\">0</property>\n\
698               </object>\n\
699               <packing>\n\
700                 <property name=\"expand\">False</property>\n\
701                 <property name=\"fill\">False</property>\n\
702                 <property name=\"position\">1</property>\n\
703               </packing>\n\
704             </child>\n\
705           </object>\n\
706           <packing>\n\
707             <property name=\"expand\">True</property>\n\
708             <property name=\"fill\">True</property>\n\
709             <property name=\"position\">1</property>\n\
710           </packing>\n\
711         </child>\n\
712       </object>\n\
713     </child>\n\
714   </object>\n\
715 </interface>\n\
716 ";
717 
load_ui_f(const UiBuilder & b,int form)718 inline int Dsp::load_ui_f(const UiBuilder& b, int form)
719 {
720     if (form & UI_FORM_GLADE) {
721         b.load_glade(glade_def);
722         return 0;
723     }
724     if (form & UI_FORM_STACK) {
725 #define PARAM(p) ("ffreak" "." p)
726 
727 b.openHorizontalhideBox("");
728     b.create_master_slider(PARAM("Fuzz"), "Fuzz");
729 b.closeBox();
730 b.openHorizontalBox("");
731 
732     b.create_small_rackknobr(PARAM("Fuzz"), "Fuzz");
733 
734     b.create_small_rackknobr(PARAM("Tone"), "Tone");
735 
736     b.create_small_rackknobr(PARAM("Gate"), "Gate");
737 
738     b.create_small_rackknobr(PARAM("Level"), "Level");
739     b.create_small_rackknobr(PARAM("wet_dry"), "dry/wet");
740 b.closeBox();
741 
742 #undef PARAM
743         return 0;
744     }
745 	return -1;
746 }
747 
load_ui_f_static(const UiBuilder & b,int form)748 int Dsp::load_ui_f_static(const UiBuilder& b, int form)
749 {
750 	return static_cast<Dsp*>(b.plugin)->load_ui_f(b, form);
751 }
plugin()752 PluginDef *plugin() {
753 	return new Dsp();
754 }
755 
del_instance(PluginDef * p)756 void Dsp::del_instance(PluginDef *p)
757 {
758 	delete static_cast<Dsp*>(p);
759 }
760 
761 } // end namespace ffreak
762 } // end namespace pluginlib
763