1 // generated from file '../src/LV2/faust/gxamp9_stereo.dsp' by dsp2cc:
2 // Code generated with Faust (https://faust.grame.fr)
3 
4 #include "valve.h"
5 
6 namespace gxamp9_stereo {
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 	double fRec67[2];
146 	double fRec66[3];
147 	double fVec12[2];
148 	double fRec68[2];
149 	double fRec65[2];
150 	double fRec64[2];
151 	double fRec69[2];
152 	double fRec79[2];
153 	double fRec78[3];
154 	double fVec13[2];
155 	double fRec80[2];
156 	double fRec77[2];
157 	double fRec76[2];
158 	double fRec81[2];
159 	double fRec86[2];
160 	double fVec14[32768];
161 	double fRec88[2];
162 	double fRec87[2];
163 	double fRec96[3];
164 	double fVec15[2];
165 	double fRec95[2];
166 	double fRec94[2];
167 	double fRec93[3];
168 	double fVec16[2];
169 	double fRec92[2];
170 	double fRec91[3];
171 	double fRec90[3];
172 	double fRec100[2];
173 	double fRec99[3];
174 	double fRec98[3];
175 	double fRec97[3];
176 	double fRec104[2];
177 	double fRec103[3];
178 	double fVec17[2];
179 	double fRec102[2];
180 	double fRec101[3];
181 	double fRec106[2];
182 	double fRec105[3];
183 	double fVec18[2];
184 	double fRec89[2];
185 	double fVec19[2];
186 	double fRec85[2];
187 	double fRec84[3];
188 	double fVec20[2];
189 	double fRec107[2];
190 	double fRec83[2];
191 	double fRec82[2];
192 	double fRec108[2];
193 	double fRec75[3];
194 	double fVec21[2];
195 	double fRec74[2];
196 	double fRec73[2];
197 	double fRec72[3];
198 	double fVec22[2];
199 	double fRec109[2];
200 	double fRec71[2];
201 	double fRec70[2];
202 	double fRec110[2];
203 	double fRec63[3];
204 	double fRec62[2];
205 	double fRec61[2];
206 	double fRec60[3];
207 	double fVec23[2];
208 	double fRec111[2];
209 	double fRec59[2];
210 	double fRec58[2];
211 	double fRec112[2];
212 
213 	void connect(uint32_t port,void* data);
214 	void clear_state_f();
215 	void init(uint32_t sample_rate);
216 	void compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *input1, FAUSTFLOAT *output0, FAUSTFLOAT *output1);
217 
218 	static void clear_state_f_static(PluginLV2*);
219 	static void init_static(uint32_t sample_rate, PluginLV2*);
220 	static void compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *input1, FAUSTFLOAT *output0, FAUSTFLOAT *output1, PluginLV2*);
221 	static void del_instance(PluginLV2 *p);
222 	static void connect_static(uint32_t port,void* data, PluginLV2 *p);
223 public:
224 	Dsp();
225 	~Dsp();
226 };
227 
228 
229 
Dsp()230 Dsp::Dsp()
231 	: PluginLV2() {
232 	version = PLUGINLV2_VERSION;
233 	id = "12ax7 feedback";
234 	name = N_("12ax7 feedback");
235 	mono_audio = 0;
236 	stereo_audio = compute_static;
237 	set_samplerate = init_static;
238 	activate_plugin = 0;
239 	connect_ports = connect_static;
240 	clear_state = clear_state_f_static;
241 	delete_instance = del_instance;
242 }
243 
~Dsp()244 Dsp::~Dsp() {
245 }
246 
clear_state_f()247 inline void Dsp::clear_state_f()
248 {
249 	for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) fRec9[l0] = 0.0;
250 	for (int l1 = 0; (l1 < 3); l1 = (l1 + 1)) fRec8[l1] = 0.0;
251 	for (int l2 = 0; (l2 < 2); l2 = (l2 + 1)) fVec0[l2] = 0.0;
252 	for (int l3 = 0; (l3 < 2); l3 = (l3 + 1)) fRec10[l3] = 0.0;
253 	for (int l4 = 0; (l4 < 2); l4 = (l4 + 1)) fRec7[l4] = 0.0;
254 	for (int l5 = 0; (l5 < 2); l5 = (l5 + 1)) fRec6[l5] = 0.0;
255 	for (int l6 = 0; (l6 < 2); l6 = (l6 + 1)) fRec11[l6] = 0.0;
256 	for (int l7 = 0; (l7 < 2); l7 = (l7 + 1)) fRec21[l7] = 0.0;
257 	for (int l8 = 0; (l8 < 3); l8 = (l8 + 1)) fRec20[l8] = 0.0;
258 	for (int l9 = 0; (l9 < 2); l9 = (l9 + 1)) fVec1[l9] = 0.0;
259 	for (int l10 = 0; (l10 < 2); l10 = (l10 + 1)) fRec22[l10] = 0.0;
260 	for (int l11 = 0; (l11 < 2); l11 = (l11 + 1)) fRec19[l11] = 0.0;
261 	for (int l12 = 0; (l12 < 2); l12 = (l12 + 1)) fRec18[l12] = 0.0;
262 	for (int l13 = 0; (l13 < 2); l13 = (l13 + 1)) fRec23[l13] = 0.0;
263 	for (int l14 = 0; (l14 < 2); l14 = (l14 + 1)) fRec28[l14] = 0.0;
264 	for (int l15 = 0; (l15 < 32768); l15 = (l15 + 1)) fVec2[l15] = 0.0;
265 	for (int l16 = 0; (l16 < 2); l16 = (l16 + 1)) fRec30[l16] = 0.0;
266 	for (int l17 = 0; (l17 < 2); l17 = (l17 + 1)) fRec29[l17] = 0.0;
267 	for (int l18 = 0; (l18 < 2); l18 = (l18 + 1)) fRec31[l18] = 0.0;
268 	for (int l19 = 0; (l19 < 3); l19 = (l19 + 1)) fRec39[l19] = 0.0;
269 	for (int l20 = 0; (l20 < 2); l20 = (l20 + 1)) fVec3[l20] = 0.0;
270 	for (int l21 = 0; (l21 < 2); l21 = (l21 + 1)) fRec38[l21] = 0.0;
271 	for (int l22 = 0; (l22 < 2); l22 = (l22 + 1)) fRec37[l22] = 0.0;
272 	for (int l23 = 0; (l23 < 3); l23 = (l23 + 1)) fRec36[l23] = 0.0;
273 	for (int l24 = 0; (l24 < 2); l24 = (l24 + 1)) fVec4[l24] = 0.0;
274 	for (int l25 = 0; (l25 < 2); l25 = (l25 + 1)) fRec35[l25] = 0.0;
275 	for (int l26 = 0; (l26 < 3); l26 = (l26 + 1)) fRec34[l26] = 0.0;
276 	for (int l27 = 0; (l27 < 3); l27 = (l27 + 1)) fRec33[l27] = 0.0;
277 	for (int l28 = 0; (l28 < 2); l28 = (l28 + 1)) fRec43[l28] = 0.0;
278 	for (int l29 = 0; (l29 < 3); l29 = (l29 + 1)) fRec42[l29] = 0.0;
279 	for (int l30 = 0; (l30 < 3); l30 = (l30 + 1)) fRec41[l30] = 0.0;
280 	for (int l31 = 0; (l31 < 3); l31 = (l31 + 1)) fRec40[l31] = 0.0;
281 	for (int l32 = 0; (l32 < 2); l32 = (l32 + 1)) fRec47[l32] = 0.0;
282 	for (int l33 = 0; (l33 < 3); l33 = (l33 + 1)) fRec46[l33] = 0.0;
283 	for (int l34 = 0; (l34 < 2); l34 = (l34 + 1)) fVec5[l34] = 0.0;
284 	for (int l35 = 0; (l35 < 2); l35 = (l35 + 1)) fRec45[l35] = 0.0;
285 	for (int l36 = 0; (l36 < 3); l36 = (l36 + 1)) fRec44[l36] = 0.0;
286 	for (int l37 = 0; (l37 < 2); l37 = (l37 + 1)) fRec49[l37] = 0.0;
287 	for (int l38 = 0; (l38 < 3); l38 = (l38 + 1)) fRec48[l38] = 0.0;
288 	for (int l39 = 0; (l39 < 2); l39 = (l39 + 1)) fVec6[l39] = 0.0;
289 	for (int l40 = 0; (l40 < 2); l40 = (l40 + 1)) fRec32[l40] = 0.0;
290 	for (int l41 = 0; (l41 < 2); l41 = (l41 + 1)) fVec7[l41] = 0.0;
291 	for (int l42 = 0; (l42 < 2); l42 = (l42 + 1)) fRec27[l42] = 0.0;
292 	for (int l43 = 0; (l43 < 3); l43 = (l43 + 1)) fRec26[l43] = 0.0;
293 	for (int l44 = 0; (l44 < 2); l44 = (l44 + 1)) fVec8[l44] = 0.0;
294 	for (int l45 = 0; (l45 < 2); l45 = (l45 + 1)) fRec50[l45] = 0.0;
295 	for (int l46 = 0; (l46 < 2); l46 = (l46 + 1)) fRec25[l46] = 0.0;
296 	for (int l47 = 0; (l47 < 2); l47 = (l47 + 1)) fRec24[l47] = 0.0;
297 	for (int l48 = 0; (l48 < 2); l48 = (l48 + 1)) fRec51[l48] = 0.0;
298 	for (int l49 = 0; (l49 < 3); l49 = (l49 + 1)) fRec17[l49] = 0.0;
299 	for (int l50 = 0; (l50 < 2); l50 = (l50 + 1)) fRec52[l50] = 0.0;
300 	for (int l51 = 0; (l51 < 2); l51 = (l51 + 1)) fVec9[l51] = 0.0;
301 	for (int l52 = 0; (l52 < 2); l52 = (l52 + 1)) fRec16[l52] = 0.0;
302 	for (int l53 = 0; (l53 < 2); l53 = (l53 + 1)) fRec15[l53] = 0.0;
303 	for (int l54 = 0; (l54 < 3); l54 = (l54 + 1)) fRec14[l54] = 0.0;
304 	for (int l55 = 0; (l55 < 2); l55 = (l55 + 1)) fVec10[l55] = 0.0;
305 	for (int l56 = 0; (l56 < 2); l56 = (l56 + 1)) fRec53[l56] = 0.0;
306 	for (int l57 = 0; (l57 < 2); l57 = (l57 + 1)) fRec13[l57] = 0.0;
307 	for (int l58 = 0; (l58 < 2); l58 = (l58 + 1)) fRec12[l58] = 0.0;
308 	for (int l59 = 0; (l59 < 2); l59 = (l59 + 1)) fRec54[l59] = 0.0;
309 	for (int l60 = 0; (l60 < 3); l60 = (l60 + 1)) fRec5[l60] = 0.0;
310 	for (int l61 = 0; (l61 < 2); l61 = (l61 + 1)) fRec4[l61] = 0.0;
311 	for (int l62 = 0; (l62 < 2); l62 = (l62 + 1)) fRec3[l62] = 0.0;
312 	for (int l63 = 0; (l63 < 3); l63 = (l63 + 1)) fRec2[l63] = 0.0;
313 	for (int l64 = 0; (l64 < 2); l64 = (l64 + 1)) fVec11[l64] = 0.0;
314 	for (int l65 = 0; (l65 < 2); l65 = (l65 + 1)) fRec55[l65] = 0.0;
315 	for (int l66 = 0; (l66 < 2); l66 = (l66 + 1)) fRec1[l66] = 0.0;
316 	for (int l67 = 0; (l67 < 2); l67 = (l67 + 1)) fRec0[l67] = 0.0;
317 	for (int l68 = 0; (l68 < 2); l68 = (l68 + 1)) fRec56[l68] = 0.0;
318 	for (int l69 = 0; (l69 < 2); l69 = (l69 + 1)) fRec57[l69] = 0.0;
319 	for (int l70 = 0; (l70 < 2); l70 = (l70 + 1)) fRec67[l70] = 0.0;
320 	for (int l71 = 0; (l71 < 3); l71 = (l71 + 1)) fRec66[l71] = 0.0;
321 	for (int l72 = 0; (l72 < 2); l72 = (l72 + 1)) fVec12[l72] = 0.0;
322 	for (int l73 = 0; (l73 < 2); l73 = (l73 + 1)) fRec68[l73] = 0.0;
323 	for (int l74 = 0; (l74 < 2); l74 = (l74 + 1)) fRec65[l74] = 0.0;
324 	for (int l75 = 0; (l75 < 2); l75 = (l75 + 1)) fRec64[l75] = 0.0;
325 	for (int l76 = 0; (l76 < 2); l76 = (l76 + 1)) fRec69[l76] = 0.0;
326 	for (int l77 = 0; (l77 < 2); l77 = (l77 + 1)) fRec79[l77] = 0.0;
327 	for (int l78 = 0; (l78 < 3); l78 = (l78 + 1)) fRec78[l78] = 0.0;
328 	for (int l79 = 0; (l79 < 2); l79 = (l79 + 1)) fVec13[l79] = 0.0;
329 	for (int l80 = 0; (l80 < 2); l80 = (l80 + 1)) fRec80[l80] = 0.0;
330 	for (int l81 = 0; (l81 < 2); l81 = (l81 + 1)) fRec77[l81] = 0.0;
331 	for (int l82 = 0; (l82 < 2); l82 = (l82 + 1)) fRec76[l82] = 0.0;
332 	for (int l83 = 0; (l83 < 2); l83 = (l83 + 1)) fRec81[l83] = 0.0;
333 	for (int l84 = 0; (l84 < 2); l84 = (l84 + 1)) fRec86[l84] = 0.0;
334 	for (int l85 = 0; (l85 < 32768); l85 = (l85 + 1)) fVec14[l85] = 0.0;
335 	for (int l86 = 0; (l86 < 2); l86 = (l86 + 1)) fRec88[l86] = 0.0;
336 	for (int l87 = 0; (l87 < 2); l87 = (l87 + 1)) fRec87[l87] = 0.0;
337 	for (int l88 = 0; (l88 < 3); l88 = (l88 + 1)) fRec96[l88] = 0.0;
338 	for (int l89 = 0; (l89 < 2); l89 = (l89 + 1)) fVec15[l89] = 0.0;
339 	for (int l90 = 0; (l90 < 2); l90 = (l90 + 1)) fRec95[l90] = 0.0;
340 	for (int l91 = 0; (l91 < 2); l91 = (l91 + 1)) fRec94[l91] = 0.0;
341 	for (int l92 = 0; (l92 < 3); l92 = (l92 + 1)) fRec93[l92] = 0.0;
342 	for (int l93 = 0; (l93 < 2); l93 = (l93 + 1)) fVec16[l93] = 0.0;
343 	for (int l94 = 0; (l94 < 2); l94 = (l94 + 1)) fRec92[l94] = 0.0;
344 	for (int l95 = 0; (l95 < 3); l95 = (l95 + 1)) fRec91[l95] = 0.0;
345 	for (int l96 = 0; (l96 < 3); l96 = (l96 + 1)) fRec90[l96] = 0.0;
346 	for (int l97 = 0; (l97 < 2); l97 = (l97 + 1)) fRec100[l97] = 0.0;
347 	for (int l98 = 0; (l98 < 3); l98 = (l98 + 1)) fRec99[l98] = 0.0;
348 	for (int l99 = 0; (l99 < 3); l99 = (l99 + 1)) fRec98[l99] = 0.0;
349 	for (int l100 = 0; (l100 < 3); l100 = (l100 + 1)) fRec97[l100] = 0.0;
350 	for (int l101 = 0; (l101 < 2); l101 = (l101 + 1)) fRec104[l101] = 0.0;
351 	for (int l102 = 0; (l102 < 3); l102 = (l102 + 1)) fRec103[l102] = 0.0;
352 	for (int l103 = 0; (l103 < 2); l103 = (l103 + 1)) fVec17[l103] = 0.0;
353 	for (int l104 = 0; (l104 < 2); l104 = (l104 + 1)) fRec102[l104] = 0.0;
354 	for (int l105 = 0; (l105 < 3); l105 = (l105 + 1)) fRec101[l105] = 0.0;
355 	for (int l106 = 0; (l106 < 2); l106 = (l106 + 1)) fRec106[l106] = 0.0;
356 	for (int l107 = 0; (l107 < 3); l107 = (l107 + 1)) fRec105[l107] = 0.0;
357 	for (int l108 = 0; (l108 < 2); l108 = (l108 + 1)) fVec18[l108] = 0.0;
358 	for (int l109 = 0; (l109 < 2); l109 = (l109 + 1)) fRec89[l109] = 0.0;
359 	for (int l110 = 0; (l110 < 2); l110 = (l110 + 1)) fVec19[l110] = 0.0;
360 	for (int l111 = 0; (l111 < 2); l111 = (l111 + 1)) fRec85[l111] = 0.0;
361 	for (int l112 = 0; (l112 < 3); l112 = (l112 + 1)) fRec84[l112] = 0.0;
362 	for (int l113 = 0; (l113 < 2); l113 = (l113 + 1)) fVec20[l113] = 0.0;
363 	for (int l114 = 0; (l114 < 2); l114 = (l114 + 1)) fRec107[l114] = 0.0;
364 	for (int l115 = 0; (l115 < 2); l115 = (l115 + 1)) fRec83[l115] = 0.0;
365 	for (int l116 = 0; (l116 < 2); l116 = (l116 + 1)) fRec82[l116] = 0.0;
366 	for (int l117 = 0; (l117 < 2); l117 = (l117 + 1)) fRec108[l117] = 0.0;
367 	for (int l118 = 0; (l118 < 3); l118 = (l118 + 1)) fRec75[l118] = 0.0;
368 	for (int l119 = 0; (l119 < 2); l119 = (l119 + 1)) fVec21[l119] = 0.0;
369 	for (int l120 = 0; (l120 < 2); l120 = (l120 + 1)) fRec74[l120] = 0.0;
370 	for (int l121 = 0; (l121 < 2); l121 = (l121 + 1)) fRec73[l121] = 0.0;
371 	for (int l122 = 0; (l122 < 3); l122 = (l122 + 1)) fRec72[l122] = 0.0;
372 	for (int l123 = 0; (l123 < 2); l123 = (l123 + 1)) fVec22[l123] = 0.0;
373 	for (int l124 = 0; (l124 < 2); l124 = (l124 + 1)) fRec109[l124] = 0.0;
374 	for (int l125 = 0; (l125 < 2); l125 = (l125 + 1)) fRec71[l125] = 0.0;
375 	for (int l126 = 0; (l126 < 2); l126 = (l126 + 1)) fRec70[l126] = 0.0;
376 	for (int l127 = 0; (l127 < 2); l127 = (l127 + 1)) fRec110[l127] = 0.0;
377 	for (int l128 = 0; (l128 < 3); l128 = (l128 + 1)) fRec63[l128] = 0.0;
378 	for (int l129 = 0; (l129 < 2); l129 = (l129 + 1)) fRec62[l129] = 0.0;
379 	for (int l130 = 0; (l130 < 2); l130 = (l130 + 1)) fRec61[l130] = 0.0;
380 	for (int l131 = 0; (l131 < 3); l131 = (l131 + 1)) fRec60[l131] = 0.0;
381 	for (int l132 = 0; (l132 < 2); l132 = (l132 + 1)) fVec23[l132] = 0.0;
382 	for (int l133 = 0; (l133 < 2); l133 = (l133 + 1)) fRec111[l133] = 0.0;
383 	for (int l134 = 0; (l134 < 2); l134 = (l134 + 1)) fRec59[l134] = 0.0;
384 	for (int l135 = 0; (l135 < 2); l135 = (l135 + 1)) fRec58[l135] = 0.0;
385 	for (int l136 = 0; (l136 < 2); l136 = (l136 + 1)) fRec112[l136] = 0.0;
386 }
387 
clear_state_f_static(PluginLV2 * p)388 void Dsp::clear_state_f_static(PluginLV2 *p)
389 {
390 	static_cast<Dsp*>(p)->clear_state_f();
391 }
392 
init(uint32_t sample_rate)393 inline void Dsp::init(uint32_t sample_rate)
394 {
395 	fSampleRate = sample_rate;
396 	double fConst0 = std::min<double>(192000.0, std::max<double>(1.0, double(fSampleRate)));
397 	double fConst1 = std::tan((97.389372261283583 / fConst0));
398 	double fConst2 = (1.0 / fConst1);
399 	double fConst3 = (fConst2 + 1.0);
400 	fConst4 = (1.0 / (fConst1 * fConst3));
401 	double fConst5 = (1.0 / std::tan((20517.741620594938 / fConst0)));
402 	fConst6 = (1.0 / (fConst5 + 1.0));
403 	fConst7 = (1.0 - fConst5);
404 	double fConst8 = (1.0 / std::tan((609.46897479641984 / fConst0)));
405 	fConst9 = (1.0 / (fConst8 + 1.0));
406 	fConst10 = (1.0 - fConst8);
407 	fConst11 = (0.0 - fConst4);
408 	fConst12 = ((1.0 - fConst2) / fConst3);
409 	double fConst13 = (3.1415926535897931 / fConst0);
410 	fConst14 = (1.0 / (fConst13 + 1.0));
411 	fConst15 = (1.0 - fConst13);
412 	double fConst16 = (1.0 / std::tan((414.69023027385271 / fConst0)));
413 	fConst17 = (1.0 / (fConst16 + 1.0));
414 	fConst18 = (1.0 - fConst16);
415 	fConst19 = (0.009000000000000008 / fConst0);
416 	iConst20 = int(std::min<double>(65536.0, std::max<double>(0.0, (0.1111111111111111 * fConst0))));
417 	double fConst21 = std::tan((3769.9111843077517 / fConst0));
418 	double fConst22 = (1.0 / fConst21);
419 	fConst23 = (1.0 / (((fConst22 + 1.0000000000000004) / fConst21) + 1.0));
420 	double fConst24 = mydsp_faustpower2_f(fConst21);
421 	fConst25 = (1.0 / fConst24);
422 	double fConst26 = std::tan((10053.096491487338 / fConst0));
423 	fConst27 = (1.0 / fConst26);
424 	fConst28 = (1.0 / (((fConst27 + 1.0000000000000004) / fConst26) + 1.0));
425 	double fConst29 = (fConst22 + 1.0);
426 	fConst30 = (1.0 / (fConst21 * fConst29));
427 	double fConst31 = (fConst27 + 1.0);
428 	fConst32 = (1.0 / fConst31);
429 	fConst33 = (1.0 - fConst27);
430 	double fConst34 = std::tan((47123.889803846898 / fConst0));
431 	double fConst35 = (1.0 / fConst34);
432 	fConst36 = (1.0 / (((fConst35 + 1.4142135623730949) / fConst34) + 1.0));
433 	fConst37 = (((fConst35 + -1.4142135623730949) / fConst34) + 1.0);
434 	fConst38 = (2.0 * (1.0 - (1.0 / mydsp_faustpower2_f(fConst34))));
435 	fConst39 = (((fConst27 + -1.0000000000000004) / fConst26) + 1.0);
436 	double fConst40 = mydsp_faustpower2_f(fConst26);
437 	fConst41 = (1.0 / fConst40);
438 	fConst42 = (2.0 * (1.0 - fConst41));
439 	fConst43 = (0.0 - fConst30);
440 	fConst44 = (1.0 - fConst22);
441 	fConst45 = (fConst44 / fConst29);
442 	fConst46 = (((fConst22 + -1.0000000000000004) / fConst21) + 1.0);
443 	fConst47 = (2.0 * (1.0 - fConst25));
444 	fConst48 = (0.0 - (2.0 / fConst24));
445 	double fConst49 = std::tan((942.47779607693792 / fConst0));
446 	double fConst50 = (1.0 / fConst49);
447 	double fConst51 = (fConst50 + 1.0);
448 	fConst52 = (1.0 / ((fConst51 / fConst49) + 1.0));
449 	fConst53 = (1.0 - fConst50);
450 	fConst54 = (1.0 - (fConst53 / fConst49));
451 	double fConst55 = mydsp_faustpower2_f(fConst49);
452 	fConst56 = (1.0 / fConst55);
453 	fConst57 = (2.0 * (1.0 - fConst56));
454 	fConst58 = (0.0 - (1.0 / (fConst26 * fConst31)));
455 	fConst59 = (0.0 - (2.0 / fConst40));
456 	fConst60 = (1.0 / ((fConst29 / fConst21) + 1.0));
457 	fConst61 = (1.0 - (fConst44 / fConst21));
458 	fConst62 = (1.0 / (((fConst50 + 1.0000000000000004) / fConst49) + 1.0));
459 	fConst63 = (1.0 / (fConst49 * fConst51));
460 	fConst64 = (1.0 / fConst29);
461 	fConst65 = (0.0 - fConst63);
462 	fConst66 = (fConst53 / fConst51);
463 	fConst67 = (((fConst50 + -1.0000000000000004) / fConst49) + 1.0);
464 	fConst68 = (0.0 - (2.0 / fConst55));
465 	fConst69 = (1.0 / fConst51);
466 	double fConst70 = (1.0 / std::tan((270.1769682087222 / fConst0)));
467 	fConst71 = (1.0 / (fConst70 + 1.0));
468 	fConst72 = (1.0 - fConst70);
469 	IOTA = 0;
470 	clear_state_f();
471 }
472 
init_static(uint32_t sample_rate,PluginLV2 * p)473 void Dsp::init_static(uint32_t sample_rate, PluginLV2 *p)
474 {
475 	static_cast<Dsp*>(p)->init(sample_rate);
476 }
477 
compute(int count,FAUSTFLOAT * input0,FAUSTFLOAT * input1,FAUSTFLOAT * output0,FAUSTFLOAT * output1)478 void always_inline Dsp::compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *input1, FAUSTFLOAT *output0, FAUSTFLOAT *output1)
479 {
480 #define fCheckbox0 (*fCheckbox0_)
481 #define fCheckbox1 (*fCheckbox1_)
482 #define fVslider0 (*fVslider0_)
483 #define fVslider1 (*fVslider1_)
484 #define fVslider2 (*fVslider2_)
485 #define fVslider3 (*fVslider3_)
486 	int iSlow0 = int(double(fCheckbox0));
487 	int iSlow1 = int(double(fCheckbox1));
488 	double fSlow2 = (1.0000000000000009e-05 * double(fVslider0));
489 	double fSlow3 = double(fVslider1);
490 	double fSlow4 = (1.25 * fSlow3);
491 	double fSlow5 = (2.0 * (fSlow3 + -0.5));
492 	double fSlow6 = (0.024937655860349125 * (1.0 - std::max<double>(0.0, fSlow5)));
493 	double fSlow7 = std::pow(10.0, (2.0 * fSlow3));
494 	double fSlow8 = (1.0 - std::max<double>(0.0, (-1.0 * fSlow5)));
495 	double fSlow9 = std::pow(10.0, (1.2 * fSlow3));
496 	double fSlow10 = std::pow(10.0, (0.80000000000000004 * fSlow3));
497 	double fSlow11 = (fConst62 * fSlow7);
498 	double fSlow12 = (fConst62 * std::pow(10.0, (0.90000000000000002 * fSlow3)));
499 	double fSlow13 = (0.0010000000000000009 * std::pow(10.0, (0.050000000000000003 * double(fVslider2))));
500 	double fSlow14 = (0.0010000000000000009 * std::pow(10.0, (0.050000000000000003 * double(fVslider3))));
501 	for (int i0 = 0; (i0 < count); i0 = (i0 + 1)) {
502 		fRec9[0] = ((0.93028479253239138 * (fRec5[1] + fRec5[2])) - (0.86056958506478287 * fRec9[1]));
503 		fRec8[0] = (fRec9[0] - ((1.8405051250752198 * fRec8[1]) + (0.86129424393186271 * fRec8[2])));
504 		double fTemp0 = (0.92544984225177063 * (fRec8[0] + fRec8[2]));
505 		double fTemp1 = (1.8508996845035413 * fRec8[1]);
506 		double fTemp2 = ((fTemp1 + fTemp0) / (double(Ranode(int(TUBE_TABLE_12AX7_250k), double(fRec7[1]))) + 100000.0));
507 		fVec0[0] = fTemp2;
508 		fRec10[0] = (fConst9 * ((820.0 * (fTemp2 + fVec0[1])) - (fConst10 * fRec10[1])));
509 		fRec7[0] = (double(Ftube(int(TUBE_TABLE_12AX7_250k), double(((fTemp0 + (fRec10[0] + fTemp1)) + -0.84070199999999995)))) + -147.47536585365856);
510 		fRec6[0] = ((0.025000000000000001 * ((fConst4 * fRec7[0]) + (fConst11 * fRec7[1]))) - (fConst12 * fRec6[1]));
511 		fRec11[0] = (fConst14 * ((fConst15 * fRec11[1]) + (0.025000000000000001 * (fRec7[0] - fRec7[1]))));
512 		fRec21[0] = ((0.93028479253239138 * (fRec17[1] + fRec17[2])) - (0.86056958506478287 * fRec21[1]));
513 		fRec20[0] = (fRec21[0] - ((1.8405051250752198 * fRec20[1]) + (0.86129424393186271 * fRec20[2])));
514 		double fTemp3 = (0.92544984225177063 * (fRec20[0] + fRec20[2]));
515 		double fTemp4 = (1.8508996845035413 * fRec20[1]);
516 		double fTemp5 = ((fTemp4 + fTemp3) / (double(Ranode(int(TUBE_TABLE_12AX7_250k), double(fRec19[1]))) + 100000.0));
517 		fVec1[0] = fTemp5;
518 		fRec22[0] = (fConst17 * ((1500.0 * (fTemp5 + fVec1[1])) - (fConst18 * fRec22[1])));
519 		fRec19[0] = (double(Ftube(int(TUBE_TABLE_12AX7_250k), double(((fTemp3 + (fRec22[0] + fTemp4)) + -1.204285)))) + -169.71433333333334);
520 		fRec18[0] = ((0.025000000000000001 * ((fConst4 * fRec19[0]) + (fConst11 * fRec19[1]))) - (fConst12 * fRec18[1]));
521 		fRec23[0] = (fConst14 * ((fConst15 * fRec23[1]) + (0.025000000000000001 * (fRec19[0] - fRec19[1]))));
522 		double fTemp6 = double(input0[i0]);
523 		double fTemp7 = std::fabs(fTemp6);
524 		fRec28[0] = ((0.99990000000000001 * fRec28[1]) + (9.9999999999988987e-05 * fTemp7));
525 		double fTemp8 = std::max<double>(fRec28[0], fTemp7);
526 		fVec2[(IOTA & 32767)] = fTemp8;
527 		fRec30[0] = ((fTemp8 + fRec30[1]) - fVec2[((IOTA - iConst20) & 32767)]);
528 		fRec29[0] = ((0.999 * fRec29[1]) + (fConst19 * fRec30[0]));
529 		double fTemp9 = std::max<double>(-1.0, std::min<double>(-0.01, (fTemp8 + (-1.0 - (1.02 * fRec29[0])))));
530 		double fTemp10 = (fTemp6 - fTemp9);
531 		double fTemp11 = (40.100000000000001 * fTemp10);
532 		double fTemp12 = std::max<double>(-600.0, fTemp11);
533 		double fThen2 = (fTemp12 / (1.0 - std::exp((-1.0 * fTemp12))));
534 		double fElse2 = (0.0 - (fTemp12 * std::exp(fTemp12)));
535 		double fThen3 = ((fTemp10 * ((134.00083333333336 * fTemp10) + 20.050000000000001)) + 1.0);
536 		double fElse3 = ((fTemp12 < -50.0) ? fElse2 : fThen2);
537 		double fTemp13 = (0.0 - (40.100000000000001 * fTemp9));
538 		double fTemp14 = std::max<double>(-600.0, fTemp13);
539 		double fThen4 = (fTemp14 / (1.0 - std::exp((-1.0 * fTemp14))));
540 		double fElse4 = (0.0 - (fTemp14 * std::exp(fTemp14)));
541 		double fThen5 = ((fTemp13 * ((0.083333333333333329 * fTemp13) + 0.5)) + 1.0);
542 		double fElse5 = ((fTemp14 < -50.0) ? fElse4 : fThen4);
543 		double fTemp15 = (((std::fabs(fTemp11) > 0.0001) ? fElse3 : fThen3) - ((std::fabs(fTemp13) > 0.0001) ? fElse5 : fThen5));
544 		fRec31[0] = (fSlow2 + (0.999 * fRec31[1]));
545 		double fTemp16 = (1.0 - fRec31[0]);
546 		double fTemp17 = (fSlow6 * fRec31[0]);
547 		double fTemp18 = (0.024937655860349125 * (fRec31[0] * fTemp15));
548 		double fTemp19 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow7 * std::max<double>(-0.69999999999999996, std::min<double>(0.69999999999999996, fTemp18)))));
549 		fRec39[0] = (fTemp18 - (fConst36 * ((fConst37 * fRec39[2]) + (fConst38 * fRec39[1]))));
550 		double fTemp20 = (fRec39[2] + (fRec39[0] + (2.0 * fRec39[1])));
551 		fVec3[0] = fTemp20;
552 		fRec38[0] = ((fConst36 * ((fConst4 * fTemp20) + (fConst11 * fVec3[1]))) - (fConst12 * fRec38[1]));
553 		fRec37[0] = (0.0 - (fConst32 * ((fConst33 * fRec37[1]) - (fRec38[0] + fRec38[1]))));
554 		fRec36[0] = (fRec37[0] - (fConst28 * ((fConst39 * fRec36[2]) + (fConst42 * fRec36[1]))));
555 		double fTemp21 = (fRec36[2] + (fRec36[0] + (2.0 * fRec36[1])));
556 		fVec4[0] = fTemp21;
557 		fRec35[0] = ((fConst28 * ((fConst30 * fTemp21) + (fConst43 * fVec4[1]))) - (fConst45 * fRec35[1]));
558 		fRec34[0] = (fRec35[0] - (fConst23 * ((fConst46 * fRec34[2]) + (fConst47 * fRec34[1]))));
559 		double fTemp22 = (fConst57 * fRec33[1]);
560 		fRec33[0] = ((fConst23 * (((fConst25 * fRec34[0]) + (fConst48 * fRec34[1])) + (fConst25 * fRec34[2]))) - (fConst52 * ((fConst54 * fRec33[2]) + fTemp22)));
561 		double fTemp23 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow9 * (fRec33[2] + (fConst52 * (fTemp22 + (fConst54 * fRec33[0])))))));
562 		fRec43[0] = ((fConst58 * fRec38[1]) - (fConst32 * ((fConst33 * fRec43[1]) - (fConst27 * fRec38[0]))));
563 		fRec42[0] = (fRec43[0] - (fConst28 * ((fConst39 * fRec42[2]) + (fConst42 * fRec42[1]))));
564 		double fTemp24 = (fConst47 * fRec41[1]);
565 		fRec41[0] = ((fConst28 * (((fConst41 * fRec42[0]) + (fConst59 * fRec42[1])) + (fConst41 * fRec42[2]))) - (fConst60 * ((fConst61 * fRec41[2]) + fTemp24)));
566 		double fTemp25 = (fConst57 * fRec40[1]);
567 		fRec40[0] = ((fRec41[2] + (fConst60 * (fTemp24 + (fConst61 * fRec41[0])))) - (fConst52 * ((fConst54 * fRec40[2]) + fTemp25)));
568 		double fTemp26 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow10 * (fRec40[2] + (fConst52 * (fTemp25 + (fConst54 * fRec40[0])))))));
569 		fRec47[0] = (0.0 - (fConst64 * ((fConst44 * fRec47[1]) - (fConst28 * (fTemp21 + fVec4[1])))));
570 		fRec46[0] = (fRec47[0] - (fConst23 * ((fConst46 * fRec46[2]) + (fConst47 * fRec46[1]))));
571 		double fTemp27 = (fRec46[2] + (fRec46[0] + (2.0 * fRec46[1])));
572 		fVec5[0] = fTemp27;
573 		fRec45[0] = ((fConst23 * ((fConst63 * fTemp27) + (fConst65 * fVec5[1]))) - (fConst66 * fRec45[1]));
574 		fRec44[0] = (fRec45[0] - (fConst62 * ((fConst67 * fRec44[2]) + (fConst57 * fRec44[1]))));
575 		double fTemp28 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow11 * (((fConst56 * fRec44[0]) + (fConst68 * fRec44[1])) + (fConst56 * fRec44[2])))));
576 		fRec49[0] = (0.0 - (fConst69 * ((fConst53 * fRec49[1]) - (fConst23 * (fTemp27 + fVec5[1])))));
577 		fRec48[0] = (fRec49[0] - (fConst62 * ((fConst67 * fRec48[2]) + (fConst57 * fRec48[1]))));
578 		double fTemp29 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow12 * (fRec48[2] + (fRec48[0] + (2.0 * fRec48[1]))))));
579 		double fTemp30 = (((1.333521432 * (fTemp23 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp23))))) + (1.584893192 * ((fTemp26 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp26)))) + (fTemp28 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp28))))))) + (1.2589412 * (fTemp29 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp29))))));
580 		fVec6[0] = fTemp30;
581 		fRec32[0] = (0.0 - (fConst6 * ((fConst7 * fRec32[1]) - (fTemp30 + fVec6[1]))));
582 		double fTemp31 = ((fTemp15 * ((fTemp16 * ((fSlow4 * ((0.099750623441396499 * (1.0 - std::fabs((0.024937655860349125 * (fTemp16 * fTemp15))))) + -0.024937655860349125)) + 0.024937655860349125)) + fTemp17)) + ((0.5 * (fTemp19 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp19))))) + (fSlow8 * fRec32[0])));
583 		fVec7[0] = fTemp31;
584 		fRec27[0] = ((0.93028479253239138 * (fTemp31 + fVec7[1])) - (0.86056958506478287 * fRec27[1]));
585 		fRec26[0] = (fRec27[0] - ((1.8405051250752198 * fRec26[1]) + (0.86129424393186271 * fRec26[2])));
586 		double fTemp32 = (0.92544984225177063 * (fRec26[0] + fRec26[2]));
587 		double fTemp33 = (1.8508996845035413 * fRec26[1]);
588 		double fTemp34 = ((fTemp33 + fTemp32) / (double(Ranode(int(TUBE_TABLE_12AX7_68k), double(fRec25[1]))) + 100000.0));
589 		fVec8[0] = fTemp34;
590 		fRec50[0] = (fConst71 * ((2700.0 * (fTemp34 + fVec8[1])) - (fConst72 * fRec50[1])));
591 		fRec25[0] = (double(Ftube(int(TUBE_TABLE_12AX7_68k), double(((fTemp32 + (fRec50[0] + fTemp33)) + -1.581656)))) + -191.42014814814814);
592 		fRec24[0] = ((0.025000000000000001 * ((fConst4 * fRec25[0]) + (fConst11 * fRec25[1]))) - (fConst12 * fRec24[1]));
593 		fRec51[0] = (fConst14 * ((fConst15 * fRec51[1]) + (0.025000000000000001 * (fRec25[0] - fRec25[1]))));
594 		fRec17[0] = ((0.59999999999999998 * (iSlow1 ? fRec23[0] : fRec18[0])) - (iSlow1 ? fRec51[0] : fRec24[0]));
595 		fRec52[0] = (fSlow13 + (0.999 * fRec52[1]));
596 		double fTemp35 = (fRec17[0] * fRec52[0]);
597 		fVec9[0] = fTemp35;
598 		fRec16[0] = (0.0 - (fConst6 * ((fConst7 * fRec16[1]) - (fTemp35 + fVec9[1]))));
599 		fRec15[0] = ((0.93028479253239138 * (fRec16[0] + fRec16[1])) - (0.86056958506478287 * fRec15[1]));
600 		fRec14[0] = (fRec15[0] - ((1.8405051250752198 * fRec14[1]) + (0.86129424393186271 * fRec14[2])));
601 		double fTemp36 = (0.92544984225177063 * (fRec14[0] + fRec14[2]));
602 		double fTemp37 = (1.8508996845035413 * fRec14[1]);
603 		double fTemp38 = ((fTemp37 + fTemp36) / (double(Ranode(int(TUBE_TABLE_12AX7_250k), double(fRec13[1]))) + 100000.0));
604 		fVec10[0] = fTemp38;
605 		fRec53[0] = (fConst17 * ((1500.0 * (fTemp38 + fVec10[1])) - (fConst18 * fRec53[1])));
606 		fRec13[0] = (double(Ftube(int(TUBE_TABLE_12AX7_250k), double(((fTemp36 + (fRec53[0] + fTemp37)) + -1.204285)))) + -169.71433333333334);
607 		fRec12[0] = ((0.025000000000000001 * ((fConst4 * fRec13[0]) + (fConst11 * fRec13[1]))) - (fConst12 * fRec12[1]));
608 		fRec54[0] = (fConst14 * ((fConst15 * fRec54[1]) + (0.025000000000000001 * (fRec13[0] - fRec13[1]))));
609 		fRec5[0] = ((0.59999999999999998 * (iSlow1 ? fRec11[0] : fRec6[0])) + (iSlow1 ? fRec54[0] : fRec12[0]));
610 		fRec4[0] = (0.0 - (fConst6 * ((fConst7 * fRec4[1]) - (fRec5[0] + fRec5[1]))));
611 		fRec3[0] = ((0.93028479253239138 * (fRec4[0] + fRec4[1])) - (0.86056958506478287 * fRec3[1]));
612 		fRec2[0] = (fRec3[0] - ((1.8405051250752198 * fRec2[1]) + (0.86129424393186271 * fRec2[2])));
613 		double fTemp39 = (0.92544984225177063 * (fRec2[0] + fRec2[2]));
614 		double fTemp40 = (1.8508996845035413 * fRec2[1]);
615 		double fTemp41 = ((fTemp40 + fTemp39) / (double(Ranode(int(TUBE_TABLE_12AX7_250k), double(fRec1[1]))) + 100000.0));
616 		fVec11[0] = fTemp41;
617 		fRec55[0] = (fConst9 * ((820.0 * (fTemp41 + fVec11[1])) - (fConst10 * fRec55[1])));
618 		fRec1[0] = (double(Ftube(int(TUBE_TABLE_12AX7_250k), double(((fTemp39 + (fRec55[0] + fTemp40)) + -0.84070199999999995)))) + -147.47536585365856);
619 		fRec0[0] = ((0.025000000000000001 * ((fConst4 * fRec1[0]) + (fConst11 * fRec1[1]))) - (fConst12 * fRec0[1]));
620 		fRec56[0] = (fConst14 * ((fConst15 * fRec56[1]) + (0.025000000000000001 * (fRec1[0] - fRec1[1]))));
621 		fRec57[0] = (fSlow14 + (0.999 * fRec57[1]));
622 		output0[i0] = FAUSTFLOAT(((iSlow0 ? fRec56[0] : fRec0[0]) * fRec57[0]));
623 		fRec67[0] = ((0.93028479253239138 * (fRec63[1] + fRec63[2])) - (0.86056958506478287 * fRec67[1]));
624 		fRec66[0] = (fRec67[0] - ((1.8405051250752198 * fRec66[1]) + (0.86129424393186271 * fRec66[2])));
625 		double fTemp42 = (0.92544984225177063 * (fRec66[0] + fRec66[2]));
626 		double fTemp43 = (1.8508996845035413 * fRec66[1]);
627 		double fTemp44 = ((fTemp43 + fTemp42) / (double(Ranode(int(TUBE_TABLE_12AX7_250k), double(fRec65[1]))) + 100000.0));
628 		fVec12[0] = fTemp44;
629 		fRec68[0] = (fConst9 * ((820.0 * (fTemp44 + fVec12[1])) - (fConst10 * fRec68[1])));
630 		fRec65[0] = (double(Ftube(int(TUBE_TABLE_12AX7_250k), double(((fTemp42 + (fRec68[0] + fTemp43)) + -0.84070199999999995)))) + -147.47536585365856);
631 		fRec64[0] = ((0.025000000000000001 * ((fConst4 * fRec65[0]) + (fConst11 * fRec65[1]))) - (fConst12 * fRec64[1]));
632 		fRec69[0] = (fConst14 * ((fConst15 * fRec69[1]) + (0.025000000000000001 * (fRec65[0] - fRec65[1]))));
633 		fRec79[0] = ((0.93028479253239138 * (fRec75[1] + fRec75[2])) - (0.86056958506478287 * fRec79[1]));
634 		fRec78[0] = (fRec79[0] - ((1.8405051250752198 * fRec78[1]) + (0.86129424393186271 * fRec78[2])));
635 		double fTemp45 = (0.92544984225177063 * (fRec78[0] + fRec78[2]));
636 		double fTemp46 = (1.8508996845035413 * fRec78[1]);
637 		double fTemp47 = ((fTemp46 + fTemp45) / (double(Ranode(int(TUBE_TABLE_12AX7_250k), double(fRec77[1]))) + 100000.0));
638 		fVec13[0] = fTemp47;
639 		fRec80[0] = (fConst17 * ((1500.0 * (fTemp47 + fVec13[1])) - (fConst18 * fRec80[1])));
640 		fRec77[0] = (double(Ftube(int(TUBE_TABLE_12AX7_250k), double(((fTemp45 + (fRec80[0] + fTemp46)) + -1.204285)))) + -169.71433333333334);
641 		fRec76[0] = ((0.025000000000000001 * ((fConst4 * fRec77[0]) + (fConst11 * fRec77[1]))) - (fConst12 * fRec76[1]));
642 		fRec81[0] = (fConst14 * ((fConst15 * fRec81[1]) + (0.025000000000000001 * (fRec77[0] - fRec77[1]))));
643 		double fTemp48 = double(input1[i0]);
644 		double fTemp49 = std::fabs(fTemp48);
645 		fRec86[0] = ((0.99990000000000001 * fRec86[1]) + (9.9999999999988987e-05 * fTemp49));
646 		double fTemp50 = std::max<double>(fRec86[0], fTemp49);
647 		fVec14[(IOTA & 32767)] = fTemp50;
648 		fRec88[0] = ((fTemp50 + fRec88[1]) - fVec14[((IOTA - iConst20) & 32767)]);
649 		fRec87[0] = ((0.999 * fRec87[1]) + (fConst19 * fRec88[0]));
650 		double fTemp51 = std::max<double>(-1.0, std::min<double>(-0.01, (fTemp50 + (-1.0 - (1.02 * fRec87[0])))));
651 		double fTemp52 = (fTemp48 - fTemp51);
652 		double fTemp53 = (40.100000000000001 * fTemp52);
653 		double fTemp54 = std::max<double>(-600.0, fTemp53);
654 		double fThen11 = (fTemp54 / (1.0 - std::exp((-1.0 * fTemp54))));
655 		double fElse11 = (0.0 - (fTemp54 * std::exp(fTemp54)));
656 		double fThen12 = ((fTemp52 * ((134.00083333333336 * fTemp52) + 20.050000000000001)) + 1.0);
657 		double fElse12 = ((fTemp54 < -50.0) ? fElse11 : fThen11);
658 		double fTemp55 = (0.0 - (40.100000000000001 * fTemp51));
659 		double fTemp56 = std::max<double>(-600.0, fTemp55);
660 		double fThen13 = (fTemp56 / (1.0 - std::exp((-1.0 * fTemp56))));
661 		double fElse13 = (0.0 - (fTemp56 * std::exp(fTemp56)));
662 		double fThen14 = ((fTemp55 * ((0.083333333333333329 * fTemp55) + 0.5)) + 1.0);
663 		double fElse14 = ((fTemp56 < -50.0) ? fElse13 : fThen13);
664 		double fTemp57 = (((std::fabs(fTemp53) > 0.0001) ? fElse12 : fThen12) - ((std::fabs(fTemp55) > 0.0001) ? fElse14 : fThen14));
665 		double fTemp58 = (0.024937655860349125 * (fRec31[0] * fTemp57));
666 		double fTemp59 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow7 * std::max<double>(-0.69999999999999996, std::min<double>(0.69999999999999996, fTemp58)))));
667 		fRec96[0] = (fTemp58 - (fConst36 * ((fConst37 * fRec96[2]) + (fConst38 * fRec96[1]))));
668 		double fTemp60 = (fRec96[2] + (fRec96[0] + (2.0 * fRec96[1])));
669 		fVec15[0] = fTemp60;
670 		fRec95[0] = ((fConst36 * ((fConst4 * fTemp60) + (fConst11 * fVec15[1]))) - (fConst12 * fRec95[1]));
671 		fRec94[0] = (0.0 - (fConst32 * ((fConst33 * fRec94[1]) - (fRec95[0] + fRec95[1]))));
672 		fRec93[0] = (fRec94[0] - (fConst28 * ((fConst39 * fRec93[2]) + (fConst42 * fRec93[1]))));
673 		double fTemp61 = (fRec93[2] + (fRec93[0] + (2.0 * fRec93[1])));
674 		fVec16[0] = fTemp61;
675 		fRec92[0] = ((fConst28 * ((fConst30 * fTemp61) + (fConst43 * fVec16[1]))) - (fConst45 * fRec92[1]));
676 		fRec91[0] = (fRec92[0] - (fConst23 * ((fConst46 * fRec91[2]) + (fConst47 * fRec91[1]))));
677 		double fTemp62 = (fConst57 * fRec90[1]);
678 		fRec90[0] = ((fConst23 * (((fConst25 * fRec91[0]) + (fConst48 * fRec91[1])) + (fConst25 * fRec91[2]))) - (fConst52 * ((fConst54 * fRec90[2]) + fTemp62)));
679 		double fTemp63 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow9 * (fRec90[2] + (fConst52 * (fTemp62 + (fConst54 * fRec90[0])))))));
680 		fRec100[0] = ((fConst58 * fRec95[1]) - (fConst32 * ((fConst33 * fRec100[1]) - (fConst27 * fRec95[0]))));
681 		fRec99[0] = (fRec100[0] - (fConst28 * ((fConst39 * fRec99[2]) + (fConst42 * fRec99[1]))));
682 		double fTemp64 = (fConst47 * fRec98[1]);
683 		fRec98[0] = ((fConst28 * (((fConst41 * fRec99[0]) + (fConst59 * fRec99[1])) + (fConst41 * fRec99[2]))) - (fConst60 * ((fConst61 * fRec98[2]) + fTemp64)));
684 		double fTemp65 = (fConst57 * fRec97[1]);
685 		fRec97[0] = ((fRec98[2] + (fConst60 * (fTemp64 + (fConst61 * fRec98[0])))) - (fConst52 * ((fConst54 * fRec97[2]) + fTemp65)));
686 		double fTemp66 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow10 * (fRec97[2] + (fConst52 * (fTemp65 + (fConst54 * fRec97[0])))))));
687 		fRec104[0] = (0.0 - (fConst64 * ((fConst44 * fRec104[1]) - (fConst28 * (fTemp61 + fVec16[1])))));
688 		fRec103[0] = (fRec104[0] - (fConst23 * ((fConst46 * fRec103[2]) + (fConst47 * fRec103[1]))));
689 		double fTemp67 = (fRec103[2] + (fRec103[0] + (2.0 * fRec103[1])));
690 		fVec17[0] = fTemp67;
691 		fRec102[0] = ((fConst23 * ((fConst63 * fTemp67) + (fConst65 * fVec17[1]))) - (fConst66 * fRec102[1]));
692 		fRec101[0] = (fRec102[0] - (fConst62 * ((fConst67 * fRec101[2]) + (fConst57 * fRec101[1]))));
693 		double fTemp68 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow11 * (((fConst56 * fRec101[0]) + (fConst68 * fRec101[1])) + (fConst56 * fRec101[2])))));
694 		fRec106[0] = (0.0 - (fConst69 * ((fConst53 * fRec106[1]) - (fConst23 * (fTemp67 + fVec17[1])))));
695 		fRec105[0] = (fRec106[0] - (fConst62 * ((fConst67 * fRec105[2]) + (fConst57 * fRec105[1]))));
696 		double fTemp69 = std::max<double>(-1.0, std::min<double>(1.0, (fSlow12 * (fRec105[2] + (fRec105[0] + (2.0 * fRec105[1]))))));
697 		double fTemp70 = (((1.333521432 * (fTemp63 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp63))))) + (1.584893192 * ((fTemp66 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp66)))) + (fTemp68 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp68))))))) + (1.2589412 * (fTemp69 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp69))))));
698 		fVec18[0] = fTemp70;
699 		fRec89[0] = (0.0 - (fConst6 * ((fConst7 * fRec89[1]) - (fTemp70 + fVec18[1]))));
700 		double fTemp71 = ((fTemp57 * (fTemp17 + (fTemp16 * ((fSlow4 * ((0.099750623441396499 * (1.0 - std::fabs((0.024937655860349125 * (fTemp16 * fTemp57))))) + -0.024937655860349125)) + 0.024937655860349125)))) + ((0.5 * (fTemp59 * (1.0 - (0.33333333333333331 * mydsp_faustpower2_f(fTemp59))))) + (fSlow8 * fRec89[0])));
701 		fVec19[0] = fTemp71;
702 		fRec85[0] = ((0.93028479253239138 * (fTemp71 + fVec19[1])) - (0.86056958506478287 * fRec85[1]));
703 		fRec84[0] = (fRec85[0] - ((1.8405051250752198 * fRec84[1]) + (0.86129424393186271 * fRec84[2])));
704 		double fTemp72 = (0.92544984225177063 * (fRec84[0] + fRec84[2]));
705 		double fTemp73 = (1.8508996845035413 * fRec84[1]);
706 		double fTemp74 = ((fTemp73 + fTemp72) / (double(Ranode(int(TUBE_TABLE_12AX7_68k), double(fRec83[1]))) + 100000.0));
707 		fVec20[0] = fTemp74;
708 		fRec107[0] = (fConst71 * ((2700.0 * (fTemp74 + fVec20[1])) - (fConst72 * fRec107[1])));
709 		fRec83[0] = (double(Ftube(int(TUBE_TABLE_12AX7_68k), double(((fTemp72 + (fRec107[0] + fTemp73)) + -1.581656)))) + -191.42014814814814);
710 		fRec82[0] = ((0.025000000000000001 * ((fConst4 * fRec83[0]) + (fConst11 * fRec83[1]))) - (fConst12 * fRec82[1]));
711 		fRec108[0] = (fConst14 * ((fConst15 * fRec108[1]) + (0.025000000000000001 * (fRec83[0] - fRec83[1]))));
712 		fRec75[0] = ((0.59999999999999998 * (iSlow1 ? fRec81[0] : fRec76[0])) - (iSlow1 ? fRec108[0] : fRec82[0]));
713 		double fTemp75 = (fRec52[0] * fRec75[0]);
714 		fVec21[0] = fTemp75;
715 		fRec74[0] = (0.0 - (fConst6 * ((fConst7 * fRec74[1]) - (fTemp75 + fVec21[1]))));
716 		fRec73[0] = ((0.93028479253239138 * (fRec74[0] + fRec74[1])) - (0.86056958506478287 * fRec73[1]));
717 		fRec72[0] = (fRec73[0] - ((1.8405051250752198 * fRec72[1]) + (0.86129424393186271 * fRec72[2])));
718 		double fTemp76 = (0.92544984225177063 * (fRec72[0] + fRec72[2]));
719 		double fTemp77 = (1.8508996845035413 * fRec72[1]);
720 		double fTemp78 = ((fTemp77 + fTemp76) / (double(Ranode(int(TUBE_TABLE_12AX7_250k), double(fRec71[1]))) + 100000.0));
721 		fVec22[0] = fTemp78;
722 		fRec109[0] = (fConst17 * ((1500.0 * (fTemp78 + fVec22[1])) - (fConst18 * fRec109[1])));
723 		fRec71[0] = (double(Ftube(int(TUBE_TABLE_12AX7_250k), double(((fTemp76 + (fRec109[0] + fTemp77)) + -1.204285)))) + -169.71433333333334);
724 		fRec70[0] = ((0.025000000000000001 * ((fConst4 * fRec71[0]) + (fConst11 * fRec71[1]))) - (fConst12 * fRec70[1]));
725 		fRec110[0] = (fConst14 * ((fConst15 * fRec110[1]) + (0.025000000000000001 * (fRec71[0] - fRec71[1]))));
726 		fRec63[0] = ((0.59999999999999998 * (iSlow1 ? fRec69[0] : fRec64[0])) + (iSlow1 ? fRec110[0] : fRec70[0]));
727 		fRec62[0] = (0.0 - (fConst6 * ((fConst7 * fRec62[1]) - (fRec63[0] + fRec63[1]))));
728 		fRec61[0] = ((0.93028479253239138 * (fRec62[0] + fRec62[1])) - (0.86056958506478287 * fRec61[1]));
729 		fRec60[0] = (fRec61[0] - ((1.8405051250752198 * fRec60[1]) + (0.86129424393186271 * fRec60[2])));
730 		double fTemp79 = (0.92544984225177063 * (fRec60[0] + fRec60[2]));
731 		double fTemp80 = (1.8508996845035413 * fRec60[1]);
732 		double fTemp81 = ((fTemp80 + fTemp79) / (double(Ranode(int(TUBE_TABLE_12AX7_250k), double(fRec59[1]))) + 100000.0));
733 		fVec23[0] = fTemp81;
734 		fRec111[0] = (fConst9 * ((820.0 * (fTemp81 + fVec23[1])) - (fConst10 * fRec111[1])));
735 		fRec59[0] = (double(Ftube(int(TUBE_TABLE_12AX7_250k), double(((fTemp79 + (fRec111[0] + fTemp80)) + -0.84070199999999995)))) + -147.47536585365856);
736 		fRec58[0] = ((0.025000000000000001 * ((fConst4 * fRec59[0]) + (fConst11 * fRec59[1]))) - (fConst12 * fRec58[1]));
737 		fRec112[0] = (fConst14 * ((fConst15 * fRec112[1]) + (0.025000000000000001 * (fRec59[0] - fRec59[1]))));
738 		output1[i0] = FAUSTFLOAT((fRec57[0] * (iSlow0 ? fRec112[0] : fRec58[0])));
739 		fRec9[1] = fRec9[0];
740 		fRec8[2] = fRec8[1];
741 		fRec8[1] = fRec8[0];
742 		fVec0[1] = fVec0[0];
743 		fRec10[1] = fRec10[0];
744 		fRec7[1] = fRec7[0];
745 		fRec6[1] = fRec6[0];
746 		fRec11[1] = fRec11[0];
747 		fRec21[1] = fRec21[0];
748 		fRec20[2] = fRec20[1];
749 		fRec20[1] = fRec20[0];
750 		fVec1[1] = fVec1[0];
751 		fRec22[1] = fRec22[0];
752 		fRec19[1] = fRec19[0];
753 		fRec18[1] = fRec18[0];
754 		fRec23[1] = fRec23[0];
755 		fRec28[1] = fRec28[0];
756 		IOTA = (IOTA + 1);
757 		fRec30[1] = fRec30[0];
758 		fRec29[1] = fRec29[0];
759 		fRec31[1] = fRec31[0];
760 		fRec39[2] = fRec39[1];
761 		fRec39[1] = fRec39[0];
762 		fVec3[1] = fVec3[0];
763 		fRec38[1] = fRec38[0];
764 		fRec37[1] = fRec37[0];
765 		fRec36[2] = fRec36[1];
766 		fRec36[1] = fRec36[0];
767 		fVec4[1] = fVec4[0];
768 		fRec35[1] = fRec35[0];
769 		fRec34[2] = fRec34[1];
770 		fRec34[1] = fRec34[0];
771 		fRec33[2] = fRec33[1];
772 		fRec33[1] = fRec33[0];
773 		fRec43[1] = fRec43[0];
774 		fRec42[2] = fRec42[1];
775 		fRec42[1] = fRec42[0];
776 		fRec41[2] = fRec41[1];
777 		fRec41[1] = fRec41[0];
778 		fRec40[2] = fRec40[1];
779 		fRec40[1] = fRec40[0];
780 		fRec47[1] = fRec47[0];
781 		fRec46[2] = fRec46[1];
782 		fRec46[1] = fRec46[0];
783 		fVec5[1] = fVec5[0];
784 		fRec45[1] = fRec45[0];
785 		fRec44[2] = fRec44[1];
786 		fRec44[1] = fRec44[0];
787 		fRec49[1] = fRec49[0];
788 		fRec48[2] = fRec48[1];
789 		fRec48[1] = fRec48[0];
790 		fVec6[1] = fVec6[0];
791 		fRec32[1] = fRec32[0];
792 		fVec7[1] = fVec7[0];
793 		fRec27[1] = fRec27[0];
794 		fRec26[2] = fRec26[1];
795 		fRec26[1] = fRec26[0];
796 		fVec8[1] = fVec8[0];
797 		fRec50[1] = fRec50[0];
798 		fRec25[1] = fRec25[0];
799 		fRec24[1] = fRec24[0];
800 		fRec51[1] = fRec51[0];
801 		fRec17[2] = fRec17[1];
802 		fRec17[1] = fRec17[0];
803 		fRec52[1] = fRec52[0];
804 		fVec9[1] = fVec9[0];
805 		fRec16[1] = fRec16[0];
806 		fRec15[1] = fRec15[0];
807 		fRec14[2] = fRec14[1];
808 		fRec14[1] = fRec14[0];
809 		fVec10[1] = fVec10[0];
810 		fRec53[1] = fRec53[0];
811 		fRec13[1] = fRec13[0];
812 		fRec12[1] = fRec12[0];
813 		fRec54[1] = fRec54[0];
814 		fRec5[2] = fRec5[1];
815 		fRec5[1] = fRec5[0];
816 		fRec4[1] = fRec4[0];
817 		fRec3[1] = fRec3[0];
818 		fRec2[2] = fRec2[1];
819 		fRec2[1] = fRec2[0];
820 		fVec11[1] = fVec11[0];
821 		fRec55[1] = fRec55[0];
822 		fRec1[1] = fRec1[0];
823 		fRec0[1] = fRec0[0];
824 		fRec56[1] = fRec56[0];
825 		fRec57[1] = fRec57[0];
826 		fRec67[1] = fRec67[0];
827 		fRec66[2] = fRec66[1];
828 		fRec66[1] = fRec66[0];
829 		fVec12[1] = fVec12[0];
830 		fRec68[1] = fRec68[0];
831 		fRec65[1] = fRec65[0];
832 		fRec64[1] = fRec64[0];
833 		fRec69[1] = fRec69[0];
834 		fRec79[1] = fRec79[0];
835 		fRec78[2] = fRec78[1];
836 		fRec78[1] = fRec78[0];
837 		fVec13[1] = fVec13[0];
838 		fRec80[1] = fRec80[0];
839 		fRec77[1] = fRec77[0];
840 		fRec76[1] = fRec76[0];
841 		fRec81[1] = fRec81[0];
842 		fRec86[1] = fRec86[0];
843 		fRec88[1] = fRec88[0];
844 		fRec87[1] = fRec87[0];
845 		fRec96[2] = fRec96[1];
846 		fRec96[1] = fRec96[0];
847 		fVec15[1] = fVec15[0];
848 		fRec95[1] = fRec95[0];
849 		fRec94[1] = fRec94[0];
850 		fRec93[2] = fRec93[1];
851 		fRec93[1] = fRec93[0];
852 		fVec16[1] = fVec16[0];
853 		fRec92[1] = fRec92[0];
854 		fRec91[2] = fRec91[1];
855 		fRec91[1] = fRec91[0];
856 		fRec90[2] = fRec90[1];
857 		fRec90[1] = fRec90[0];
858 		fRec100[1] = fRec100[0];
859 		fRec99[2] = fRec99[1];
860 		fRec99[1] = fRec99[0];
861 		fRec98[2] = fRec98[1];
862 		fRec98[1] = fRec98[0];
863 		fRec97[2] = fRec97[1];
864 		fRec97[1] = fRec97[0];
865 		fRec104[1] = fRec104[0];
866 		fRec103[2] = fRec103[1];
867 		fRec103[1] = fRec103[0];
868 		fVec17[1] = fVec17[0];
869 		fRec102[1] = fRec102[0];
870 		fRec101[2] = fRec101[1];
871 		fRec101[1] = fRec101[0];
872 		fRec106[1] = fRec106[0];
873 		fRec105[2] = fRec105[1];
874 		fRec105[1] = fRec105[0];
875 		fVec18[1] = fVec18[0];
876 		fRec89[1] = fRec89[0];
877 		fVec19[1] = fVec19[0];
878 		fRec85[1] = fRec85[0];
879 		fRec84[2] = fRec84[1];
880 		fRec84[1] = fRec84[0];
881 		fVec20[1] = fVec20[0];
882 		fRec107[1] = fRec107[0];
883 		fRec83[1] = fRec83[0];
884 		fRec82[1] = fRec82[0];
885 		fRec108[1] = fRec108[0];
886 		fRec75[2] = fRec75[1];
887 		fRec75[1] = fRec75[0];
888 		fVec21[1] = fVec21[0];
889 		fRec74[1] = fRec74[0];
890 		fRec73[1] = fRec73[0];
891 		fRec72[2] = fRec72[1];
892 		fRec72[1] = fRec72[0];
893 		fVec22[1] = fVec22[0];
894 		fRec109[1] = fRec109[0];
895 		fRec71[1] = fRec71[0];
896 		fRec70[1] = fRec70[0];
897 		fRec110[1] = fRec110[0];
898 		fRec63[2] = fRec63[1];
899 		fRec63[1] = fRec63[0];
900 		fRec62[1] = fRec62[0];
901 		fRec61[1] = fRec61[0];
902 		fRec60[2] = fRec60[1];
903 		fRec60[1] = fRec60[0];
904 		fVec23[1] = fVec23[0];
905 		fRec111[1] = fRec111[0];
906 		fRec59[1] = fRec59[0];
907 		fRec58[1] = fRec58[0];
908 		fRec112[1] = fRec112[0];
909 	}
910 #undef fCheckbox0
911 #undef fCheckbox1
912 #undef fVslider0
913 #undef fVslider1
914 #undef fVslider2
915 #undef fVslider3
916 }
917 
compute_static(int count,FAUSTFLOAT * input0,FAUSTFLOAT * input1,FAUSTFLOAT * output0,FAUSTFLOAT * output1,PluginLV2 * p)918 void __rt_func Dsp::compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *input1, FAUSTFLOAT *output0, FAUSTFLOAT *output1, PluginLV2 *p)
919 {
920 	static_cast<Dsp*>(p)->compute(count, input0, input1, output0, output1);
921 }
922 
923 
connect(uint32_t port,void * data)924 void Dsp::connect(uint32_t port,void* data)
925 {
926 	switch ((PortIndex)port)
927 	{
928 	case HIGHGAIN:
929 		fCheckbox1_ = (float*)data; // , 0.0, 0.0, 1.0, 1.0
930 		fCheckbox0_ = (float*)data; // , 0.0, 0.0, 1.0, 1.0
931 		break;
932 	case DRIVE:
933 		fVslider1_ = (float*)data; // , 0.34999999999999998, 0.0, 1.0, 0.01
934 		break;
935 	case WET_DRY:
936 		fVslider0_ = (float*)data; // , 100.0, 0.0, 100.0, 1.0
937 		break;
938 	case PREGAIN:
939 		fVslider2_ = (float*)data; // , -6.0, -20.0, 20.0, 0.10000000000000001
940 		break;
941 	case GAIN1:
942 		fVslider3_ = (float*)data; // , -6.0, -20.0, 20.0, 0.10000000000000001
943 		break;
944 	default:
945 		break;
946 	}
947 }
948 
connect_static(uint32_t port,void * data,PluginLV2 * p)949 void Dsp::connect_static(uint32_t port,void* data, PluginLV2 *p)
950 {
951 	static_cast<Dsp*>(p)->connect(port, data);
952 }
953 
954 
plugin()955 PluginLV2 *plugin() {
956 	return new Dsp();
957 }
958 
del_instance(PluginLV2 * p)959 void Dsp::del_instance(PluginLV2 *p)
960 {
961 	delete static_cast<Dsp*>(p);
962 }
963 
964 /*
965 typedef enum
966 {
967    DRIVE,
968    WET_DRY,
969    HIGHGAIN,
970    PREGAIN,
971    GAIN1,
972 } PortIndex;
973 */
974 
975 } // end namespace gxamp9_stereo
976