1 namespace gxsim_6dj8_feed {
2 
3 #include <resources/valve.h>
4 /* ------------------------------------------------------------
5 name: "6DJ8 feedback"
6 Code generated with Faust 2.15.11 (https://faust.grame.fr)
7 Compilation options: cpp, -double -ftz 0
8 ------------------------------------------------------------ */
9 
10 
11 
12 /* link with : "" */
13 
module_faustpower2_f(double value)14 static double module_faustpower2_f(double value) {
15 	return (value * value);
16 
17 }
18 
19 
20 class module : public dsp {
21 
22  private:
23 
24 	int fSamplingFreq;
25 	double fConst0;
26 	double fConst1;
27 	double fConst2;
28 	double fConst3;
29 	double fConst4;
30 	double fConst5;
31 	double fConst6;
32 	double fConst7;
33 	double fRec9[2];
34 	double fRec8[3];
35 	double fConst8;
36 	double fConst9;
37 	double fConst10;
38 	double fRec10[2];
39 	double fRec7[3];
40 	double fConst11;
41 	double fConst12;
42 	double fRec6[2];
43 	double fRec20[2];
44 	double fRec19[3];
45 	double fConst13;
46 	double fConst14;
47 	double fConst15;
48 	double fRec21[2];
49 	double fRec18[3];
50 	double fRec17[2];
51 	double fConst16;
52 	double fConst17;
53 	double fConst18;
54 	double fConst19;
55 	double fConst20;
56 	double fConst21;
57 	double fConst22;
58 	double fConst23;
59 	double fConst24;
60 	double fConst25;
61 	double fConst26;
62 	double fConst27;
63 	double fConst28;
64 	double fConst29;
65 	double fConst30;
66 	double fConst31;
67 	double fRec34[2];
68 	int IOTA;
69 	double fVec0[32768];
70 	double fConst32;
71 	int iConst33;
72 	double fRec36[2];
73 	double fRec35[2];
74 	double fConst34;
75 	double fConst35;
76 	double fRec33[3];
77 	double fVec1[2];
78 	double fRec32[2];
79 	double fRec31[2];
80 	double fConst36;
81 	double fConst37;
82 	double fConst38;
83 	double fConst39;
84 	double fRec30[3];
85 	double fVec2[2];
86 	double fConst40;
87 	double fConst41;
88 	double fConst42;
89 	double fRec29[2];
90 	double fConst43;
91 	double fConst44;
92 	double fRec28[3];
93 	double fConst45;
94 	double fConst46;
95 	double fConst47;
96 	double fConst48;
97 	double fConst49;
98 	double fConst50;
99 	double fConst51;
100 	double fConst52;
101 	double fConst53;
102 	double fConst54;
103 	double fRec27[3];
104 	FAUSTFLOAT fVslider0;
105 	double fRec37[2];
106 	double fConst55;
107 	double fRec41[2];
108 	double fRec40[3];
109 	double fConst56;
110 	double fConst57;
111 	double fConst58;
112 	double fRec39[3];
113 	double fRec38[3];
114 	double fConst59;
115 	double fConst60;
116 	double fConst61;
117 	double fRec45[2];
118 	double fRec44[3];
119 	double fVec3[2];
120 	double fConst62;
121 	double fConst63;
122 	double fRec43[2];
123 	double fConst64;
124 	double fRec42[3];
125 	double fConst65;
126 	double fConst66;
127 	double fRec47[2];
128 	double fRec46[3];
129 	double fVec4[2];
130 	double fRec26[2];
131 	double fVec5[2];
132 	double fRec25[2];
133 	double fRec24[3];
134 	double fConst67;
135 	double fConst68;
136 	double fConst69;
137 	double fRec48[2];
138 	double fRec23[3];
139 	double fRec22[2];
140 	double fRec16[3];
141 	FAUSTFLOAT fVslider1;
142 	double fRec50[2];
143 	double fRec49[2];
144 	double fVec6[2];
145 	double fRec15[2];
146 	double fRec14[2];
147 	double fRec13[3];
148 	double fRec51[2];
149 	double fRec12[3];
150 	double fRec11[2];
151 	double fRec5[3];
152 	double fRec4[2];
153 	double fRec3[2];
154 	double fRec2[3];
155 	double fRec52[2];
156 	double fRec1[3];
157 	double fRec0[2];
158 	FAUSTFLOAT fVslider2;
159 	double fRec54[2];
160 	double fRec53[2];
161 
162  public:
163 
metadata(Meta * m)164 	void metadata(Meta* m) {
165 		m->declare("amp_dist.dsp/author", "Hermann Meyer");
166 		m->declare("amp_dist.dsp/copyright", "(C) Hermann Meyer 2008");
167 		m->declare("amp_dist.dsp/id", "amp_dist");
168 		m->declare("amp_dist.dsp/license", "BSD");
169 		m->declare("amp_dist.dsp/version", "0.01");
170 		m->declare("analyzers.lib/name", "Faust Analyzer Library");
171 		m->declare("analyzers.lib/version", "0.0");
172 		m->declare("basics.lib/name", "Faust Basic Element Library");
173 		m->declare("basics.lib/version", "0.1");
174 		m->declare("delays.lib/name", "Faust Delay Library");
175 		m->declare("delays.lib/version", "0.1");
176 		m->declare("filename", "6dj8_feed");
177 		m->declare("filters.lib/filterbank:author", "Julius O. Smith III");
178 		m->declare("filters.lib/filterbank:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
179 		m->declare("filters.lib/filterbank:license", "MIT-style STK-4.3 license");
180 		m->declare("filters.lib/fir:author", "Julius O. Smith III");
181 		m->declare("filters.lib/fir:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
182 		m->declare("filters.lib/fir:license", "MIT-style STK-4.3 license");
183 		m->declare("filters.lib/highpass:author", "Julius O. Smith III");
184 		m->declare("filters.lib/highpass:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
185 		m->declare("filters.lib/highpass_plus_lowpass:author", "Julius O. Smith III");
186 		m->declare("filters.lib/highpass_plus_lowpass:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
187 		m->declare("filters.lib/highpass_plus_lowpass:license", "MIT-style STK-4.3 license");
188 		m->declare("filters.lib/iir:author", "Julius O. Smith III");
189 		m->declare("filters.lib/iir:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
190 		m->declare("filters.lib/iir:license", "MIT-style STK-4.3 license");
191 		m->declare("filters.lib/lowpass0_highpass1", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
192 		m->declare("filters.lib/lowpass0_highpass1:author", "Julius O. Smith III");
193 		m->declare("filters.lib/lowpass:author", "Julius O. Smith III");
194 		m->declare("filters.lib/lowpass:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
195 		m->declare("filters.lib/lowpass:license", "MIT-style STK-4.3 license");
196 		m->declare("filters.lib/name", "Faust Filters Library");
197 		m->declare("filters.lib/tf1:author", "Julius O. Smith III");
198 		m->declare("filters.lib/tf1:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
199 		m->declare("filters.lib/tf1:license", "MIT-style STK-4.3 license");
200 		m->declare("filters.lib/tf1s:author", "Julius O. Smith III");
201 		m->declare("filters.lib/tf1s:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
202 		m->declare("filters.lib/tf1s:license", "MIT-style STK-4.3 license");
203 		m->declare("filters.lib/tf2:author", "Julius O. Smith III");
204 		m->declare("filters.lib/tf2:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
205 		m->declare("filters.lib/tf2:license", "MIT-style STK-4.3 license");
206 		m->declare("filters.lib/tf2s:author", "Julius O. Smith III");
207 		m->declare("filters.lib/tf2s:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
208 		m->declare("filters.lib/tf2s:license", "MIT-style STK-4.3 license");
209 		m->declare("id", "6DJ8 feedback");
210 		m->declare("maths.lib/author", "GRAME");
211 		m->declare("maths.lib/copyright", "GRAME");
212 		m->declare("maths.lib/license", "LGPL with exception");
213 		m->declare("maths.lib/name", "Faust Math Library");
214 		m->declare("maths.lib/version", "2.1");
215 		m->declare("misceffects.lib/name", "Faust Math Library");
216 		m->declare("misceffects.lib/version", "2.0");
217 		m->declare("name", "6DJ8 feedback");
218 		m->declare("samplerate", "96000");
219 		m->declare("signals.lib/name", "Faust Signal Routing Library");
220 		m->declare("signals.lib/version", "0.0");
221 	}
222 
getNumInputs()223 	virtual int getNumInputs() {
224 		return 1;
225 
226 	}
getNumOutputs()227 	virtual int getNumOutputs() {
228 		return 1;
229 
230 	}
getInputRate(int channel)231 	virtual int getInputRate(int channel) {
232 		int rate;
233 		switch (channel) {
234 			case 0: {
235 				rate = 1;
236 				break;
237 			}
238 			default: {
239 				rate = -1;
240 				break;
241 			}
242 
243 		}
244 		return rate;
245 
246 	}
getOutputRate(int channel)247 	virtual int getOutputRate(int channel) {
248 		int rate;
249 		switch (channel) {
250 			case 0: {
251 				rate = 1;
252 				break;
253 			}
254 			default: {
255 				rate = -1;
256 				break;
257 			}
258 
259 		}
260 		return rate;
261 
262 	}
263 
classInit(int samplingFreq)264 	static void classInit(int samplingFreq) {
265 
266 	}
267 
instanceConstants(int samplingFreq)268 	virtual void instanceConstants(int samplingFreq) {
269 		fSamplingFreq = samplingFreq;
270 		fConst0 = std::min<double>(192000.0, std::max<double>(1.0, double(fSamplingFreq)));
271 		fConst1 = std::tan((97.389372261283583 / fConst0));
272 		fConst2 = (1.0 / fConst1);
273 		fConst3 = (fConst2 + 1.0);
274 		fConst4 = (1.0 / (fConst3 * fConst1));
275 		fConst5 = (1.0 / std::tan((20517.741620594938 / fConst0)));
276 		fConst6 = (1.0 / (fConst5 + 1.0));
277 		fConst7 = (1.0 - fConst5);
278 		fConst8 = (1.0 / std::tan((609.46897479641984 / fConst0)));
279 		fConst9 = (1.0 / (fConst8 + 1.0));
280 		fConst10 = (1.0 - fConst8);
281 		fConst11 = (0.0 - fConst4);
282 		fConst12 = ((1.0 - fConst2) / fConst3);
283 		fConst13 = (1.0 / std::tan((414.69023027385271 / fConst0)));
284 		fConst14 = (1.0 / (fConst13 + 1.0));
285 		fConst15 = (1.0 - fConst13);
286 		fConst16 = std::tan((3769.9111843077517 / fConst0));
287 		fConst17 = (1.0 / fConst16);
288 		fConst18 = (1.0 / (((fConst17 + 1.0000000000000004) / fConst16) + 1.0));
289 		fConst19 = module_faustpower2_f(fConst16);
290 		fConst20 = (1.0 / fConst19);
291 		fConst21 = std::tan((10053.096491487338 / fConst0));
292 		fConst22 = (1.0 / fConst21);
293 		fConst23 = (1.0 / (((fConst22 + 1.0000000000000004) / fConst21) + 1.0));
294 		fConst24 = (fConst17 + 1.0);
295 		fConst25 = (1.0 / (fConst16 * fConst24));
296 		fConst26 = (fConst22 + 1.0);
297 		fConst27 = (1.0 / fConst26);
298 		fConst28 = (1.0 - fConst22);
299 		fConst29 = std::tan((47123.889803846898 / fConst0));
300 		fConst30 = (1.0 / fConst29);
301 		fConst31 = (1.0 / (((fConst30 + 1.4142135623730949) / fConst29) + 1.0));
302 		fConst32 = (0.009000000000000008 / fConst0);
303 		iConst33 = int(std::min<double>(65536.0, std::max<double>(0.0, (0.1111111111111111 * fConst0))));
304 		fConst34 = (((fConst30 + -1.4142135623730949) / fConst29) + 1.0);
305 		fConst35 = (2.0 * (1.0 - (1.0 / module_faustpower2_f(fConst29))));
306 		fConst36 = (((fConst22 + -1.0000000000000004) / fConst21) + 1.0);
307 		fConst37 = module_faustpower2_f(fConst21);
308 		fConst38 = (1.0 / fConst37);
309 		fConst39 = (2.0 * (1.0 - fConst38));
310 		fConst40 = (0.0 - fConst25);
311 		fConst41 = (1.0 - fConst17);
312 		fConst42 = (fConst41 / fConst24);
313 		fConst43 = (((fConst17 + -1.0000000000000004) / fConst16) + 1.0);
314 		fConst44 = (2.0 * (1.0 - fConst20));
315 		fConst45 = (0.0 - (2.0 / fConst19));
316 		fConst46 = std::tan((942.47779607693792 / fConst0));
317 		fConst47 = (1.0 / fConst46);
318 		fConst48 = (fConst47 + 1.0);
319 		fConst49 = (1.0 / ((fConst48 / fConst46) + 1.0));
320 		fConst50 = (1.0 - fConst47);
321 		fConst51 = (1.0 - (fConst50 / fConst46));
322 		fConst52 = module_faustpower2_f(fConst46);
323 		fConst53 = (1.0 / fConst52);
324 		fConst54 = (2.0 * (1.0 - fConst53));
325 		fConst55 = (0.0 - (1.0 / (fConst26 * fConst21)));
326 		fConst56 = (0.0 - (2.0 / fConst37));
327 		fConst57 = (1.0 / ((fConst24 / fConst16) + 1.0));
328 		fConst58 = (1.0 - (fConst41 / fConst16));
329 		fConst59 = (1.0 / (((fConst47 + 1.0000000000000004) / fConst46) + 1.0));
330 		fConst60 = (1.0 / (fConst46 * fConst48));
331 		fConst61 = (1.0 / fConst24);
332 		fConst62 = (0.0 - fConst60);
333 		fConst63 = (fConst50 / fConst48);
334 		fConst64 = (((fConst47 + -1.0000000000000004) / fConst46) + 1.0);
335 		fConst65 = (0.0 - (2.0 / fConst52));
336 		fConst66 = (1.0 / fConst48);
337 		fConst67 = (1.0 / std::tan((270.1769682087222 / fConst0)));
338 		fConst68 = (1.0 / (fConst67 + 1.0));
339 		fConst69 = (1.0 - fConst67);
340 
341 	}
342 
instanceResetUserInterface()343 	virtual void instanceResetUserInterface() {
344 		fVslider0 = FAUSTFLOAT(0.5);
345 		fVslider1 = FAUSTFLOAT(1.0);
346 		fVslider2 = FAUSTFLOAT(1.0);
347 
348 	}
349 
instanceClear()350 	virtual void instanceClear() {
351 		for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) {
352 			fRec9[l0] = 0.0;
353 
354 		}
355 		for (int l1 = 0; (l1 < 3); l1 = (l1 + 1)) {
356 			fRec8[l1] = 0.0;
357 
358 		}
359 		for (int l2 = 0; (l2 < 2); l2 = (l2 + 1)) {
360 			fRec10[l2] = 0.0;
361 
362 		}
363 		for (int l3 = 0; (l3 < 3); l3 = (l3 + 1)) {
364 			fRec7[l3] = 0.0;
365 
366 		}
367 		for (int l4 = 0; (l4 < 2); l4 = (l4 + 1)) {
368 			fRec6[l4] = 0.0;
369 
370 		}
371 		for (int l5 = 0; (l5 < 2); l5 = (l5 + 1)) {
372 			fRec20[l5] = 0.0;
373 
374 		}
375 		for (int l6 = 0; (l6 < 3); l6 = (l6 + 1)) {
376 			fRec19[l6] = 0.0;
377 
378 		}
379 		for (int l7 = 0; (l7 < 2); l7 = (l7 + 1)) {
380 			fRec21[l7] = 0.0;
381 
382 		}
383 		for (int l8 = 0; (l8 < 3); l8 = (l8 + 1)) {
384 			fRec18[l8] = 0.0;
385 
386 		}
387 		for (int l9 = 0; (l9 < 2); l9 = (l9 + 1)) {
388 			fRec17[l9] = 0.0;
389 
390 		}
391 		for (int l10 = 0; (l10 < 2); l10 = (l10 + 1)) {
392 			fRec34[l10] = 0.0;
393 
394 		}
395 		IOTA = 0;
396 		for (int l11 = 0; (l11 < 32768); l11 = (l11 + 1)) {
397 			fVec0[l11] = 0.0;
398 
399 		}
400 		for (int l12 = 0; (l12 < 2); l12 = (l12 + 1)) {
401 			fRec36[l12] = 0.0;
402 
403 		}
404 		for (int l13 = 0; (l13 < 2); l13 = (l13 + 1)) {
405 			fRec35[l13] = 0.0;
406 
407 		}
408 		for (int l14 = 0; (l14 < 3); l14 = (l14 + 1)) {
409 			fRec33[l14] = 0.0;
410 
411 		}
412 		for (int l15 = 0; (l15 < 2); l15 = (l15 + 1)) {
413 			fVec1[l15] = 0.0;
414 
415 		}
416 		for (int l16 = 0; (l16 < 2); l16 = (l16 + 1)) {
417 			fRec32[l16] = 0.0;
418 
419 		}
420 		for (int l17 = 0; (l17 < 2); l17 = (l17 + 1)) {
421 			fRec31[l17] = 0.0;
422 
423 		}
424 		for (int l18 = 0; (l18 < 3); l18 = (l18 + 1)) {
425 			fRec30[l18] = 0.0;
426 
427 		}
428 		for (int l19 = 0; (l19 < 2); l19 = (l19 + 1)) {
429 			fVec2[l19] = 0.0;
430 
431 		}
432 		for (int l20 = 0; (l20 < 2); l20 = (l20 + 1)) {
433 			fRec29[l20] = 0.0;
434 
435 		}
436 		for (int l21 = 0; (l21 < 3); l21 = (l21 + 1)) {
437 			fRec28[l21] = 0.0;
438 
439 		}
440 		for (int l22 = 0; (l22 < 3); l22 = (l22 + 1)) {
441 			fRec27[l22] = 0.0;
442 
443 		}
444 		for (int l23 = 0; (l23 < 2); l23 = (l23 + 1)) {
445 			fRec37[l23] = 0.0;
446 
447 		}
448 		for (int l24 = 0; (l24 < 2); l24 = (l24 + 1)) {
449 			fRec41[l24] = 0.0;
450 
451 		}
452 		for (int l25 = 0; (l25 < 3); l25 = (l25 + 1)) {
453 			fRec40[l25] = 0.0;
454 
455 		}
456 		for (int l26 = 0; (l26 < 3); l26 = (l26 + 1)) {
457 			fRec39[l26] = 0.0;
458 
459 		}
460 		for (int l27 = 0; (l27 < 3); l27 = (l27 + 1)) {
461 			fRec38[l27] = 0.0;
462 
463 		}
464 		for (int l28 = 0; (l28 < 2); l28 = (l28 + 1)) {
465 			fRec45[l28] = 0.0;
466 
467 		}
468 		for (int l29 = 0; (l29 < 3); l29 = (l29 + 1)) {
469 			fRec44[l29] = 0.0;
470 
471 		}
472 		for (int l30 = 0; (l30 < 2); l30 = (l30 + 1)) {
473 			fVec3[l30] = 0.0;
474 
475 		}
476 		for (int l31 = 0; (l31 < 2); l31 = (l31 + 1)) {
477 			fRec43[l31] = 0.0;
478 
479 		}
480 		for (int l32 = 0; (l32 < 3); l32 = (l32 + 1)) {
481 			fRec42[l32] = 0.0;
482 
483 		}
484 		for (int l33 = 0; (l33 < 2); l33 = (l33 + 1)) {
485 			fRec47[l33] = 0.0;
486 
487 		}
488 		for (int l34 = 0; (l34 < 3); l34 = (l34 + 1)) {
489 			fRec46[l34] = 0.0;
490 
491 		}
492 		for (int l35 = 0; (l35 < 2); l35 = (l35 + 1)) {
493 			fVec4[l35] = 0.0;
494 
495 		}
496 		for (int l36 = 0; (l36 < 2); l36 = (l36 + 1)) {
497 			fRec26[l36] = 0.0;
498 
499 		}
500 		for (int l37 = 0; (l37 < 2); l37 = (l37 + 1)) {
501 			fVec5[l37] = 0.0;
502 
503 		}
504 		for (int l38 = 0; (l38 < 2); l38 = (l38 + 1)) {
505 			fRec25[l38] = 0.0;
506 
507 		}
508 		for (int l39 = 0; (l39 < 3); l39 = (l39 + 1)) {
509 			fRec24[l39] = 0.0;
510 
511 		}
512 		for (int l40 = 0; (l40 < 2); l40 = (l40 + 1)) {
513 			fRec48[l40] = 0.0;
514 
515 		}
516 		for (int l41 = 0; (l41 < 3); l41 = (l41 + 1)) {
517 			fRec23[l41] = 0.0;
518 
519 		}
520 		for (int l42 = 0; (l42 < 2); l42 = (l42 + 1)) {
521 			fRec22[l42] = 0.0;
522 
523 		}
524 		for (int l43 = 0; (l43 < 3); l43 = (l43 + 1)) {
525 			fRec16[l43] = 0.0;
526 
527 		}
528 		for (int l44 = 0; (l44 < 2); l44 = (l44 + 1)) {
529 			fRec50[l44] = 0.0;
530 
531 		}
532 		for (int l45 = 0; (l45 < 2); l45 = (l45 + 1)) {
533 			fRec49[l45] = 0.0;
534 
535 		}
536 		for (int l46 = 0; (l46 < 2); l46 = (l46 + 1)) {
537 			fVec6[l46] = 0.0;
538 
539 		}
540 		for (int l47 = 0; (l47 < 2); l47 = (l47 + 1)) {
541 			fRec15[l47] = 0.0;
542 
543 		}
544 		for (int l48 = 0; (l48 < 2); l48 = (l48 + 1)) {
545 			fRec14[l48] = 0.0;
546 
547 		}
548 		for (int l49 = 0; (l49 < 3); l49 = (l49 + 1)) {
549 			fRec13[l49] = 0.0;
550 
551 		}
552 		for (int l50 = 0; (l50 < 2); l50 = (l50 + 1)) {
553 			fRec51[l50] = 0.0;
554 
555 		}
556 		for (int l51 = 0; (l51 < 3); l51 = (l51 + 1)) {
557 			fRec12[l51] = 0.0;
558 
559 		}
560 		for (int l52 = 0; (l52 < 2); l52 = (l52 + 1)) {
561 			fRec11[l52] = 0.0;
562 
563 		}
564 		for (int l53 = 0; (l53 < 3); l53 = (l53 + 1)) {
565 			fRec5[l53] = 0.0;
566 
567 		}
568 		for (int l54 = 0; (l54 < 2); l54 = (l54 + 1)) {
569 			fRec4[l54] = 0.0;
570 
571 		}
572 		for (int l55 = 0; (l55 < 2); l55 = (l55 + 1)) {
573 			fRec3[l55] = 0.0;
574 
575 		}
576 		for (int l56 = 0; (l56 < 3); l56 = (l56 + 1)) {
577 			fRec2[l56] = 0.0;
578 
579 		}
580 		for (int l57 = 0; (l57 < 2); l57 = (l57 + 1)) {
581 			fRec52[l57] = 0.0;
582 
583 		}
584 		for (int l58 = 0; (l58 < 3); l58 = (l58 + 1)) {
585 			fRec1[l58] = 0.0;
586 
587 		}
588 		for (int l59 = 0; (l59 < 2); l59 = (l59 + 1)) {
589 			fRec0[l59] = 0.0;
590 
591 		}
592 		for (int l60 = 0; (l60 < 2); l60 = (l60 + 1)) {
593 			fRec54[l60] = 0.0;
594 
595 		}
596 		for (int l61 = 0; (l61 < 2); l61 = (l61 + 1)) {
597 			fRec53[l61] = 0.0;
598 
599 		}
600 
601 	}
602 
init(int samplingFreq)603 	virtual void init(int samplingFreq) {
604 		classInit(samplingFreq);
605 		instanceInit(samplingFreq);
606 	}
607 
instanceInit(int samplingFreq)608 	virtual void instanceInit(int samplingFreq) {
609 		instanceConstants(samplingFreq);
610 		instanceResetUserInterface();
611 		instanceClear();
612 	}
613 
clone()614 	virtual module* clone() {
615 		return new module();
616 	}
617 
getSampleRate()618 	virtual int getSampleRate() {
619 		return fSamplingFreq;
620 
621 	}
622 
buildUserInterface(UI * ui_interface)623 	virtual void buildUserInterface(UI* ui_interface) {
624 		ui_interface->openVerticalBox("6DJ8 feedback");
625 		ui_interface->addVerticalSlider(".amp.gain", &fVslider0, 0.5, 0.0, 1.0, 0.01);
626 		ui_interface->addVerticalSlider(".amp.postgain", &fVslider2, 1.0, 0.00398, 251.18861000000001, 0.0001);
627 		ui_interface->addVerticalSlider(".amp.pregain", &fVslider1, 1.0, 0.00398, 251.18861000000001, 0.0001);
628 		ui_interface->closeBox();
629 
630 	}
631 
compute(int count,FAUSTFLOAT ** inputs,FAUSTFLOAT ** outputs)632 	virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) {
633 		FAUSTFLOAT* input0 = inputs[0];
634 		FAUSTFLOAT* output0 = outputs[0];
635 		double fSlow0 = (0.0010000000000000009 * double(fVslider0));
636 		double fSlow1 = (0.0010000000000000009 * double(fVslider1));
637 		double fSlow2 = (0.0010000000000000009 * double(fVslider2));
638 		for (int i = 0; (i < count); i = (i + 1)) {
639 			fRec9[0] = ((0.93028479253239138 * (fRec5[1] + fRec5[2])) - (0.86056958506478287 * fRec9[1]));
640 			fRec8[0] = (fRec9[0] - ((1.8405051250752198 * fRec8[1]) + (0.86129424393186271 * fRec8[2])));
641 			fRec10[0] = (fConst9 * ((0.0082000000000000007 * (fRec7[1] + fRec7[2])) - (fConst10 * fRec10[1])));
642 			fRec7[0] = (double(Ftube(int(TUBE_TABLE_6DJ8_250k), double((((0.92544984225177063 * (fRec8[0] + fRec8[2])) + (fRec10[0] + (1.8508996845035413 * fRec8[1]))) + -0.79704299999999995)))) + -32.799634146341475);
643 			fRec6[0] = ((0.050000000000000003 * ((fConst4 * fRec7[0]) + (fConst11 * fRec7[1]))) - (fConst12 * fRec6[1]));
644 			fRec20[0] = ((0.93028479253239138 * (fRec16[1] + fRec16[2])) - (0.86056958506478287 * fRec20[1]));
645 			fRec19[0] = (fRec20[0] - ((1.8405051250752198 * fRec19[1]) + (0.86129424393186271 * fRec19[2])));
646 			fRec21[0] = (fConst14 * ((0.014999999999999999 * (fRec18[1] + fRec18[2])) - (fConst15 * fRec21[1])));
647 			fRec18[0] = (double(Ftube(int(TUBE_TABLE_6DJ8_250k), double((((0.92544984225177063 * (fRec19[0] + fRec19[2])) + (fRec21[0] + (1.8508996845035413 * fRec19[1]))) + -1.271609)))) + -45.226066666666668);
648 			fRec17[0] = ((0.050000000000000003 * ((fConst4 * fRec18[0]) + (fConst11 * fRec18[1]))) - (fConst12 * fRec17[1]));
649 			double fTemp0 = double(input0[i]);
650 			double fTemp1 = std::fabs(fTemp0);
651 			fRec34[0] = ((0.99990000000000001 * fRec34[1]) + (9.9999999999988987e-05 * fTemp1));
652 			double fTemp2 = std::max<double>(fRec34[0], fTemp1);
653 			fVec0[(IOTA & 32767)] = fTemp2;
654 			fRec36[0] = ((fTemp2 + fRec36[1]) - fVec0[((IOTA - iConst33) & 32767)]);
655 			fRec35[0] = ((0.999 * fRec35[1]) + (fConst32 * fRec36[0]));
656 			double fTemp3 = std::max<double>(-1.0, std::min<double>(-0.01, (fTemp2 + (-1.0 - (1.02 * fRec35[0])))));
657 			double fTemp4 = (fTemp0 - fTemp3);
658 			double fTemp5 = (40.100000000000001 * fTemp4);
659 			double fTemp6 = std::max<double>(-600.0, fTemp5);
660 			double fTemp7 = (0.0 - (40.100000000000001 * fTemp3));
661 			double fTemp8 = std::max<double>(-600.0, fTemp7);
662 			double fTemp9 = (((std::fabs(fTemp5) > 0.0001)?((fTemp6 < -50.0)?(0.0 - (fTemp6 * std::exp(fTemp6))):(fTemp6 / (1.0 - std::exp((-1.0 * fTemp6))))):((fTemp4 * ((134.00083333333336 * fTemp4) + 20.050000000000001)) + 1.0)) - ((std::fabs(fTemp7) > 0.0001)?((fTemp8 < -50.0)?(0.0 - (fTemp8 * std::exp(fTemp8))):(fTemp8 / (1.0 - std::exp((-1.0 * fTemp8))))):((fTemp7 * ((0.083333333333333329 * fTemp7) + 0.5)) + 1.0)));
663 			double fTemp10 = (0.024937655860349125 * fTemp9);
664 			fRec33[0] = (fTemp10 - (fConst31 * ((fConst34 * fRec33[2]) + (fConst35 * fRec33[1]))));
665 			double fTemp11 = (fRec33[2] + (fRec33[0] + (2.0 * fRec33[1])));
666 			fVec1[0] = fTemp11;
667 			fRec32[0] = ((fConst31 * ((fConst4 * fTemp11) + (fConst11 * fVec1[1]))) - (fConst12 * fRec32[1]));
668 			fRec31[0] = (0.0 - (fConst27 * ((fConst28 * fRec31[1]) - (fRec32[0] + fRec32[1]))));
669 			fRec30[0] = (fRec31[0] - (fConst23 * ((fConst36 * fRec30[2]) + (fConst39 * fRec30[1]))));
670 			double fTemp12 = (fRec30[2] + (fRec30[0] + (2.0 * fRec30[1])));
671 			fVec2[0] = fTemp12;
672 			fRec29[0] = ((fConst23 * ((fConst25 * fTemp12) + (fConst40 * fVec2[1]))) - (fConst42 * fRec29[1]));
673 			fRec28[0] = (fRec29[0] - (fConst18 * ((fConst43 * fRec28[2]) + (fConst44 * fRec28[1]))));
674 			double fTemp13 = (fConst54 * fRec27[1]);
675 			fRec27[0] = ((fConst18 * (((fConst20 * fRec28[0]) + (fConst45 * fRec28[1])) + (fConst20 * fRec28[2]))) - (fConst49 * ((fConst51 * fRec27[2]) + fTemp13)));
676 			fRec37[0] = (fSlow0 + (0.999 * fRec37[1]));
677 			double fTemp14 = std::max<double>(-1.0, std::min<double>(1.0, ((fRec27[2] + (fConst49 * (fTemp13 + (fConst51 * fRec27[0])))) * std::pow(10.0, (1.2 * fRec37[0])))));
678 			fRec41[0] = ((fConst55 * fRec32[1]) - (fConst27 * ((fConst28 * fRec41[1]) - (fConst22 * fRec32[0]))));
679 			fRec40[0] = (fRec41[0] - (fConst23 * ((fConst36 * fRec40[2]) + (fConst39 * fRec40[1]))));
680 			double fTemp15 = (fConst44 * fRec39[1]);
681 			fRec39[0] = ((fConst23 * (((fConst38 * fRec40[0]) + (fConst56 * fRec40[1])) + (fConst38 * fRec40[2]))) - (fConst57 * ((fConst58 * fRec39[2]) + fTemp15)));
682 			double fTemp16 = (fConst54 * fRec38[1]);
683 			fRec38[0] = ((fRec39[2] + (fConst57 * (fTemp15 + (fConst58 * fRec39[0])))) - (fConst49 * ((fConst51 * fRec38[2]) + fTemp16)));
684 			double fTemp17 = std::max<double>(-1.0, std::min<double>(1.0, ((fRec38[2] + (fConst49 * (fTemp16 + (fConst51 * fRec38[0])))) * std::pow(10.0, (0.80000000000000004 * fRec37[0])))));
685 			double fTemp18 = std::pow(10.0, (2.0 * fRec37[0]));
686 			fRec45[0] = (0.0 - (fConst61 * ((fConst41 * fRec45[1]) - (fConst23 * (fTemp12 + fVec2[1])))));
687 			fRec44[0] = (fRec45[0] - (fConst18 * ((fConst43 * fRec44[2]) + (fConst44 * fRec44[1]))));
688 			double fTemp19 = (fRec44[2] + (fRec44[0] + (2.0 * fRec44[1])));
689 			fVec3[0] = fTemp19;
690 			fRec43[0] = ((fConst18 * ((fConst60 * fTemp19) + (fConst62 * fVec3[1]))) - (fConst63 * fRec43[1]));
691 			fRec42[0] = (fRec43[0] - (fConst59 * ((fConst64 * fRec42[2]) + (fConst54 * fRec42[1]))));
692 			double fTemp20 = std::max<double>(-1.0, std::min<double>(1.0, (fConst59 * (fTemp18 * (((fConst53 * fRec42[0]) + (fConst65 * fRec42[1])) + (fConst53 * fRec42[2]))))));
693 			fRec47[0] = (0.0 - (fConst66 * ((fConst50 * fRec47[1]) - (fConst18 * (fTemp19 + fVec3[1])))));
694 			fRec46[0] = (fRec47[0] - (fConst59 * ((fConst64 * fRec46[2]) + (fConst54 * fRec46[1]))));
695 			double fTemp21 = std::max<double>(-1.0, std::min<double>(1.0, (fConst59 * ((fRec46[2] + (fRec46[0] + (2.0 * fRec46[1]))) * std::pow(10.0, (0.90000000000000002 * fRec37[0]))))));
696 			double fTemp22 = (((1.333521432 * (fTemp14 * (1.0 - (0.33333333333333331 * module_faustpower2_f(fTemp14))))) + (1.584893192 * ((fTemp17 * (1.0 - (0.33333333333333331 * module_faustpower2_f(fTemp17)))) + (fTemp20 * (1.0 - (0.33333333333333331 * module_faustpower2_f(fTemp20))))))) + (1.2589412 * (fTemp21 * (1.0 - (0.33333333333333331 * module_faustpower2_f(fTemp21))))));
697 			fVec4[0] = fTemp22;
698 			fRec26[0] = (0.0 - (fConst6 * ((fConst7 * fRec26[1]) - (fTemp22 + fVec4[1]))));
699 			double fTemp23 = (2.0 * (fRec37[0] + -0.5));
700 			double fTemp24 = std::max<double>(-1.0, std::min<double>(1.0, (fTemp18 * std::max<double>(-0.69999999999999996, std::min<double>(0.69999999999999996, fTemp10)))));
701 			double fTemp25 = ((fRec26[0] * (1.0 - std::max<double>(0.0, (-1.0 * fTemp23)))) + ((0.5 * (fTemp24 * (1.0 - (0.33333333333333331 * module_faustpower2_f(fTemp24))))) + (0.024937655860349125 * (fTemp9 * (1.0 - std::max<double>(0.0, fTemp23))))));
702 			fVec5[0] = fTemp25;
703 			fRec25[0] = ((0.93028479253239138 * (fTemp25 + fVec5[1])) - (0.86056958506478287 * fRec25[1]));
704 			fRec24[0] = (fRec25[0] - ((1.8405051250752198 * fRec24[1]) + (0.86129424393186271 * fRec24[2])));
705 			fRec48[0] = (fConst68 * ((0.027 * (fRec23[1] + fRec23[2])) - (fConst69 * fRec48[1])));
706 			fRec23[0] = (double(Ftube(int(TUBE_TABLE_6DJ8_68k), double((((0.92544984225177063 * (fRec24[0] + fRec24[2])) + (fRec48[0] + (1.8508996845035413 * fRec24[1]))) + -1.8639460000000001)))) + -60.964962962962957);
707 			fRec22[0] = ((0.050000000000000003 * ((fConst4 * fRec23[0]) + (fConst11 * fRec23[1]))) - (fConst12 * fRec22[1]));
708 			fRec16[0] = ((0.59999999999999998 * fRec17[0]) - fRec22[0]);
709 			fRec50[0] = (fSlow1 + (0.999 * fRec50[1]));
710 			fRec49[0] = ((0.999 * fRec49[1]) + (0.0010000000000000009 * fRec50[0]));
711 			double fTemp26 = (fRec16[0] * fRec49[0]);
712 			fVec6[0] = fTemp26;
713 			fRec15[0] = (0.0 - (fConst6 * ((fConst7 * fRec15[1]) - (fTemp26 + fVec6[1]))));
714 			fRec14[0] = ((0.93028479253239138 * (fRec15[0] + fRec15[1])) - (0.86056958506478287 * fRec14[1]));
715 			fRec13[0] = (fRec14[0] - ((1.8405051250752198 * fRec13[1]) + (0.86129424393186271 * fRec13[2])));
716 			fRec51[0] = (fConst14 * ((0.014999999999999999 * (fRec12[1] + fRec12[2])) - (fConst15 * fRec51[1])));
717 			fRec12[0] = (double(Ftube(int(TUBE_TABLE_6DJ8_250k), double((((0.92544984225177063 * (fRec13[0] + fRec13[2])) + (fRec51[0] + (1.8508996845035413 * fRec13[1]))) + -1.271609)))) + -45.226066666666668);
718 			fRec11[0] = ((0.050000000000000003 * ((fConst4 * fRec12[0]) + (fConst11 * fRec12[1]))) - (fConst12 * fRec11[1]));
719 			fRec5[0] = ((0.59999999999999998 * fRec6[0]) + fRec11[0]);
720 			fRec4[0] = (0.0 - (fConst6 * ((fConst7 * fRec4[1]) - (fRec5[0] + fRec5[1]))));
721 			fRec3[0] = ((0.93028479253239138 * (fRec4[0] + fRec4[1])) - (0.86056958506478287 * fRec3[1]));
722 			fRec2[0] = (fRec3[0] - ((1.8405051250752198 * fRec2[1]) + (0.86129424393186271 * fRec2[2])));
723 			fRec52[0] = (fConst9 * ((0.0082000000000000007 * (fRec1[1] + fRec1[2])) - (fConst10 * fRec52[1])));
724 			fRec1[0] = (double(Ftube(int(TUBE_TABLE_6DJ8_250k), double((((0.92544984225177063 * (fRec2[0] + fRec2[2])) + (fRec52[0] + (1.8508996845035413 * fRec2[1]))) + -0.79704299999999995)))) + -32.799634146341475);
725 			fRec0[0] = ((0.050000000000000003 * ((fConst4 * fRec1[0]) + (fConst11 * fRec1[1]))) - (fConst12 * fRec0[1]));
726 			fRec54[0] = (fSlow2 + (0.999 * fRec54[1]));
727 			fRec53[0] = ((0.999 * fRec53[1]) + (6.3100000000000057e-05 * fRec54[0]));
728 			output0[i] = FAUSTFLOAT((fRec0[0] * fRec53[0]));
729 			fRec9[1] = fRec9[0];
730 			fRec8[2] = fRec8[1];
731 			fRec8[1] = fRec8[0];
732 			fRec10[1] = fRec10[0];
733 			fRec7[2] = fRec7[1];
734 			fRec7[1] = fRec7[0];
735 			fRec6[1] = fRec6[0];
736 			fRec20[1] = fRec20[0];
737 			fRec19[2] = fRec19[1];
738 			fRec19[1] = fRec19[0];
739 			fRec21[1] = fRec21[0];
740 			fRec18[2] = fRec18[1];
741 			fRec18[1] = fRec18[0];
742 			fRec17[1] = fRec17[0];
743 			fRec34[1] = fRec34[0];
744 			IOTA = (IOTA + 1);
745 			fRec36[1] = fRec36[0];
746 			fRec35[1] = fRec35[0];
747 			fRec33[2] = fRec33[1];
748 			fRec33[1] = fRec33[0];
749 			fVec1[1] = fVec1[0];
750 			fRec32[1] = fRec32[0];
751 			fRec31[1] = fRec31[0];
752 			fRec30[2] = fRec30[1];
753 			fRec30[1] = fRec30[0];
754 			fVec2[1] = fVec2[0];
755 			fRec29[1] = fRec29[0];
756 			fRec28[2] = fRec28[1];
757 			fRec28[1] = fRec28[0];
758 			fRec27[2] = fRec27[1];
759 			fRec27[1] = fRec27[0];
760 			fRec37[1] = fRec37[0];
761 			fRec41[1] = fRec41[0];
762 			fRec40[2] = fRec40[1];
763 			fRec40[1] = fRec40[0];
764 			fRec39[2] = fRec39[1];
765 			fRec39[1] = fRec39[0];
766 			fRec38[2] = fRec38[1];
767 			fRec38[1] = fRec38[0];
768 			fRec45[1] = fRec45[0];
769 			fRec44[2] = fRec44[1];
770 			fRec44[1] = fRec44[0];
771 			fVec3[1] = fVec3[0];
772 			fRec43[1] = fRec43[0];
773 			fRec42[2] = fRec42[1];
774 			fRec42[1] = fRec42[0];
775 			fRec47[1] = fRec47[0];
776 			fRec46[2] = fRec46[1];
777 			fRec46[1] = fRec46[0];
778 			fVec4[1] = fVec4[0];
779 			fRec26[1] = fRec26[0];
780 			fVec5[1] = fVec5[0];
781 			fRec25[1] = fRec25[0];
782 			fRec24[2] = fRec24[1];
783 			fRec24[1] = fRec24[0];
784 			fRec48[1] = fRec48[0];
785 			fRec23[2] = fRec23[1];
786 			fRec23[1] = fRec23[0];
787 			fRec22[1] = fRec22[0];
788 			fRec16[2] = fRec16[1];
789 			fRec16[1] = fRec16[0];
790 			fRec50[1] = fRec50[0];
791 			fRec49[1] = fRec49[0];
792 			fVec6[1] = fVec6[0];
793 			fRec15[1] = fRec15[0];
794 			fRec14[1] = fRec14[0];
795 			fRec13[2] = fRec13[1];
796 			fRec13[1] = fRec13[0];
797 			fRec51[1] = fRec51[0];
798 			fRec12[2] = fRec12[1];
799 			fRec12[1] = fRec12[0];
800 			fRec11[1] = fRec11[0];
801 			fRec5[2] = fRec5[1];
802 			fRec5[1] = fRec5[0];
803 			fRec4[1] = fRec4[0];
804 			fRec3[1] = fRec3[0];
805 			fRec2[2] = fRec2[1];
806 			fRec2[1] = fRec2[0];
807 			fRec52[1] = fRec52[0];
808 			fRec1[2] = fRec1[1];
809 			fRec1[1] = fRec1[0];
810 			fRec0[1] = fRec0[0];
811 			fRec54[1] = fRec54[0];
812 			fRec53[1] = fRec53[0];
813 
814 		}
815 
816 	}
817 
818 };
819 
820 
instantiate()821 dsp *instantiate()
822 {
823     return new module();
824 }
825 } /* namespace gxsim_6dj8_feed */
826 
827