1 // generated from file '../src/LV2/faust/gxamp11.dsp' by dsp2cc:
2 // Code generated with Faust (https://faust.grame.fr)
3
4 #include "valve.h"
5
6 namespace gxamp11 {
7
8 class Dsp: public PluginLV2 {
9 private:
10 uint32_t fSampleRate;
11 FAUSTFLOAT fCheckbox0;
12 FAUSTFLOAT *fCheckbox0_;
13 double fConst4;
14 double fConst6;
15 double fConst7;
16 FAUSTFLOAT fCheckbox1;
17 FAUSTFLOAT *fCheckbox1_;
18 double fRec9[2];
19 double fRec8[3];
20 double fConst9;
21 double fVec0[2];
22 double fConst10;
23 double fRec10[2];
24 double fRec7[2];
25 double fConst11;
26 double fConst12;
27 double fRec6[2];
28 double fConst14;
29 double fConst15;
30 double fRec11[2];
31 double fRec21[2];
32 double fRec20[3];
33 double fConst17;
34 double fVec1[2];
35 double fConst18;
36 double fRec22[2];
37 double fRec19[2];
38 double fRec18[2];
39 double fRec23[2];
40 double fRec28[2];
41 int IOTA;
42 double fVec2[32768];
43 double fConst19;
44 int iConst20;
45 double fRec30[2];
46 double fRec29[2];
47 FAUSTFLOAT fVslider0;
48 FAUSTFLOAT *fVslider0_;
49 double fRec31[2];
50 FAUSTFLOAT fVslider1;
51 FAUSTFLOAT *fVslider1_;
52 double fConst23;
53 double fConst25;
54 double fConst27;
55 double fConst28;
56 double fConst30;
57 double fConst32;
58 double fConst33;
59 double fConst36;
60 double fConst37;
61 double fConst38;
62 double fRec39[3];
63 double fVec3[2];
64 double fRec38[2];
65 double fRec37[2];
66 double fConst39;
67 double fConst41;
68 double fConst42;
69 double fRec36[3];
70 double fVec4[2];
71 double fConst43;
72 double fConst44;
73 double fConst45;
74 double fRec35[2];
75 double fConst46;
76 double fConst47;
77 double fRec34[3];
78 double fConst48;
79 double fConst52;
80 double fConst53;
81 double fConst54;
82 double fConst56;
83 double fConst57;
84 double fRec33[3];
85 double fConst58;
86 double fRec43[2];
87 double fRec42[3];
88 double fConst59;
89 double fConst60;
90 double fConst61;
91 double fRec41[3];
92 double fRec40[3];
93 double fConst62;
94 double fConst63;
95 double fConst64;
96 double fRec47[2];
97 double fRec46[3];
98 double fVec5[2];
99 double fConst65;
100 double fConst66;
101 double fRec45[2];
102 double fConst67;
103 double fRec44[3];
104 double fConst68;
105 double fConst69;
106 double fRec49[2];
107 double fRec48[3];
108 double fVec6[2];
109 double fRec32[2];
110 double fVec7[2];
111 double fRec27[2];
112 double fRec26[3];
113 double fConst71;
114 double fVec8[2];
115 double fConst72;
116 double fRec50[2];
117 double fRec25[2];
118 double fRec24[2];
119 double fRec51[2];
120 double fRec17[3];
121 FAUSTFLOAT fVslider2;
122 FAUSTFLOAT *fVslider2_;
123 double fRec52[2];
124 double fVec9[2];
125 double fRec16[2];
126 double fRec15[2];
127 double fRec14[3];
128 double fVec10[2];
129 double fRec53[2];
130 double fRec13[2];
131 double fRec12[2];
132 double fRec54[2];
133 double fRec5[3];
134 double fRec4[2];
135 double fRec3[2];
136 double fRec2[3];
137 double fVec11[2];
138 double fRec55[2];
139 double fRec1[2];
140 double fRec0[2];
141 double fRec56[2];
142 FAUSTFLOAT fVslider3;
143 FAUSTFLOAT *fVslider3_;
144 double fRec57[2];
145
146 void connect(uint32_t port,void* data);
147 void clear_state_f();
148 void init(uint32_t sample_rate);
149 void compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0);
150
151 static void clear_state_f_static(PluginLV2*);
152 static void init_static(uint32_t sample_rate, PluginLV2*);
153 static void compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginLV2*);
154 static void del_instance(PluginLV2 *p);
155 static void connect_static(uint32_t port,void* data, PluginLV2 *p);
156 public:
157 Dsp();
158 ~Dsp();
159 };
160
161
162
Dsp()163 Dsp::Dsp()
164 : PluginLV2() {
165 version = PLUGINLV2_VERSION;
166 id = "12AU7 feedback";
167 name = N_("12AU7 feedback");
168 mono_audio = compute_static;
169 stereo_audio = 0;
170 set_samplerate = init_static;
171 activate_plugin = 0;
172 connect_ports = connect_static;
173 clear_state = clear_state_f_static;
174 delete_instance = del_instance;
175 }
176
~Dsp()177 Dsp::~Dsp() {
178 }
179
clear_state_f()180 inline void Dsp::clear_state_f()
181 {
182 for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) fRec9[l0] = 0.0;
183 for (int l1 = 0; (l1 < 3); l1 = (l1 + 1)) fRec8[l1] = 0.0;
184 for (int l2 = 0; (l2 < 2); l2 = (l2 + 1)) fVec0[l2] = 0.0;
185 for (int l3 = 0; (l3 < 2); l3 = (l3 + 1)) fRec10[l3] = 0.0;
186 for (int l4 = 0; (l4 < 2); l4 = (l4 + 1)) fRec7[l4] = 0.0;
187 for (int l5 = 0; (l5 < 2); l5 = (l5 + 1)) fRec6[l5] = 0.0;
188 for (int l6 = 0; (l6 < 2); l6 = (l6 + 1)) fRec11[l6] = 0.0;
189 for (int l7 = 0; (l7 < 2); l7 = (l7 + 1)) fRec21[l7] = 0.0;
190 for (int l8 = 0; (l8 < 3); l8 = (l8 + 1)) fRec20[l8] = 0.0;
191 for (int l9 = 0; (l9 < 2); l9 = (l9 + 1)) fVec1[l9] = 0.0;
192 for (int l10 = 0; (l10 < 2); l10 = (l10 + 1)) fRec22[l10] = 0.0;
193 for (int l11 = 0; (l11 < 2); l11 = (l11 + 1)) fRec19[l11] = 0.0;
194 for (int l12 = 0; (l12 < 2); l12 = (l12 + 1)) fRec18[l12] = 0.0;
195 for (int l13 = 0; (l13 < 2); l13 = (l13 + 1)) fRec23[l13] = 0.0;
196 for (int l14 = 0; (l14 < 2); l14 = (l14 + 1)) fRec28[l14] = 0.0;
197 for (int l15 = 0; (l15 < 32768); l15 = (l15 + 1)) fVec2[l15] = 0.0;
198 for (int l16 = 0; (l16 < 2); l16 = (l16 + 1)) fRec30[l16] = 0.0;
199 for (int l17 = 0; (l17 < 2); l17 = (l17 + 1)) fRec29[l17] = 0.0;
200 for (int l18 = 0; (l18 < 2); l18 = (l18 + 1)) fRec31[l18] = 0.0;
201 for (int l19 = 0; (l19 < 3); l19 = (l19 + 1)) fRec39[l19] = 0.0;
202 for (int l20 = 0; (l20 < 2); l20 = (l20 + 1)) fVec3[l20] = 0.0;
203 for (int l21 = 0; (l21 < 2); l21 = (l21 + 1)) fRec38[l21] = 0.0;
204 for (int l22 = 0; (l22 < 2); l22 = (l22 + 1)) fRec37[l22] = 0.0;
205 for (int l23 = 0; (l23 < 3); l23 = (l23 + 1)) fRec36[l23] = 0.0;
206 for (int l24 = 0; (l24 < 2); l24 = (l24 + 1)) fVec4[l24] = 0.0;
207 for (int l25 = 0; (l25 < 2); l25 = (l25 + 1)) fRec35[l25] = 0.0;
208 for (int l26 = 0; (l26 < 3); l26 = (l26 + 1)) fRec34[l26] = 0.0;
209 for (int l27 = 0; (l27 < 3); l27 = (l27 + 1)) fRec33[l27] = 0.0;
210 for (int l28 = 0; (l28 < 2); l28 = (l28 + 1)) fRec43[l28] = 0.0;
211 for (int l29 = 0; (l29 < 3); l29 = (l29 + 1)) fRec42[l29] = 0.0;
212 for (int l30 = 0; (l30 < 3); l30 = (l30 + 1)) fRec41[l30] = 0.0;
213 for (int l31 = 0; (l31 < 3); l31 = (l31 + 1)) fRec40[l31] = 0.0;
214 for (int l32 = 0; (l32 < 2); l32 = (l32 + 1)) fRec47[l32] = 0.0;
215 for (int l33 = 0; (l33 < 3); l33 = (l33 + 1)) fRec46[l33] = 0.0;
216 for (int l34 = 0; (l34 < 2); l34 = (l34 + 1)) fVec5[l34] = 0.0;
217 for (int l35 = 0; (l35 < 2); l35 = (l35 + 1)) fRec45[l35] = 0.0;
218 for (int l36 = 0; (l36 < 3); l36 = (l36 + 1)) fRec44[l36] = 0.0;
219 for (int l37 = 0; (l37 < 2); l37 = (l37 + 1)) fRec49[l37] = 0.0;
220 for (int l38 = 0; (l38 < 3); l38 = (l38 + 1)) fRec48[l38] = 0.0;
221 for (int l39 = 0; (l39 < 2); l39 = (l39 + 1)) fVec6[l39] = 0.0;
222 for (int l40 = 0; (l40 < 2); l40 = (l40 + 1)) fRec32[l40] = 0.0;
223 for (int l41 = 0; (l41 < 2); l41 = (l41 + 1)) fVec7[l41] = 0.0;
224 for (int l42 = 0; (l42 < 2); l42 = (l42 + 1)) fRec27[l42] = 0.0;
225 for (int l43 = 0; (l43 < 3); l43 = (l43 + 1)) fRec26[l43] = 0.0;
226 for (int l44 = 0; (l44 < 2); l44 = (l44 + 1)) fVec8[l44] = 0.0;
227 for (int l45 = 0; (l45 < 2); l45 = (l45 + 1)) fRec50[l45] = 0.0;
228 for (int l46 = 0; (l46 < 2); l46 = (l46 + 1)) fRec25[l46] = 0.0;
229 for (int l47 = 0; (l47 < 2); l47 = (l47 + 1)) fRec24[l47] = 0.0;
230 for (int l48 = 0; (l48 < 2); l48 = (l48 + 1)) fRec51[l48] = 0.0;
231 for (int l49 = 0; (l49 < 3); l49 = (l49 + 1)) fRec17[l49] = 0.0;
232 for (int l50 = 0; (l50 < 2); l50 = (l50 + 1)) fRec52[l50] = 0.0;
233 for (int l51 = 0; (l51 < 2); l51 = (l51 + 1)) fVec9[l51] = 0.0;
234 for (int l52 = 0; (l52 < 2); l52 = (l52 + 1)) fRec16[l52] = 0.0;
235 for (int l53 = 0; (l53 < 2); l53 = (l53 + 1)) fRec15[l53] = 0.0;
236 for (int l54 = 0; (l54 < 3); l54 = (l54 + 1)) fRec14[l54] = 0.0;
237 for (int l55 = 0; (l55 < 2); l55 = (l55 + 1)) fVec10[l55] = 0.0;
238 for (int l56 = 0; (l56 < 2); l56 = (l56 + 1)) fRec53[l56] = 0.0;
239 for (int l57 = 0; (l57 < 2); l57 = (l57 + 1)) fRec13[l57] = 0.0;
240 for (int l58 = 0; (l58 < 2); l58 = (l58 + 1)) fRec12[l58] = 0.0;
241 for (int l59 = 0; (l59 < 2); l59 = (l59 + 1)) fRec54[l59] = 0.0;
242 for (int l60 = 0; (l60 < 3); l60 = (l60 + 1)) fRec5[l60] = 0.0;
243 for (int l61 = 0; (l61 < 2); l61 = (l61 + 1)) fRec4[l61] = 0.0;
244 for (int l62 = 0; (l62 < 2); l62 = (l62 + 1)) fRec3[l62] = 0.0;
245 for (int l63 = 0; (l63 < 3); l63 = (l63 + 1)) fRec2[l63] = 0.0;
246 for (int l64 = 0; (l64 < 2); l64 = (l64 + 1)) fVec11[l64] = 0.0;
247 for (int l65 = 0; (l65 < 2); l65 = (l65 + 1)) fRec55[l65] = 0.0;
248 for (int l66 = 0; (l66 < 2); l66 = (l66 + 1)) fRec1[l66] = 0.0;
249 for (int l67 = 0; (l67 < 2); l67 = (l67 + 1)) fRec0[l67] = 0.0;
250 for (int l68 = 0; (l68 < 2); l68 = (l68 + 1)) fRec56[l68] = 0.0;
251 for (int l69 = 0; (l69 < 2); l69 = (l69 + 1)) fRec57[l69] = 0.0;
252 }
253
clear_state_f_static(PluginLV2 * p)254 void Dsp::clear_state_f_static(PluginLV2 *p)
255 {
256 static_cast<Dsp*>(p)->clear_state_f();
257 }
258
init(uint32_t sample_rate)259 inline void Dsp::init(uint32_t sample_rate)
260 {
261 fSampleRate = sample_rate;
262 double fConst0 = std::min<double>(192000.0, std::max<double>(1.0, double(fSampleRate)));
263 double fConst1 = std::tan((97.389372261283583 / fConst0));
264 double fConst2 = (1.0 / fConst1);
265 double fConst3 = (fConst2 + 1.0);
266 fConst4 = (1.0 / (fConst1 * fConst3));
267 double fConst5 = (1.0 / std::tan((20517.741620594938 / fConst0)));
268 fConst6 = (1.0 / (fConst5 + 1.0));
269 fConst7 = (1.0 - fConst5);
270 double fConst8 = (1.0 / std::tan((609.46897479641984 / fConst0)));
271 fConst9 = (1.0 / (fConst8 + 1.0));
272 fConst10 = (1.0 - fConst8);
273 fConst11 = (0.0 - fConst4);
274 fConst12 = ((1.0 - fConst2) / fConst3);
275 double fConst13 = (3.1415926535897931 / fConst0);
276 fConst14 = (1.0 / (fConst13 + 1.0));
277 fConst15 = (1.0 - fConst13);
278 double fConst16 = (1.0 / std::tan((414.69023027385271 / fConst0)));
279 fConst17 = (1.0 / (fConst16 + 1.0));
280 fConst18 = (1.0 - fConst16);
281 fConst19 = (0.009000000000000008 / fConst0);
282 iConst20 = int(std::min<double>(65536.0, std::max<double>(0.0, (0.1111111111111111 * fConst0))));
283 double fConst21 = std::tan((3769.9111843077517 / fConst0));
284 double fConst22 = (1.0 / fConst21);
285 fConst23 = (1.0 / (((fConst22 + 1.0000000000000004) / fConst21) + 1.0));
286 double fConst24 = mydsp_faustpower2_f(fConst21);
287 fConst25 = (1.0 / fConst24);
288 double fConst26 = std::tan((10053.096491487338 / fConst0));
289 fConst27 = (1.0 / fConst26);
290 fConst28 = (1.0 / (((fConst27 + 1.0000000000000004) / fConst26) + 1.0));
291 double fConst29 = (fConst22 + 1.0);
292 fConst30 = (1.0 / (fConst21 * fConst29));
293 double fConst31 = (fConst27 + 1.0);
294 fConst32 = (1.0 / fConst31);
295 fConst33 = (1.0 - fConst27);
296 double fConst34 = std::tan((47123.889803846898 / fConst0));
297 double fConst35 = (1.0 / fConst34);
298 fConst36 = (1.0 / (((fConst35 + 1.4142135623730949) / fConst34) + 1.0));
299 fConst37 = (((fConst35 + -1.4142135623730949) / fConst34) + 1.0);
300 fConst38 = (2.0 * (1.0 - (1.0 / mydsp_faustpower2_f(fConst34))));
301 fConst39 = (((fConst27 + -1.0000000000000004) / fConst26) + 1.0);
302 double fConst40 = mydsp_faustpower2_f(fConst26);
303 fConst41 = (1.0 / fConst40);
304 fConst42 = (2.0 * (1.0 - fConst41));
305 fConst43 = (0.0 - fConst30);
306 fConst44 = (1.0 - fConst22);
307 fConst45 = (fConst44 / fConst29);
308 fConst46 = (((fConst22 + -1.0000000000000004) / fConst21) + 1.0);
309 fConst47 = (2.0 * (1.0 - fConst25));
310 fConst48 = (0.0 - (2.0 / fConst24));
311 double fConst49 = std::tan((942.47779607693792 / fConst0));
312 double fConst50 = (1.0 / fConst49);
313 double fConst51 = (fConst50 + 1.0);
314 fConst52 = (1.0 / ((fConst51 / fConst49) + 1.0));
315 fConst53 = (1.0 - fConst50);
316 fConst54 = (1.0 - (fConst53 / fConst49));
317 double fConst55 = mydsp_faustpower2_f(fConst49);
318 fConst56 = (1.0 / fConst55);
319 fConst57 = (2.0 * (1.0 - fConst56));
320 fConst58 = (0.0 - (1.0 / (fConst26 * fConst31)));
321 fConst59 = (0.0 - (2.0 / fConst40));
322 fConst60 = (1.0 / ((fConst29 / fConst21) + 1.0));
323 fConst61 = (1.0 - (fConst44 / fConst21));
324 fConst62 = (1.0 / (((fConst50 + 1.0000000000000004) / fConst49) + 1.0));
325 fConst63 = (1.0 / (fConst49 * fConst51));
326 fConst64 = (1.0 / fConst29);
327 fConst65 = (0.0 - fConst63);
328 fConst66 = (fConst53 / fConst51);
329 fConst67 = (((fConst50 + -1.0000000000000004) / fConst49) + 1.0);
330 fConst68 = (0.0 - (2.0 / fConst55));
331 fConst69 = (1.0 / fConst51);
332 double fConst70 = (1.0 / std::tan((270.1769682087222 / fConst0)));
333 fConst71 = (1.0 / (fConst70 + 1.0));
334 fConst72 = (1.0 - fConst70);
335 IOTA = 0;
336 clear_state_f();
337 }
338
init_static(uint32_t sample_rate,PluginLV2 * p)339 void Dsp::init_static(uint32_t sample_rate, PluginLV2 *p)
340 {
341 static_cast<Dsp*>(p)->init(sample_rate);
342 }
343
compute(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0)344 void always_inline Dsp::compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0)
345 {
346 #define fCheckbox0 (*fCheckbox0_)
347 #define fCheckbox1 (*fCheckbox1_)
348 #define fVslider0 (*fVslider0_)
349 #define fVslider1 (*fVslider1_)
350 #define fVslider2 (*fVslider2_)
351 #define fVslider3 (*fVslider3_)
352 int iSlow0 = int(double(fCheckbox0));
353 int iSlow1 = int(double(fCheckbox1));
354 double fSlow2 = (1.0000000000000009e-05 * double(fVslider0));
355 double fSlow3 = double(fVslider1);
356 double fSlow4 = (1.25 * fSlow3);
357 double fSlow5 = (2.0 * (fSlow3 + -0.5));
358 double fSlow6 = (0.024937655860349125 * (1.0 - std::max<double>(0.0, fSlow5)));
359 double fSlow7 = std::pow(10.0, (2.0 * fSlow3));
360 double fSlow8 = (1.0 - std::max<double>(0.0, (-1.0 * fSlow5)));
361 double fSlow9 = std::pow(10.0, (1.2 * fSlow3));
362 double fSlow10 = std::pow(10.0, (0.80000000000000004 * fSlow3));
363 double fSlow11 = (fConst62 * fSlow7);
364 double fSlow12 = (fConst62 * std::pow(10.0, (0.90000000000000002 * fSlow3)));
365 double fSlow13 = (0.0010000000000000009 * std::pow(10.0, (0.050000000000000003 * double(fVslider2))));
366 double fSlow14 = (0.0010000000000000009 * std::pow(10.0, (0.050000000000000003 * double(fVslider3))));
367 for (int i0 = 0; (i0 < count); i0 = (i0 + 1)) {
368 fRec9[0] = ((0.93028479253239138 * (fRec5[1] + fRec5[2])) - (0.86056958506478287 * fRec9[1]));
369 fRec8[0] = (fRec9[0] - ((1.8405051250752198 * fRec8[1]) + (0.86129424393186271 * fRec8[2])));
370 double fTemp0 = (0.92544984225177063 * (fRec8[0] + fRec8[2]));
371 double fTemp1 = (1.8508996845035413 * fRec8[1]);
372 double fTemp2 = ((fTemp1 + fTemp0) / (double(Ranode(int(TUBE_TABLE_12AU7_250k), double(fRec7[1]))) + 100000.0));
373 fVec0[0] = fTemp2;
374 fRec10[0] = (fConst9 * ((820.0 * (fTemp2 + fVec0[1])) - (fConst10 * fRec10[1])));
375 fRec7[0] = (double(Ftube(int(TUBE_TABLE_12AU7_250k), double(((fTemp0 + (fRec10[0] + fTemp1)) + -0.44548700000000002)))) + -75.672317073170731);
376 fRec6[0] = ((0.10000000000000001 * ((fConst4 * fRec7[0]) + (fConst11 * fRec7[1]))) - (fConst12 * fRec6[1]));
377 fRec11[0] = (fConst14 * ((fConst15 * fRec11[1]) + (0.10000000000000001 * (fRec7[0] - fRec7[1]))));
378 fRec21[0] = ((0.93028479253239138 * (fRec17[1] + fRec17[2])) - (0.86056958506478287 * fRec21[1]));
379 fRec20[0] = (fRec21[0] - ((1.8405051250752198 * fRec20[1]) + (0.86129424393186271 * fRec20[2])));
380 double fTemp3 = (0.92544984225177063 * (fRec20[0] + fRec20[2]));
381 double fTemp4 = (1.8508996845035413 * fRec20[1]);
382 double fTemp5 = ((fTemp4 + fTemp3) / (double(Ranode(int(TUBE_TABLE_12AU7_250k), double(fRec19[1]))) + 100000.0));
383 fVec1[0] = fTemp5;
384 fRec22[0] = (fConst17 * ((1500.0 * (fTemp5 + fVec1[1])) - (fConst18 * fRec22[1])));
385 fRec19[0] = (double(Ftube(int(TUBE_TABLE_12AU7_250k), double(((fTemp3 + (fRec22[0] + fTemp4)) + -0.77616200000000002)))) + -78.255866666666662);
386 fRec18[0] = ((0.10000000000000001 * ((fConst4 * fRec19[0]) + (fConst11 * fRec19[1]))) - (fConst12 * fRec18[1]));
387 fRec23[0] = (fConst14 * ((fConst15 * fRec23[1]) + (0.10000000000000001 * (fRec19[0] - fRec19[1]))));
388 double fTemp6 = double(input0[i0]);
389 double fTemp7 = std::fabs(fTemp6);
390 fRec28[0] = ((0.99990000000000001 * fRec28[1]) + (9.9999999999988987e-05 * fTemp7));
391 double fTemp8 = std::max<double>(fRec28[0], fTemp7);
392 fVec2[(IOTA & 32767)] = fTemp8;
393 fRec30[0] = ((fTemp8 + fRec30[1]) - fVec2[((IOTA - iConst20) & 32767)]);
394 fRec29[0] = ((0.999 * fRec29[1]) + (fConst19 * fRec30[0]));
395 double fTemp9 = std::max<double>(-1.0, std::min<double>(-0.01, (fTemp8 + (-1.0 - (1.02 * fRec29[0])))));
396 double fTemp10 = (fTemp6 - fTemp9);
397 double fTemp11 = (40.100000000000001 * fTemp10);
398 double fTemp12 = std::max<double>(-600.0, fTemp11);
399 double fThen2 = (fTemp12 / (1.0 - std::exp((-1.0 * fTemp12))));
400 double fElse2 = (0.0 - (fTemp12 * std::exp(fTemp12)));
401 double fThen3 = ((fTemp10 * ((134.00083333333336 * fTemp10) + 20.050000000000001)) + 1.0);
402 double fElse3 = ((fTemp12 < -50.0) ? fElse2 : fThen2);
403 double fTemp13 = (0.0 - (40.100000000000001 * fTemp9));
404 double fTemp14 = std::max<double>(-600.0, fTemp13);
405 double fThen4 = (fTemp14 / (1.0 - std::exp((-1.0 * fTemp14))));
406 double fElse4 = (0.0 - (fTemp14 * std::exp(fTemp14)));
407 double fThen5 = ((fTemp13 * ((0.083333333333333329 * fTemp13) + 0.5)) + 1.0);
408 double fElse5 = ((fTemp14 < -50.0) ? fElse4 : fThen4);
409 double fTemp15 = (((std::fabs(fTemp11) > 0.0001) ? fElse3 : fThen3) - ((std::fabs(fTemp13) > 0.0001) ? fElse5 : fThen5));
410 fRec31[0] = (fSlow2 + (0.999 * fRec31[1]));
411 double fTemp16 = (1.0 - fRec31[0]);
412 double fTemp17 = (0.024937655860349125 * (fRec31[0] * fTemp15));
413 double fTemp18 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow7 * std::max<double>(-0.69999999999999996, std::min<double>(0.69999999999999996, fTemp17)))));
414 fRec39[0] = (fTemp17 - (fConst36 * ((fConst37 * fRec39[2]) + (fConst38 * fRec39[1]))));
415 double fTemp19 = (fRec39[2] + (fRec39[0] + (2.0 * fRec39[1])));
416 fVec3[0] = fTemp19;
417 fRec38[0] = ((fConst36 * ((fConst4 * fTemp19) + (fConst11 * fVec3[1]))) - (fConst12 * fRec38[1]));
418 fRec37[0] = (0.0 - (fConst32 * ((fConst33 * fRec37[1]) - (fRec38[0] + fRec38[1]))));
419 fRec36[0] = (fRec37[0] - (fConst28 * ((fConst39 * fRec36[2]) + (fConst42 * fRec36[1]))));
420 double fTemp20 = (fRec36[2] + (fRec36[0] + (2.0 * fRec36[1])));
421 fVec4[0] = fTemp20;
422 fRec35[0] = ((fConst28 * ((fConst30 * fTemp20) + (fConst43 * fVec4[1]))) - (fConst45 * fRec35[1]));
423 fRec34[0] = (fRec35[0] - (fConst23 * ((fConst46 * fRec34[2]) + (fConst47 * fRec34[1]))));
424 double fTemp21 = (fConst57 * fRec33[1]);
425 fRec33[0] = ((fConst23 * (((fConst25 * fRec34[0]) + (fConst48 * fRec34[1])) + (fConst25 * fRec34[2]))) - (fConst52 * ((fConst54 * fRec33[2]) + fTemp21)));
426 double fTemp22 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow9 * (fRec33[2] + (fConst52 * (fTemp21 + (fConst54 * fRec33[0])))))));
427 fRec43[0] = ((fConst58 * fRec38[1]) - (fConst32 * ((fConst33 * fRec43[1]) - (fConst27 * fRec38[0]))));
428 fRec42[0] = (fRec43[0] - (fConst28 * ((fConst39 * fRec42[2]) + (fConst42 * fRec42[1]))));
429 double fTemp23 = (fConst47 * fRec41[1]);
430 fRec41[0] = ((fConst28 * (((fConst41 * fRec42[0]) + (fConst59 * fRec42[1])) + (fConst41 * fRec42[2]))) - (fConst60 * ((fConst61 * fRec41[2]) + fTemp23)));
431 double fTemp24 = (fConst57 * fRec40[1]);
432 fRec40[0] = ((fRec41[2] + (fConst60 * (fTemp23 + (fConst61 * fRec41[0])))) - (fConst52 * ((fConst54 * fRec40[2]) + fTemp24)));
433 double fTemp25 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow10 * (fRec40[2] + (fConst52 * (fTemp24 + (fConst54 * fRec40[0])))))));
434 fRec47[0] = (0.0 - (fConst64 * ((fConst44 * fRec47[1]) - (fConst28 * (fTemp20 + fVec4[1])))));
435 fRec46[0] = (fRec47[0] - (fConst23 * ((fConst46 * fRec46[2]) + (fConst47 * fRec46[1]))));
436 double fTemp26 = (fRec46[2] + (fRec46[0] + (2.0 * fRec46[1])));
437 fVec5[0] = fTemp26;
438 fRec45[0] = ((fConst23 * ((fConst63 * fTemp26) + (fConst65 * fVec5[1]))) - (fConst66 * fRec45[1]));
439 fRec44[0] = (fRec45[0] - (fConst62 * ((fConst67 * fRec44[2]) + (fConst57 * fRec44[1]))));
440 double fTemp27 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow11 * (((fConst56 * fRec44[0]) + (fConst68 * fRec44[1])) + (fConst56 * fRec44[2])))));
441 fRec49[0] = (0.0 - (fConst69 * ((fConst53 * fRec49[1]) - (fConst23 * (fTemp26 + fVec5[1])))));
442 fRec48[0] = (fRec49[0] - (fConst62 * ((fConst67 * fRec48[2]) + (fConst57 * fRec48[1]))));
443 double fTemp28 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow12 * (fRec48[2] + (fRec48[0] + (2.0 * fRec48[1]))))));
444 double fTemp29 = (((1.333521432 * (fTemp22 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp22))))) + (1.584893192 * ((fTemp25 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp25)))) + (fTemp27 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp27))))))) + (1.2589412 * (fTemp28 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp28))))));
445 fVec6[0] = fTemp29;
446 fRec32[0] = (0.0 - (fConst6 * ((fConst7 * fRec32[1]) - (fTemp29 + fVec6[1]))));
447 double fTemp30 = ((fTemp15 * ((fTemp16 * ((fSlow4 * ((0.099750623441396499 * (1.0 - std::fabs((0.024937655860349125 * (fTemp16 * fTemp15))))) + -0.024937655860349125)) + 0.024937655860349125)) + (fSlow6 * fRec31[0]))) + ((0.5 * (fTemp18 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp18))))) + (fSlow8 * fRec32[0])));
448 fVec7[0] = fTemp30;
449 fRec27[0] = ((0.93028479253239138 * (fTemp30 + fVec7[1])) - (0.86056958506478287 * fRec27[1]));
450 fRec26[0] = (fRec27[0] - ((1.8405051250752198 * fRec26[1]) + (0.86129424393186271 * fRec26[2])));
451 double fTemp31 = (0.92544984225177063 * (fRec26[0] + fRec26[2]));
452 double fTemp32 = (1.8508996845035413 * fRec26[1]);
453 double fTemp33 = ((fTemp32 + fTemp31) / (double(Ranode(int(TUBE_TABLE_12AU7_68k), double(fRec25[1]))) + 100000.0));
454 fVec8[0] = fTemp33;
455 fRec50[0] = (fConst71 * ((2700.0 * (fTemp33 + fVec8[1])) - (fConst72 * fRec50[1])));
456 fRec25[0] = (double(Ftube(int(TUBE_TABLE_12AU7_68k), double(((fTemp31 + (fRec50[0] + fTemp32)) + -1.2572399999999999)))) + -83.435555555555567);
457 fRec24[0] = ((0.10000000000000001 * ((fConst4 * fRec25[0]) + (fConst11 * fRec25[1]))) - (fConst12 * fRec24[1]));
458 fRec51[0] = (fConst14 * ((fConst15 * fRec51[1]) + (0.10000000000000001 * (fRec25[0] - fRec25[1]))));
459 fRec17[0] = ((iSlow1 ? fRec23[0] : fRec18[0]) - (iSlow1 ? fRec51[0] : fRec24[0]));
460 fRec52[0] = (fSlow13 + (0.999 * fRec52[1]));
461 double fTemp34 = (fRec17[0] * fRec52[0]);
462 fVec9[0] = fTemp34;
463 fRec16[0] = (0.0 - (fConst6 * ((fConst7 * fRec16[1]) - (fTemp34 + fVec9[1]))));
464 fRec15[0] = ((0.93028479253239138 * (fRec16[0] + fRec16[1])) - (0.86056958506478287 * fRec15[1]));
465 fRec14[0] = (fRec15[0] - ((1.8405051250752198 * fRec14[1]) + (0.86129424393186271 * fRec14[2])));
466 double fTemp35 = (0.92544984225177063 * (fRec14[0] + fRec14[2]));
467 double fTemp36 = (1.8508996845035413 * fRec14[1]);
468 double fTemp37 = ((fTemp36 + fTemp35) / (double(Ranode(int(TUBE_TABLE_12AU7_250k), double(fRec13[1]))) + 100000.0));
469 fVec10[0] = fTemp37;
470 fRec53[0] = (fConst17 * ((1500.0 * (fTemp37 + fVec10[1])) - (fConst18 * fRec53[1])));
471 fRec13[0] = (double(Ftube(int(TUBE_TABLE_12AU7_250k), double(((fTemp35 + (fRec53[0] + fTemp36)) + -0.77616200000000002)))) + -78.255866666666662);
472 fRec12[0] = ((0.10000000000000001 * ((fConst4 * fRec13[0]) + (fConst11 * fRec13[1]))) - (fConst12 * fRec12[1]));
473 fRec54[0] = (fConst14 * ((fConst15 * fRec54[1]) + (0.10000000000000001 * (fRec13[0] - fRec13[1]))));
474 fRec5[0] = ((iSlow1 ? fRec11[0] : fRec6[0]) + (iSlow1 ? fRec54[0] : fRec12[0]));
475 fRec4[0] = (0.0 - (fConst6 * ((fConst7 * fRec4[1]) - (fRec5[0] + fRec5[1]))));
476 fRec3[0] = ((0.93028479253239138 * (fRec4[0] + fRec4[1])) - (0.86056958506478287 * fRec3[1]));
477 fRec2[0] = (fRec3[0] - ((1.8405051250752198 * fRec2[1]) + (0.86129424393186271 * fRec2[2])));
478 double fTemp38 = (0.92544984225177063 * (fRec2[0] + fRec2[2]));
479 double fTemp39 = (1.8508996845035413 * fRec2[1]);
480 double fTemp40 = ((fTemp39 + fTemp38) / (double(Ranode(int(TUBE_TABLE_12AU7_250k), double(fRec1[1]))) + 100000.0));
481 fVec11[0] = fTemp40;
482 fRec55[0] = (fConst9 * ((820.0 * (fTemp40 + fVec11[1])) - (fConst10 * fRec55[1])));
483 fRec1[0] = (double(Ftube(int(TUBE_TABLE_12AU7_250k), double(((fTemp38 + (fRec55[0] + fTemp39)) + -0.44548700000000002)))) + -75.672317073170731);
484 fRec0[0] = ((0.10000000000000001 * ((fConst4 * fRec1[0]) + (fConst11 * fRec1[1]))) - (fConst12 * fRec0[1]));
485 fRec56[0] = (fConst14 * ((fConst15 * fRec56[1]) + (0.10000000000000001 * (fRec1[0] - fRec1[1]))));
486 fRec57[0] = (fSlow14 + (0.999 * fRec57[1]));
487 output0[i0] = FAUSTFLOAT(((iSlow0 ? fRec56[0] : fRec0[0]) * fRec57[0]));
488 fRec9[1] = fRec9[0];
489 fRec8[2] = fRec8[1];
490 fRec8[1] = fRec8[0];
491 fVec0[1] = fVec0[0];
492 fRec10[1] = fRec10[0];
493 fRec7[1] = fRec7[0];
494 fRec6[1] = fRec6[0];
495 fRec11[1] = fRec11[0];
496 fRec21[1] = fRec21[0];
497 fRec20[2] = fRec20[1];
498 fRec20[1] = fRec20[0];
499 fVec1[1] = fVec1[0];
500 fRec22[1] = fRec22[0];
501 fRec19[1] = fRec19[0];
502 fRec18[1] = fRec18[0];
503 fRec23[1] = fRec23[0];
504 fRec28[1] = fRec28[0];
505 IOTA = (IOTA + 1);
506 fRec30[1] = fRec30[0];
507 fRec29[1] = fRec29[0];
508 fRec31[1] = fRec31[0];
509 fRec39[2] = fRec39[1];
510 fRec39[1] = fRec39[0];
511 fVec3[1] = fVec3[0];
512 fRec38[1] = fRec38[0];
513 fRec37[1] = fRec37[0];
514 fRec36[2] = fRec36[1];
515 fRec36[1] = fRec36[0];
516 fVec4[1] = fVec4[0];
517 fRec35[1] = fRec35[0];
518 fRec34[2] = fRec34[1];
519 fRec34[1] = fRec34[0];
520 fRec33[2] = fRec33[1];
521 fRec33[1] = fRec33[0];
522 fRec43[1] = fRec43[0];
523 fRec42[2] = fRec42[1];
524 fRec42[1] = fRec42[0];
525 fRec41[2] = fRec41[1];
526 fRec41[1] = fRec41[0];
527 fRec40[2] = fRec40[1];
528 fRec40[1] = fRec40[0];
529 fRec47[1] = fRec47[0];
530 fRec46[2] = fRec46[1];
531 fRec46[1] = fRec46[0];
532 fVec5[1] = fVec5[0];
533 fRec45[1] = fRec45[0];
534 fRec44[2] = fRec44[1];
535 fRec44[1] = fRec44[0];
536 fRec49[1] = fRec49[0];
537 fRec48[2] = fRec48[1];
538 fRec48[1] = fRec48[0];
539 fVec6[1] = fVec6[0];
540 fRec32[1] = fRec32[0];
541 fVec7[1] = fVec7[0];
542 fRec27[1] = fRec27[0];
543 fRec26[2] = fRec26[1];
544 fRec26[1] = fRec26[0];
545 fVec8[1] = fVec8[0];
546 fRec50[1] = fRec50[0];
547 fRec25[1] = fRec25[0];
548 fRec24[1] = fRec24[0];
549 fRec51[1] = fRec51[0];
550 fRec17[2] = fRec17[1];
551 fRec17[1] = fRec17[0];
552 fRec52[1] = fRec52[0];
553 fVec9[1] = fVec9[0];
554 fRec16[1] = fRec16[0];
555 fRec15[1] = fRec15[0];
556 fRec14[2] = fRec14[1];
557 fRec14[1] = fRec14[0];
558 fVec10[1] = fVec10[0];
559 fRec53[1] = fRec53[0];
560 fRec13[1] = fRec13[0];
561 fRec12[1] = fRec12[0];
562 fRec54[1] = fRec54[0];
563 fRec5[2] = fRec5[1];
564 fRec5[1] = fRec5[0];
565 fRec4[1] = fRec4[0];
566 fRec3[1] = fRec3[0];
567 fRec2[2] = fRec2[1];
568 fRec2[1] = fRec2[0];
569 fVec11[1] = fVec11[0];
570 fRec55[1] = fRec55[0];
571 fRec1[1] = fRec1[0];
572 fRec0[1] = fRec0[0];
573 fRec56[1] = fRec56[0];
574 fRec57[1] = fRec57[0];
575 }
576 #undef fCheckbox0
577 #undef fCheckbox1
578 #undef fVslider0
579 #undef fVslider1
580 #undef fVslider2
581 #undef fVslider3
582 }
583
compute_static(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0,PluginLV2 * p)584 void __rt_func Dsp::compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginLV2 *p)
585 {
586 static_cast<Dsp*>(p)->compute(count, input0, output0);
587 }
588
589
connect(uint32_t port,void * data)590 void Dsp::connect(uint32_t port,void* data)
591 {
592 switch ((PortIndex)port)
593 {
594 case HIGHGAIN:
595 fCheckbox1_ = (float*)data; // , 0.0, 0.0, 1.0, 1.0
596 fCheckbox0_ = (float*)data; // , 0.0, 0.0, 1.0, 1.0
597 break;
598 case DRIVE:
599 fVslider1_ = (float*)data; // , 0.34999999999999998, 0.0, 1.0, 0.01
600 break;
601 case WET_DRY:
602 fVslider0_ = (float*)data; // , 100.0, 0.0, 100.0, 1.0
603 break;
604 case PREGAIN:
605 fVslider2_ = (float*)data; // , -6.0, -20.0, 20.0, 0.10000000000000001
606 break;
607 case GAIN1:
608 fVslider3_ = (float*)data; // , -6.0, -20.0, 20.0, 0.10000000000000001
609 break;
610 default:
611 break;
612 }
613 }
614
connect_static(uint32_t port,void * data,PluginLV2 * p)615 void Dsp::connect_static(uint32_t port,void* data, PluginLV2 *p)
616 {
617 static_cast<Dsp*>(p)->connect(port, data);
618 }
619
620
plugin()621 PluginLV2 *plugin() {
622 return new Dsp();
623 }
624
del_instance(PluginLV2 * p)625 void Dsp::del_instance(PluginLV2 *p)
626 {
627 delete static_cast<Dsp*>(p);
628 }
629
630 /*
631 typedef enum
632 {
633 DRIVE,
634 WET_DRY,
635 HIGHGAIN,
636 PREGAIN,
637 GAIN1,
638 } PortIndex;
639 */
640
641 } // end namespace gxamp11
642