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