1 // generated from file '../src/plugins/fuzzfacefm.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
7 #include "clipping.h"
8
9 namespace pluginlib {
10 namespace fuzzfacefm {
11
12 class Dsp: public PluginDef {
13 private:
14 int fSampleRate;
15 FAUSTFLOAT fVslider0;
16 double fRec1[2];
17 double fConst0;
18 double fConst2;
19 FAUSTFLOAT fVslider1;
20 double fRec2[2];
21 double fConst4;
22 double fConst6;
23 double fConst8;
24 double fConst10;
25 double fConst12;
26 FAUSTFLOAT fVslider2;
27 double fRec3[2];
28 double fConst14;
29 double fConst16;
30 double fConst18;
31 double fConst20;
32 double fConst22;
33 double fConst24;
34 double fConst25;
35 double fConst26;
36 double fConst27;
37 double fConst28;
38 double fConst29;
39 double fConst30;
40 double fConst31;
41 double fConst32;
42 double fConst33;
43 double fConst34;
44 double fConst35;
45 double fConst36;
46 double fConst38;
47 double fConst40;
48 double fConst42;
49 double fConst44;
50 double fConst46;
51 double fConst48;
52 double fConst50;
53 double fConst52;
54 double fConst54;
55 double fConst56;
56 double fConst58;
57 double fConst60;
58 double fConst61;
59 double fConst62;
60 double fConst63;
61 double fConst64;
62 double fConst65;
63 double fConst66;
64 double fConst67;
65 double fConst68;
66 double fConst69;
67 double fConst70;
68 double fConst71;
69 double fConst72;
70 double fRec0[4];
71 double fConst74;
72 double fConst75;
73 double fConst76;
74 double fConst78;
75 double fConst80;
76 double fConst82;
77 double fConst84;
78 double fConst87;
79 double fConst88;
80 double fConst89;
81 double fConst91;
82 double fConst93;
83 double fConst94;
84 double fConst95;
85 double fConst96;
86 double fConst97;
87 double fConst98;
88 double fConst99;
89 double fConst100;
90 double fConst101;
91 double fConst102;
92 double fConst103;
93 double fConst104;
94
95
96 gx_resample::FixedRateResampler smpCl;
97
98 FAUSTFLOAT fsliderV0;
99 double fRecV0[2];
100 void clear_state_f();
101 int load_ui_f(const UiBuilder& b, int form);
102 static const char *glade_def;
103 void init(unsigned int sample_rate);
104 void compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0);
105 int register_par(const ParamReg& reg);
106
107 static void clear_state_f_static(PluginDef*);
108 static int load_ui_f_static(const UiBuilder& b, int form);
109 static void init_static(unsigned int sample_rate, PluginDef*);
110 static void compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginDef*);
111 static int register_params_static(const ParamReg& reg);
112 static void del_instance(PluginDef *p);
113 public:
114 Dsp();
115 ~Dsp();
116 };
117
118
119
Dsp()120 Dsp::Dsp()
121 : PluginDef() {
122 version = PLUGINDEF_VERSION;
123 flags = 0;
124 id = "fuzzfacefm";
125 name = N_("Fuzz Face Fuller");
126 groups = 0;
127 description = N_("Micke Fuller Fuzz Face simulation"); // description (tooltip)
128 category = N_("Fuzz"); // category
129 shortname = N_("FF Fuller"); // shortname
130 mono_audio = compute_static;
131 stereo_audio = 0;
132 set_samplerate = init_static;
133 activate_plugin = 0;
134 register_params = register_params_static;
135 load_ui = load_ui_f_static;
136 clear_state = clear_state_f_static;
137 delete_instance = del_instance;
138 }
139
~Dsp()140 Dsp::~Dsp() {
141 }
142
clear_state_f()143 inline void Dsp::clear_state_f()
144 {
145 for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) fRec1[l0] = 0.0;
146 for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) fRec2[l1] = 0.0;
147 for (int l2 = 0; (l2 < 2); l2 = (l2 + 1)) fRec3[l2] = 0.0;
148 for (int l3 = 0; (l3 < 4); l3 = (l3 + 1)) fRec0[l3] = 0.0;
149
150
151 for (int i=0; i<2; i++) fRecV0[i] = 0;
152 }
153
clear_state_f_static(PluginDef * p)154 void Dsp::clear_state_f_static(PluginDef *p)
155 {
156 static_cast<Dsp*>(p)->clear_state_f();
157 }
158
init(unsigned int sample_rate)159 inline void Dsp::init(unsigned int sample_rate)
160 {
161 fSampleRate = sample_rate;
162 fConst0 = std::min<double>(192000.0, std::max<double>(1.0, double(fSampleRate)));
163 double fConst1 = (3.3531209733912099e-19 * fConst0);
164 fConst2 = ((fConst0 * (fConst1 + 3.24149709132582e-15)) + -1.4628895453456301e-14);
165 double fConst3 = (4.2717686608045702e-16 * fConst0);
166 fConst4 = ((fConst0 * (fConst3 + 6.4321494874189598e-16)) + 3.45797348759893e-55);
167 double fConst5 = (4.27512178177797e-16 * fConst0);
168 fConst6 = ((fConst0 * (-6.4344317434698802e-16 - fConst5)) + -3.2623424697545702e-55);
169 double fConst7 = (1.6814895745264899e-16 * fConst0);
170 fConst8 = ((fConst0 * (-1.63110208134281e-12 - fConst7)) + 1.69410806769336e-10);
171 double fConst9 = (2.1421638303336699e-13 * fConst0);
172 fConst10 = ((fConst0 * (-7.4421674350198897e-12 - fConst9)) + 3.2160747437094799e-11);
173 double fConst11 = (2.1438453199081999e-13 * fConst0);
174 fConst12 = ((fConst0 * (fConst11 + 7.4478704182697307e-12)) + -3.2172158717349402e-11);
175 double fConst13 = (7.5535874162256398e-17 * fConst0);
176 fConst14 = ((fConst0 * (fConst13 + 1.61641996632585e-12)) + -1.6091784998802001e-10);
177 double fConst15 = (1.5062889936039299e-19 * fConst0);
178 fConst16 = ((fConst0 * (-3.2183569997603901e-15 - fConst15)) + -1.5333557259551101e-54);
179 double fConst17 = (4.2452186616965102e-16 * fConst0);
180 fConst18 = (7.6075416727176396e-56 - fConst17);
181 double fConst19 = (4.2467249506901202e-16 * fConst0);
182 fConst20 = (fConst19 + -7.1771534334600597e-56);
183 double fConst21 = (2.1288498022809499e-13 * fConst0);
184 fConst22 = (fConst21 + 7.0753644361608499e-12);
185 double fConst23 = (2.1296051610225699e-13 * fConst0);
186 fConst24 = (-7.0778749178168597e-12 - fConst23);
187 fConst25 = ((fConst0 * (3.24149709132582e-15 - fConst1)) + 1.4628895453456301e-14);
188 fConst26 = ((fConst0 * (6.4321494874189598e-16 - fConst3)) + -3.45797348759893e-55);
189 fConst27 = ((fConst0 * (fConst5 + -6.4344317434698802e-16)) + 3.2623424697545702e-55);
190 fConst28 = ((fConst0 * (fConst7 + -1.63110208134281e-12)) + -1.69410806769336e-10);
191 fConst29 = ((fConst0 * (fConst9 + -7.4421674350198897e-12)) + -3.2160747437094799e-11);
192 fConst30 = ((fConst0 * (7.4478704182697307e-12 - fConst11)) + 3.2172158717349402e-11);
193 fConst31 = ((fConst0 * (1.61641996632585e-12 - fConst13)) + 1.6091784998802001e-10);
194 fConst32 = ((fConst0 * (fConst15 + -3.2183569997603901e-15)) + 1.5333557259551101e-54);
195 fConst33 = (fConst17 + 7.6075416727176396e-56);
196 fConst34 = (-7.1771534334600597e-56 - fConst19);
197 fConst35 = (7.0753644361608499e-12 - fConst21);
198 fConst36 = (fConst23 + -7.0778749178168597e-12);
199 double fConst37 = (1.1177069911303999e-19 * fConst0);
200 fConst38 = ((fConst0 * (fConst37 + -3.24149709132582e-15)) + 1.4628895453456301e-14);
201 double fConst39 = (1.4239228869348599e-16 * fConst0);
202 fConst40 = ((fConst0 * (fConst39 + -6.4321494874189598e-16)) + -3.45797348759893e-55);
203 double fConst41 = (1.42504059392599e-16 * fConst0);
204 fConst42 = ((fConst0 * (6.4344317434698802e-16 - fConst41)) + 3.2623424697545702e-55);
205 double fConst43 = (5.6049652484216404e-17 * fConst0);
206 fConst44 = ((fConst0 * (1.63110208134281e-12 - fConst43)) + -1.69410806769336e-10);
207 double fConst45 = (7.1405461011122294e-14 * fConst0);
208 fConst46 = ((fConst0 * (7.4421674350198897e-12 - fConst45)) + -3.2160747437094799e-11);
209 double fConst47 = (7.1461510663606604e-14 * fConst0);
210 fConst48 = ((fConst0 * (fConst47 + -7.4478704182697307e-12)) + 3.2172158717349402e-11);
211 double fConst49 = (2.5178624720752199e-17 * fConst0);
212 fConst50 = ((fConst0 * (fConst49 + -1.61641996632585e-12)) + 1.6091784998802001e-10);
213 double fConst51 = (5.0209633120131098e-20 * fConst0);
214 fConst52 = ((fConst0 * (3.2183569997603901e-15 - fConst51)) + 1.5333557259551101e-54);
215 double fConst53 = (1.4150728872321699e-16 * fConst0);
216 fConst54 = (-7.6075416727176396e-56 - fConst53);
217 double fConst55 = (1.4155749835633699e-16 * fConst0);
218 fConst56 = (fConst55 + 7.1771534334600597e-56);
219 double fConst57 = (7.0961660076031701e-14 * fConst0);
220 fConst58 = (fConst57 + -7.0753644361608499e-12);
221 double fConst59 = (7.0986838700752397e-14 * fConst0);
222 fConst60 = (7.0778749178168597e-12 - fConst59);
223 fConst61 = ((fConst0 * (-3.24149709132582e-15 - fConst37)) + -1.4628895453456301e-14);
224 fConst62 = ((fConst0 * (-6.4321494874189598e-16 - fConst39)) + 3.45797348759893e-55);
225 fConst63 = ((fConst0 * (fConst41 + 6.4344317434698802e-16)) + -3.2623424697545702e-55);
226 fConst64 = ((fConst0 * (fConst43 + 1.63110208134281e-12)) + 1.69410806769336e-10);
227 fConst65 = ((fConst0 * (fConst45 + 7.4421674350198897e-12)) + 3.2160747437094799e-11);
228 fConst66 = ((fConst0 * (-7.4478704182697307e-12 - fConst47)) + -3.2172158717349402e-11);
229 fConst67 = ((fConst0 * (-1.61641996632585e-12 - fConst49)) + -1.6091784998802001e-10);
230 fConst68 = ((fConst0 * (fConst51 + 3.2183569997603901e-15)) + -1.5333557259551101e-54);
231 fConst69 = (fConst53 + -7.6075416727176396e-56);
232 fConst70 = (7.1771534334600597e-56 - fConst55);
233 fConst71 = (-7.0753644361608499e-12 - fConst57);
234 fConst72 = (fConst59 + 7.0778749178168597e-12);
235 double fConst73 = mydsp_faustpower3_f(fConst0);
236 fConst74 = (0.0 - (4.1501032582223993e-16 * fConst73));
237 fConst75 = (4.0947065519365001e-14 * fConst73);
238 fConst76 = mydsp_faustpower2_f(fConst0);
239 double fConst77 = (2.0681037922594001e-13 * fConst0);
240 fConst78 = (fConst77 + 4.7473961557966103e-12);
241 double fConst79 = (1.6544830338075201e-13 * fConst0);
242 fConst80 = (-3.7979169246372897e-12 - fConst79);
243 double fConst81 = (1.4068733280676199e-13 * fConst0);
244 fConst82 = (-3.22952119441946e-12 - fConst81);
245 double fConst83 = (1.1254986624540899e-13 * fConst0);
246 fConst84 = (fConst83 + 2.5836169555355699e-12);
247 double fConst85 = (4.2206199842028502e-13 * fConst0);
248 double fConst86 = (3.3764959873622802e-13 * fConst0);
249 fConst87 = (fConst76 * ((fConst85 + 3.22952119441946e-12) + (-2.5836169555355699e-12 - fConst86)));
250 fConst88 = (0.0 - (8.4695984861682025e-16 * fConst73));
251 fConst89 = (8.356543983544001e-14 * fConst73);
252 double fConst90 = (6.2043113767781895e-13 * fConst0);
253 fConst91 = (-4.7473961557966103e-12 - fConst90);
254 double fConst92 = (4.9634491014225504e-13 * fConst0);
255 fConst93 = (fConst92 + 3.7979169246372897e-12);
256 fConst94 = (0.0 - (1.2450309774667304e-15 * fConst73));
257 fConst95 = (1.2284119655809702e-13 * fConst73);
258 fConst96 = (fConst90 + -4.7473961557966103e-12);
259 fConst97 = (3.7979169246372897e-12 - fConst92);
260 fConst98 = (3.22952119441946e-12 - fConst85);
261 fConst99 = (fConst86 + -2.5836169555355699e-12);
262 fConst100 = (fConst76 * ((2.5836169555355699e-12 - fConst83) + (fConst81 + -3.22952119441946e-12)));
263 fConst101 = (0.0 - (2.8231994953894002e-16 * fConst73));
264 fConst102 = (2.7855146611813e-14 * fConst73);
265 fConst103 = (4.7473961557966103e-12 - fConst77);
266 fConst104 = (fConst79 + -3.7979169246372897e-12);
267
268 sample_rate = 96000;
269 smpCl.setup(fSampleRate, sample_rate);
270 fSampleRate = sample_rate;
271
272 clear_state_f();
273 }
274
init_static(unsigned int sample_rate,PluginDef * p)275 void Dsp::init_static(unsigned int sample_rate, PluginDef *p)
276 {
277 static_cast<Dsp*>(p)->init(sample_rate);
278 }
279
compute(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0)280 void always_inline Dsp::compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0)
281 {
282 double fSlowV0 = (0.0010000000000000009 * double(fsliderV0));
283
284 double fSlow0 = (0.0070000000000000062 * (1.0 - double(fVslider0)));
285 double fSlow1 = (0.0070000000000000062 * (1.0 - double(fVslider1)));
286 double fSlow2 = (0.0070000000000000062 * double(fVslider2));
287 for (int i0 = 0; (i0 < count); i0 = (i0 + 1)) {
288 fRec1[0] = (fSlow0 + (0.99299999999999999 * fRec1[1]));
289 fRec2[0] = (fSlow1 + (0.99299999999999999 * fRec2[1]));
290 fRec3[0] = (fSlow2 + (0.99299999999999999 * fRec3[1]));
291 double fTemp0 = (((fRec1[0] * ((fConst0 * (fConst61 + (fRec2[0] * (fConst62 + (fConst63 * fRec2[0]))))) + 6.9697987543413902e-54)) + (fConst0 * (fConst64 + ((fRec2[0] * (fConst65 + (fConst66 * fRec2[0]))) + (fRec3[0] * (fConst67 + ((fRec1[0] * (fConst68 + (fConst0 * (fRec2[0] * (fConst69 + (fConst70 * fRec2[0])))))) + (fConst0 * (fRec2[0] * (fConst71 + (fConst72 * fRec2[0]))))))))))) + 7.3144477267281697e-10);
292 fRec0[0] = (double(input0[i0]) - ((((fRec0[1] * (((fRec1[0] * ((fConst0 * (fConst2 + (fRec2[0] * (fConst4 + (fConst6 * fRec2[0]))))) + 2.0909396263024202e-53)) + (fConst0 * (fConst8 + ((fRec2[0] * (fConst10 + (fConst12 * fRec2[0]))) + (fRec3[0] * (fConst14 + ((fRec1[0] * (fConst16 + (fConst0 * (fRec2[0] * (fConst18 + (fConst20 * fRec2[0])))))) + (fConst0 * (fRec2[0] * (fConst22 + (fConst24 * fRec2[0]))))))))))) + 2.19433431801845e-09)) + (fRec0[2] * (((fRec1[0] * ((fConst0 * (fConst25 + (fRec2[0] * (fConst26 + (fConst27 * fRec2[0]))))) + 2.0909396263024202e-53)) + (fConst0 * (fConst28 + ((fRec2[0] * (fConst29 + (fConst30 * fRec2[0]))) + (fRec3[0] * (fConst31 + ((fRec1[0] * (fConst32 + (fConst0 * (fRec2[0] * (fConst33 + (fConst34 * fRec2[0])))))) + (fConst0 * (fRec2[0] * (fConst35 + (fConst36 * fRec2[0]))))))))))) + 2.19433431801845e-09))) + (fRec0[3] * (((fRec1[0] * ((fConst0 * (fConst38 + (fRec2[0] * (fConst40 + (fConst42 * fRec2[0]))))) + 6.9697987543413902e-54)) + (fConst0 * (fConst44 + ((fRec2[0] * (fConst46 + (fConst48 * fRec2[0]))) + (fRec3[0] * (fConst50 + ((fRec1[0] * (fConst52 + (fConst0 * (fRec2[0] * (fConst54 + (fConst56 * fRec2[0])))))) + (fConst0 * (fRec2[0] * (fConst58 + (fConst60 * fRec2[0]))))))))))) + 7.3144477267281697e-10))) / fTemp0));
293 output0[i0] = FAUSTFLOAT((((((fRec0[0] * ((fRec2[0] * ((fConst74 * fRec2[0]) - fConst75)) + (fConst76 * (fConst78 + (fConst80 + (fRec1[0] * (fConst82 + (fConst84 + (fConst0 * (fRec2[0] * (((2.8231994953894002e-16 * fRec2[0]) + -1.1142058644725399e-13) + 1.3927573305906699e-13))))))))))) + (fRec0[1] * ((fRec1[0] * (fConst87 + (fRec2[0] * ((fConst88 * fRec2[0]) - fConst89)))) + (fConst76 * (fConst91 + (fConst93 + (fConst0 * (fRec2[0] * (((1.2450309774667304e-15 * fRec2[0]) + -4.9136478623238799e-13) + 6.1420598279048502e-13))))))))) + (fRec0[2] * ((fRec2[0] * ((fConst94 * fRec2[0]) - fConst95)) + (fConst76 * (fConst96 + (fConst97 + (fRec1[0] * (fConst98 + (fConst99 + (fConst0 * (fRec2[0] * (((8.4695984861682025e-16 * fRec2[0]) + -3.34261759341761e-13) + 4.1782719917720101e-13)))))))))))) + (fRec0[3] * ((fRec1[0] * (fConst100 + (fRec2[0] * ((fConst101 * fRec2[0]) - fConst102)))) + (fConst76 * (fConst103 + (fConst104 + (fConst0 * (fRec2[0] * (((4.1501032582223993e-16 * fRec2[0]) + -1.6378826207746301e-13) + 2.0473532759682801e-13))))))))) / fTemp0));
294 fRec1[1] = fRec1[0];
295 fRec2[1] = fRec2[0];
296 fRec3[1] = fRec3[0];
297 for (int j0 = 3; (j0 > 0); j0 = (j0 - 1)) {
298 fRec0[j0] = fRec0[(j0 - 1)];
299 }
300 }
301
302 FAUSTFLOAT bufCl[smpCl.max_out_count(count)];
303 int ReCount = smpCl.up(count, output0, bufCl);
304 for (int i0 = 0; (i0 < ReCount); i0 = (i0 + 1)) {
305 bufCl[i0] = FAUSTFLOAT(double(asymclip4(double(bufCl[i0]))));
306 }
307 smpCl.down(bufCl, output0);
308
309 for (int i=0; i<count; i++) {
310 fRecV0[0] = ((0.999 * fRecV0[1]) + fSlowV0);
311 output0[i] = (FAUSTFLOAT)((double)output0[i] * fRecV0[0]);
312 // post processing
313 fRecV0[1] = fRecV0[0];
314 }
315
316 }
317
compute_static(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0,PluginDef * p)318 void __rt_func Dsp::compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginDef *p)
319 {
320 static_cast<Dsp*>(p)->compute(count, input0, output0);
321 }
322
register_par(const ParamReg & reg)323 int Dsp::register_par(const ParamReg& reg)
324 {
325 reg.registerFloatVar("fuzzfacefm.Level",N_("Level"),"S","",&fsliderV0, 0.5, 0.0, 1, 0.01, 0);
326 reg.registerFloatVar("fuzzfacefm.Drive",N_("Drive"),"S","",&fVslider0, 0.5, 0.0, 1.0, 0.01, 0);
327 reg.registerFloatVar("fuzzfacefm.Fuzz",N_("Fuzz"),"S","",&fVslider1, 0.5, 0.0, 1.0, 0.01, 0);
328 reg.registerFloatVar("fuzzfacefm.Input",N_("Input"),"S","",&fVslider2, 0.5, 0.0, 1.0, 0.01, 0);
329 return 0;
330 }
331
register_params_static(const ParamReg & reg)332 int Dsp::register_params_static(const ParamReg& reg)
333 {
334 return static_cast<Dsp*>(reg.plugin)->register_par(reg);
335 }
336
337 const char *Dsp::glade_def = "\
338 <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
339 <!-- Generated with glade 3.22.1 -->\n\
340 <interface>\n\
341 <requires lib=\"gtk+\" version=\"3.20\"/>\n\
342 <requires lib=\"gxwidgets\" version=\"0.0\"/>\n\
343 <object class=\"GtkWindow\" id=\"window1\">\n\
344 <property name=\"can_focus\">False</property>\n\
345 <child>\n\
346 <placeholder/>\n\
347 </child>\n\
348 <child>\n\
349 <object class=\"GtkBox\" id=\"vbox1\">\n\
350 <property name=\"visible\">True</property>\n\
351 <property name=\"can_focus\">False</property>\n\
352 <property name=\"orientation\">vertical</property>\n\
353 <child>\n\
354 <object class=\"GtkBox\" id=\"rackbox\">\n\
355 <property name=\"visible\">True</property>\n\
356 <property name=\"can_focus\">False</property>\n\
357 <property name=\"spacing\">4</property>\n\
358 <child>\n\
359 <object class=\"GtkBox\" id=\"hbox1\">\n\
360 <property name=\"visible\">True</property>\n\
361 <property name=\"can_focus\">False</property>\n\
362 <property name=\"spacing\">10</property>\n\
363 <child>\n\
364 <object class=\"GtkBox\" id=\"vbox2\">\n\
365 <property name=\"visible\">True</property>\n\
366 <property name=\"can_focus\">False</property>\n\
367 <property name=\"orientation\">vertical</property>\n\
368 <child>\n\
369 <object class=\"GtkLabel\" id=\"label1:rack_label\">\n\
370 <property name=\"visible\">True</property>\n\
371 <property name=\"can_focus\">False</property>\n\
372 <property name=\"label\" translatable=\"yes\">label</property>\n\
373 </object>\n\
374 <packing>\n\
375 <property name=\"expand\">False</property>\n\
376 <property name=\"fill\">False</property>\n\
377 <property name=\"position\">0</property>\n\
378 </packing>\n\
379 </child>\n\
380 <child>\n\
381 <object class=\"GxSmallKnobR\" id=\"gxbigknob1\">\n\
382 <property name=\"visible\">True</property>\n\
383 <property name=\"can_focus\">True</property>\n\
384 <property name=\"receives_default\">True</property>\n\
385 <property name=\"var_id\">fuzzfacefm.Input</property>\n\
386 <property name=\"label_ref\">label1:rack_label</property>\n\
387 </object>\n\
388 <packing>\n\
389 <property name=\"expand\">False</property>\n\
390 <property name=\"fill\">False</property>\n\
391 <property name=\"position\">1</property>\n\
392 </packing>\n\
393 </child>\n\
394 </object>\n\
395 <packing>\n\
396 <property name=\"expand\">False</property>\n\
397 <property name=\"fill\">False</property>\n\
398 <property name=\"position\">0</property>\n\
399 </packing>\n\
400 </child>\n\
401 <child>\n\
402 <object class=\"GtkBox\" id=\"vbox3\">\n\
403 <property name=\"visible\">True</property>\n\
404 <property name=\"can_focus\">False</property>\n\
405 <property name=\"orientation\">vertical</property>\n\
406 <child>\n\
407 <object class=\"GtkLabel\" id=\"label2:rack_label\">\n\
408 <property name=\"visible\">True</property>\n\
409 <property name=\"can_focus\">False</property>\n\
410 <property name=\"label\" translatable=\"yes\">label</property>\n\
411 </object>\n\
412 <packing>\n\
413 <property name=\"expand\">False</property>\n\
414 <property name=\"fill\">False</property>\n\
415 <property name=\"position\">0</property>\n\
416 </packing>\n\
417 </child>\n\
418 <child>\n\
419 <object class=\"GxSmallKnobR\" id=\"gxbigknob2\">\n\
420 <property name=\"visible\">True</property>\n\
421 <property name=\"can_focus\">True</property>\n\
422 <property name=\"receives_default\">True</property>\n\
423 <property name=\"var_id\">fuzzfacefm.Drive</property>\n\
424 <property name=\"label_ref\">label2:rack_label</property>\n\
425 </object>\n\
426 <packing>\n\
427 <property name=\"expand\">False</property>\n\
428 <property name=\"fill\">False</property>\n\
429 <property name=\"position\">1</property>\n\
430 </packing>\n\
431 </child>\n\
432 </object>\n\
433 <packing>\n\
434 <property name=\"expand\">False</property>\n\
435 <property name=\"fill\">False</property>\n\
436 <property name=\"position\">1</property>\n\
437 </packing>\n\
438 </child>\n\
439 <child>\n\
440 <object class=\"GtkBox\" id=\"vbox4\">\n\
441 <property name=\"visible\">True</property>\n\
442 <property name=\"can_focus\">False</property>\n\
443 <property name=\"orientation\">vertical</property>\n\
444 <child>\n\
445 <object class=\"GtkLabel\" id=\"label3:rack_label\">\n\
446 <property name=\"visible\">True</property>\n\
447 <property name=\"can_focus\">False</property>\n\
448 <property name=\"label\" translatable=\"yes\">label</property>\n\
449 </object>\n\
450 <packing>\n\
451 <property name=\"expand\">False</property>\n\
452 <property name=\"fill\">False</property>\n\
453 <property name=\"position\">0</property>\n\
454 </packing>\n\
455 </child>\n\
456 <child>\n\
457 <object class=\"GxSmallKnobR\" id=\"gxbigknob3\">\n\
458 <property name=\"visible\">True</property>\n\
459 <property name=\"can_focus\">True</property>\n\
460 <property name=\"receives_default\">True</property>\n\
461 <property name=\"var_id\">fuzzfacefm.Fuzz</property>\n\
462 <property name=\"label_ref\">label3:rack_label</property>\n\
463 </object>\n\
464 <packing>\n\
465 <property name=\"expand\">False</property>\n\
466 <property name=\"fill\">False</property>\n\
467 <property name=\"position\">1</property>\n\
468 </packing>\n\
469 </child>\n\
470 </object>\n\
471 <packing>\n\
472 <property name=\"expand\">False</property>\n\
473 <property name=\"fill\">False</property>\n\
474 <property name=\"position\">2</property>\n\
475 </packing>\n\
476 </child>\n\
477 <child>\n\
478 <object class=\"GtkBox\" id=\"vbox5\">\n\
479 <property name=\"visible\">True</property>\n\
480 <property name=\"can_focus\">False</property>\n\
481 <property name=\"orientation\">vertical</property>\n\
482 <child>\n\
483 <object class=\"GtkLabel\" id=\"label4:rack_label\">\n\
484 <property name=\"visible\">True</property>\n\
485 <property name=\"can_focus\">False</property>\n\
486 <property name=\"label\" translatable=\"yes\">label</property>\n\
487 </object>\n\
488 <packing>\n\
489 <property name=\"expand\">False</property>\n\
490 <property name=\"fill\">False</property>\n\
491 <property name=\"position\">0</property>\n\
492 </packing>\n\
493 </child>\n\
494 <child>\n\
495 <object class=\"GxMidKnob\" id=\"gxbigknob4\">\n\
496 <property name=\"visible\">True</property>\n\
497 <property name=\"can_focus\">True</property>\n\
498 <property name=\"receives_default\">True</property>\n\
499 <property name=\"var_id\">fuzzfacefm.Level</property>\n\
500 <property name=\"label_ref\">label4:rack_label</property>\n\
501 </object>\n\
502 <packing>\n\
503 <property name=\"expand\">False</property>\n\
504 <property name=\"fill\">False</property>\n\
505 <property name=\"position\">1</property>\n\
506 </packing>\n\
507 </child>\n\
508 </object>\n\
509 <packing>\n\
510 <property name=\"expand\">False</property>\n\
511 <property name=\"fill\">False</property>\n\
512 <property name=\"position\">3</property>\n\
513 </packing>\n\
514 </child>\n\
515 </object>\n\
516 <packing>\n\
517 <property name=\"expand\">True</property>\n\
518 <property name=\"fill\">False</property>\n\
519 <property name=\"pack_type\">end</property>\n\
520 <property name=\"position\">0</property>\n\
521 </packing>\n\
522 </child>\n\
523 </object>\n\
524 <packing>\n\
525 <property name=\"expand\">True</property>\n\
526 <property name=\"fill\">False</property>\n\
527 <property name=\"position\">0</property>\n\
528 </packing>\n\
529 </child>\n\
530 <child>\n\
531 <object class=\"GtkBox\" id=\"minibox\">\n\
532 <property name=\"visible\">True</property>\n\
533 <property name=\"can_focus\">False</property>\n\
534 <property name=\"spacing\">4</property>\n\
535 <child>\n\
536 <object class=\"GxHSlider\" id=\"gxhslider1\">\n\
537 <property name=\"visible\">True</property>\n\
538 <property name=\"can_focus\">True</property>\n\
539 <property name=\"receives_default\">True</property>\n\
540 <property name=\"round_digits\">0</property>\n\
541 <property name=\"var_id\">fuzzfacefm.Level</property>\n\
542 <property name=\"show_value\">False</property>\n\
543 <property name=\"value_position\">right</property>\n\
544 <property name=\"value_xalign\">0.52000000000000002</property>\n\
545 <property name=\"label_ref\">label0:rack_label</property>\n\
546 </object>\n\
547 <packing>\n\
548 <property name=\"expand\">False</property>\n\
549 <property name=\"fill\">False</property>\n\
550 <property name=\"position\">0</property>\n\
551 </packing>\n\
552 </child>\n\
553 <child>\n\
554 <object class=\"GtkLabel\" id=\"label0:rack_label\">\n\
555 <property name=\"visible\">True</property>\n\
556 <property name=\"can_focus\">False</property>\n\
557 <property name=\"label\" translatable=\"yes\">Level</property>\n\
558 <property name=\"xalign\">0</property>\n\
559 </object>\n\
560 <packing>\n\
561 <property name=\"expand\">False</property>\n\
562 <property name=\"fill\">False</property>\n\
563 <property name=\"position\">1</property>\n\
564 </packing>\n\
565 </child>\n\
566 </object>\n\
567 <packing>\n\
568 <property name=\"expand\">True</property>\n\
569 <property name=\"fill\">True</property>\n\
570 <property name=\"position\">1</property>\n\
571 </packing>\n\
572 </child>\n\
573 </object>\n\
574 </child>\n\
575 </object>\n\
576 </interface>\n\
577 ";
578
load_ui_f(const UiBuilder & b,int form)579 inline int Dsp::load_ui_f(const UiBuilder& b, int form)
580 {
581 if (form & UI_FORM_GLADE) {
582 b.load_glade(glade_def);
583 return 0;
584 }
585 if (form & UI_FORM_STACK) {
586 #define PARAM(p) ("fuzzfacefm" "." p)
587
588 b.openHorizontalhideBox("");
589 b.create_master_slider(PARAM("Fuzz"), N_("Fuzz"));
590 b.closeBox();
591 b.openHorizontalBox("");
592
593 b.create_small_rackknobr(PARAM("Input"), N_("Input"));
594
595 b.create_small_rackknobr(PARAM("Drive"), N_("Drive"));
596
597 b.create_small_rackknobr(PARAM("Fuzz"), N_("Fuzz"));
598
599 b.create_small_rackknobr(PARAM("Level"), N_("Level"));
600 b.closeBox();
601
602 #undef PARAM
603 return 0;
604 }
605 return -1;
606 }
607
load_ui_f_static(const UiBuilder & b,int form)608 int Dsp::load_ui_f_static(const UiBuilder& b, int form)
609 {
610 return static_cast<Dsp*>(b.plugin)->load_ui_f(b, form);
611 }
plugin()612 PluginDef *plugin() {
613 return new Dsp();
614 }
615
del_instance(PluginDef * p)616 void Dsp::del_instance(PluginDef *p)
617 {
618 delete static_cast<Dsp*>(p);
619 }
620
621 } // end namespace fuzzfacefm
622 } // end namespace pluginlib
623