1 // generated from file '../src/LV2/faust/susta.dsp' by dsp2cc:
2 // Code generated with Faust (https://faust.grame.fr)
3
4 #include "trany.h"
5
6 namespace susta {
7
8 class Dsp: public PluginLV2 {
9 private:
10 uint32_t fSampleRate;
11 double fConst0;
12 double fConst2;
13 double fConst3;
14 double fConst4;
15 FAUSTFLOAT fVslider0;
16 FAUSTFLOAT *fVslider0_;
17 double fRec13[2];
18 double fConst6;
19 FAUSTFLOAT fVslider1;
20 FAUSTFLOAT *fVslider1_;
21 double fRec14[2];
22 double fConst8;
23 double fConst10;
24 double fConst12;
25 double fConst14;
26 double fConst16;
27 double fConst18;
28 double fConst20;
29 double fConst22;
30 double fConst24;
31 double fConst26;
32 double fConst28;
33 double fConst29;
34 double fConst30;
35 double fConst31;
36 double fConst32;
37 double fConst33;
38 double fConst34;
39 double fConst35;
40 double fConst36;
41 double fConst37;
42 double fConst38;
43 double fConst39;
44 double fConst40;
45 double fConst42;
46 double fConst44;
47 double fConst46;
48 double fConst48;
49 double fConst50;
50 double fConst52;
51 double fConst53;
52 double fConst54;
53 double fConst55;
54 double fConst56;
55 double fConst57;
56 double fConst58;
57 double fRec12[6];
58 double fConst60;
59 double fConst62;
60 double fConst64;
61 double fConst66;
62 double fConst68;
63 double fConst70;
64 double fConst72;
65 double fConst74;
66 double fConst76;
67 double fConst78;
68 double fConst80;
69 double fConst82;
70 double fConst83;
71 double fConst84;
72 double fConst85;
73 double fConst86;
74 double fConst87;
75 double fConst88;
76 double fConst89;
77 double fConst90;
78 double fConst91;
79 double fConst92;
80 double fConst93;
81 double fConst94;
82 double fVec0[2];
83 double fRec11[2];
84 double fRec10[3];
85 double fRec9[2];
86 double fRec8[2];
87 double fRec7[2];
88 double fRec6[3];
89 double fRec5[2];
90 double fRec4[2];
91 double fRec3[2];
92 double fRec2[3];
93 double fRec1[2];
94 double fRec0[2];
95
96 void connect(uint32_t port,void* data);
97 void clear_state_f();
98 void init(uint32_t sample_rate);
99 void compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0);
100
101 static void clear_state_f_static(PluginLV2*);
102 static void init_static(uint32_t sample_rate, PluginLV2*);
103 static void compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginLV2*);
104 static void del_instance(PluginLV2 *p);
105 static void connect_static(uint32_t port,void* data, PluginLV2 *p);
106 public:
107 Dsp();
108 ~Dsp();
109 };
110
111
112
Dsp()113 Dsp::Dsp()
114 : PluginLV2() {
115 version = PLUGINLV2_VERSION;
116 id = "susta";
117 name = N_("Sustainer");
118 mono_audio = compute_static;
119 stereo_audio = 0;
120 set_samplerate = init_static;
121 activate_plugin = 0;
122 connect_ports = connect_static;
123 clear_state = clear_state_f_static;
124 delete_instance = del_instance;
125 }
126
~Dsp()127 Dsp::~Dsp() {
128 }
129
clear_state_f()130 inline void Dsp::clear_state_f()
131 {
132 for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) fRec13[l0] = 0.0;
133 for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) fRec14[l1] = 0.0;
134 for (int l2 = 0; (l2 < 6); l2 = (l2 + 1)) fRec12[l2] = 0.0;
135 for (int l3 = 0; (l3 < 2); l3 = (l3 + 1)) fVec0[l3] = 0.0;
136 for (int l4 = 0; (l4 < 2); l4 = (l4 + 1)) fRec11[l4] = 0.0;
137 for (int l5 = 0; (l5 < 3); l5 = (l5 + 1)) fRec10[l5] = 0.0;
138 for (int l6 = 0; (l6 < 2); l6 = (l6 + 1)) fRec9[l6] = 0.0;
139 for (int l7 = 0; (l7 < 2); l7 = (l7 + 1)) fRec8[l7] = 0.0;
140 for (int l8 = 0; (l8 < 2); l8 = (l8 + 1)) fRec7[l8] = 0.0;
141 for (int l9 = 0; (l9 < 3); l9 = (l9 + 1)) fRec6[l9] = 0.0;
142 for (int l10 = 0; (l10 < 2); l10 = (l10 + 1)) fRec5[l10] = 0.0;
143 for (int l11 = 0; (l11 < 2); l11 = (l11 + 1)) fRec4[l11] = 0.0;
144 for (int l12 = 0; (l12 < 2); l12 = (l12 + 1)) fRec3[l12] = 0.0;
145 for (int l13 = 0; (l13 < 3); l13 = (l13 + 1)) fRec2[l13] = 0.0;
146 for (int l14 = 0; (l14 < 2); l14 = (l14 + 1)) fRec1[l14] = 0.0;
147 for (int l15 = 0; (l15 < 2); l15 = (l15 + 1)) fRec0[l15] = 0.0;
148 }
149
clear_state_f_static(PluginLV2 * p)150 void Dsp::clear_state_f_static(PluginLV2 *p)
151 {
152 static_cast<Dsp*>(p)->clear_state_f();
153 }
154
init(uint32_t sample_rate)155 inline void Dsp::init(uint32_t sample_rate)
156 {
157 fSampleRate = sample_rate;
158 fConst0 = std::min<double>(192000.0, std::max<double>(1.0, double(fSampleRate)));
159 double fConst1 = (3.1415926535897931 / fConst0);
160 fConst2 = (1.0 / (fConst1 + 1.0));
161 fConst3 = (1.0 - fConst1);
162 fConst4 = (0.93028479253239138 * mydsp_faustpower3_f(fConst0));
163 double fConst5 = (5.1986513420818397e-24 * fConst0);
164 fConst6 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst5 + 1.7153563146327399e-19)) + 1.41224926366503e-16)) + -3.7718569868030302e-15)) + -9.9095275604879496e-14);
165 double fConst7 = (2.5377268129031099e-23 * fConst0);
166 fConst8 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst7 + 2.10184078089632e-19)) + 1.4746084952545501e-16)) + -2.8103491919263598e-15)) + -3.8745627763789799e-14);
167 double fConst9 = (2.5554575353749899e-23 * fConst0);
168 fConst10 = (fConst0 * ((fConst0 * ((fConst0 * (-2.0966224746914901e-19 - fConst9)) + -1.4095256819997e-16)) + 1.7564684586251401e-15));
169 double fConst11 = (7.9444263598425703e-24 * fConst0);
170 fConst12 = ((fConst0 * ((fConst0 * ((fConst0 * (-1.8431345115767401e-19 - fConst11)) + -1.4867852143994001e-16)) + 4.14135154627774e-15)) + 1.1408637802285001e-13);
171 double fConst13 = (4.9224951879988899e-23 * fConst0);
172 fConst14 = ((fConst0 * ((fConst0 * ((fConst0 * (-2.8282985219400499e-19 - fConst13)) + -1.7842131276678399e-16)) + 3.3977551244592401e-15)) + 4.6832453671078502e-14);
173 double fConst15 = (4.9568879349265099e-23 * fConst0);
174 fConst16 = (fConst0 * ((fConst0 * ((fConst0 * (fConst15 + 2.80945197437672e-19)) + 1.70486053448624e-16)) + -2.12307123308889e-15));
175 double fConst17 = (1.03973026841637e-23 * fConst0);
176 fConst18 = ((fConst0 * ((fConst0 * ((fConst0 * (-1.1435708764218199e-19 - fConst17)) + 2.8244985273300699e-16)) + 7.5437139736060604e-15)) + -6.6063517069919597e-14);
177 double fConst19 = (5.0754536258062098e-23 * fConst0);
178 fConst20 = ((fConst0 * ((fConst0 * ((fConst0 * (-1.40122718726421e-19 - fConst19)) + 2.94921699050911e-16)) + 5.6206983838527196e-15)) + -2.5830418509193201e-14);
179 double fConst21 = (5.1109150707499798e-23 * fConst0);
180 fConst22 = (fConst0 * ((fConst0 * ((fConst0 * (fConst21 + 1.3977483164610001e-19)) + -2.8190513639994098e-16)) + -3.5129369172502802e-15));
181 double fConst23 = (1.5888852719685099e-23 * fConst0);
182 fConst24 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst23 + 1.22875634105116e-19)) + -2.97357042879881e-16)) + -8.2827030925554799e-15)) + 7.6057585348566401e-14);
183 double fConst25 = (9.8449903759977797e-23 * fConst0);
184 fConst26 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst25 + 1.88553234796003e-19)) + -3.5684262553356798e-16)) + -6.7955102489184699e-15)) + 3.1221635780719003e-14);
185 double fConst27 = (9.9137758698530105e-23 * fConst0);
186 fConst28 = (fConst0 * ((fConst0 * ((fConst0 * (-1.87296798291781e-19 - fConst27)) + 3.40972106897249e-16)) + 4.2461424661777799e-15));
187 fConst29 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst17 + -1.1435708764218199e-19)) + -2.8244985273300699e-16)) + 7.5437139736060604e-15)) + 6.6063517069919597e-14);
188 fConst30 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst19 + -1.40122718726421e-19)) + -2.94921699050911e-16)) + 5.6206983838527196e-15)) + 2.5830418509193201e-14);
189 fConst31 = (fConst0 * ((fConst0 * ((fConst0 * (1.3977483164610001e-19 - fConst21)) + 2.8190513639994098e-16)) + -3.5129369172502802e-15));
190 fConst32 = ((fConst0 * ((fConst0 * ((fConst0 * (1.22875634105116e-19 - fConst23)) + 2.97357042879881e-16)) + -8.2827030925554799e-15)) + -7.6057585348566401e-14);
191 fConst33 = ((fConst0 * ((fConst0 * ((fConst0 * (1.88553234796003e-19 - fConst25)) + 3.5684262553356798e-16)) + -6.7955102489184699e-15)) + -3.1221635780719003e-14);
192 fConst34 = (fConst0 * ((fConst0 * ((fConst0 * (fConst27 + -1.87296798291781e-19)) + -3.40972106897249e-16)) + 4.2461424661777799e-15));
193 fConst35 = ((fConst0 * ((fConst0 * ((fConst0 * (1.7153563146327399e-19 - fConst5)) + -1.41224926366503e-16)) + -3.7718569868030302e-15)) + 9.9095275604879496e-14);
194 fConst36 = ((fConst0 * ((fConst0 * ((fConst0 * (2.10184078089632e-19 - fConst7)) + -1.4746084952545501e-16)) + -2.8103491919263598e-15)) + 3.8745627763789799e-14);
195 fConst37 = (fConst0 * ((fConst0 * ((fConst0 * (fConst9 + -2.0966224746914901e-19)) + 1.4095256819997e-16)) + 1.7564684586251401e-15));
196 fConst38 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst11 + -1.8431345115767401e-19)) + 1.4867852143994001e-16)) + 4.14135154627774e-15)) + -1.1408637802285001e-13);
197 fConst39 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst13 + -2.8282985219400499e-19)) + 1.7842131276678399e-16)) + 3.3977551244592401e-15)) + -4.6832453671078502e-14);
198 fConst40 = (fConst0 * ((fConst0 * ((fConst0 * (2.80945197437672e-19 - fConst15)) + -1.70486053448624e-16)) + -2.12307123308889e-15));
199 double fConst41 = (1.03973026841637e-24 * fConst0);
200 fConst42 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst41 + -5.7178543821091199e-20)) + 1.41224926366503e-16)) + -3.7718569868030302e-15)) + 3.3031758534959798e-14);
201 double fConst43 = (5.07545362580621e-24 * fConst0);
202 fConst44 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst43 + -7.0061359363210703e-20)) + 1.4746084952545501e-16)) + -2.8103491919263598e-15)) + 1.2915209254596601e-14);
203 double fConst45 = (5.1109150707499797e-24 * fConst0);
204 fConst46 = (fConst0 * ((fConst0 * ((fConst0 * (6.9887415823049801e-20 - fConst45)) + -1.4095256819997e-16)) + 1.7564684586251401e-15));
205 double fConst47 = (1.58888527196851e-24 * fConst0);
206 fConst48 = ((fConst0 * ((fConst0 * ((fConst0 * (6.1437817052558098e-20 - fConst47)) + -1.4867852143994001e-16)) + 4.14135154627774e-15)) + -3.80287926742832e-14);
207 double fConst49 = (9.84499037599778e-24 * fConst0);
208 fConst50 = ((fConst0 * ((fConst0 * ((fConst0 * (9.42766173980015e-20 - fConst49)) + -1.7842131276678399e-16)) + 3.3977551244592401e-15)) + -1.5610817890359502e-14);
209 double fConst51 = (9.9137758698530105e-24 * fConst0);
210 fConst52 = (fConst0 * ((fConst0 * ((fConst0 * (fConst51 + -9.3648399145890596e-20)) + 1.70486053448624e-16)) + -2.12307123308889e-15));
211 fConst53 = ((fConst0 * ((fConst0 * ((fConst0 * (-5.7178543821091199e-20 - fConst41)) + -1.41224926366503e-16)) + -3.7718569868030302e-15)) + -3.3031758534959798e-14);
212 fConst54 = ((fConst0 * ((fConst0 * ((fConst0 * (-7.0061359363210703e-20 - fConst43)) + -1.4746084952545501e-16)) + -2.8103491919263598e-15)) + -1.2915209254596601e-14);
213 fConst55 = (fConst0 * ((fConst0 * ((fConst0 * (fConst45 + 6.9887415823049801e-20)) + 1.4095256819997e-16)) + 1.7564684586251401e-15));
214 fConst56 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst47 + 6.1437817052558098e-20)) + 1.4867852143994001e-16)) + 4.14135154627774e-15)) + 3.80287926742832e-14);
215 fConst57 = ((fConst0 * ((fConst0 * ((fConst0 * (fConst49 + 9.42766173980015e-20)) + 1.7842131276678399e-16)) + 3.3977551244592401e-15)) + 1.5610817890359502e-14);
216 fConst58 = (fConst0 * ((fConst0 * ((fConst0 * (-9.3648399145890596e-20 - fConst51)) + -1.70486053448624e-16)) + -2.12307123308889e-15));
217 double fConst59 = (4.0724943902439398e-29 * fConst0);
218 fConst60 = ((fConst0 * (fConst59 + -1.3411884984281801e-22)) + 1.2352517755682401e-17);
219 double fConst61 = (3.9514408494262001e-29 * fConst0);
220 fConst62 = ((fConst0 * (1.2630090717698801e-22 - fConst61)) + 2.6890421358576598e-19);
221 double fConst63 = (3.9514408494262003e-27 * fConst0);
222 fConst64 = ((fConst0 * (1.26300907176988e-20 - fConst63)) + 2.6890421358576598e-17);
223 double fConst65 = (4.0724943902439399e-27 * fConst0);
224 fConst66 = ((fConst0 * (fConst65 + -1.3411884984281799e-20)) + 1.23525177556824e-15);
225 double fConst67 = (2.0362471951219699e-28 * fConst0);
226 fConst68 = ((fConst0 * (4.02356549528453e-22 - fConst67)) + -1.2352517755682401e-17);
227 double fConst69 = (1.9757204247131001e-28 * fConst0);
228 fConst70 = ((fConst0 * (fConst69 + -3.78902721530964e-22)) + -2.6890421358576598e-19);
229 double fConst71 = (1.9757204247130999e-26 * fConst0);
230 fConst72 = ((fConst0 * (fConst71 + -3.7890272153096399e-20)) + -2.6890421358576598e-17);
231 double fConst73 = (2.03624719512197e-26 * fConst0);
232 fConst74 = ((fConst0 * (4.0235654952845302e-20 - fConst73)) + -1.23525177556824e-15);
233 double fConst75 = (4.0724943902439399e-28 * fConst0);
234 fConst76 = ((fConst0 * (fConst75 + -2.6823769968563499e-22)) + -2.47050355113649e-17);
235 double fConst77 = (3.9514408494262001e-28 * fConst0);
236 fConst78 = ((fConst0 * (2.5260181435397602e-22 - fConst77)) + -5.3780842717153195e-19);
237 double fConst79 = (3.9514408494261998e-26 * fConst0);
238 fConst80 = ((fConst0 * (2.5260181435397601e-20 - fConst79)) + -5.3780842717153197e-17);
239 double fConst81 = (4.07249439024394e-26 * fConst0);
240 fConst82 = ((fConst0 * (fConst81 + -2.6823769968563499e-20)) + -2.4705035511364902e-15);
241 fConst83 = ((fConst0 * (-2.6823769968563499e-22 - fConst75)) + 2.47050355113649e-17);
242 fConst84 = ((fConst0 * (fConst77 + 2.5260181435397602e-22)) + 5.3780842717153195e-19);
243 fConst85 = ((fConst0 * (fConst79 + 2.5260181435397601e-20)) + 5.3780842717153197e-17);
244 fConst86 = ((fConst0 * (-2.6823769968563499e-20 - fConst81)) + 2.4705035511364902e-15);
245 fConst87 = ((fConst0 * (fConst67 + 4.02356549528453e-22)) + 1.2352517755682401e-17);
246 fConst88 = ((fConst0 * (-3.78902721530964e-22 - fConst69)) + 2.6890421358576598e-19);
247 fConst89 = ((fConst0 * (-3.7890272153096399e-20 - fConst71)) + 2.6890421358576598e-17);
248 fConst90 = ((fConst0 * (fConst73 + 4.0235654952845302e-20)) + 1.23525177556824e-15);
249 fConst91 = ((fConst0 * (-1.3411884984281801e-22 - fConst59)) + -1.2352517755682401e-17);
250 fConst92 = ((fConst0 * (fConst61 + 1.2630090717698801e-22)) + -2.6890421358576598e-19);
251 fConst93 = ((fConst0 * (fConst63 + 1.26300907176988e-20)) + -2.6890421358576598e-17);
252 fConst94 = ((fConst0 * (-1.3411884984281799e-20 - fConst65)) + -1.23525177556824e-15);
253 clear_state_f();
254 }
255
init_static(uint32_t sample_rate,PluginLV2 * p)256 void Dsp::init_static(uint32_t sample_rate, PluginLV2 *p)
257 {
258 static_cast<Dsp*>(p)->init(sample_rate);
259 }
260
compute(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0)261 void always_inline Dsp::compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0)
262 {
263 #define fVslider0 (*fVslider0_)
264 #define fVslider1 (*fVslider1_)
265 double fSlow0 = (0.0070000000000000062 * double(fVslider0));
266 double fSlow1 = (0.0070000000000000062 * double(fVslider1));
267 for (int i0 = 0; (i0 < count); i0 = (i0 + 1)) {
268 fRec13[0] = (fSlow0 + (0.99299999999999999 * fRec13[1]));
269 fRec14[0] = (fSlow1 + (0.99299999999999999 * fRec14[1]));
270 double fTemp0 = (((fRec13[0] * ((fConst0 * (fConst53 + (fRec14[0] * (fConst54 + (fConst55 * fRec14[0]))))) + -9.4964773930857394e-14)) + (fConst0 * (fConst56 + (fRec14[0] * (fConst57 + (fConst58 * fRec14[0])))))) + 1.1478542566440801e-13);
271 fRec12[0] = (double(input0[i0]) - ((((((fRec12[1] * (((fRec13[0] * ((fConst0 * (fConst6 + (fRec14[0] * (fConst8 + (fConst10 * fRec14[0]))))) + -4.7482386965428703e-13)) + (fConst0 * (fConst12 + (fRec14[0] * (fConst14 + (fConst16 * fRec14[0])))))) + 5.7392712832203995e-13)) + (fRec12[2] * (((fRec13[0] * ((fConst0 * (fConst18 + (fRec14[0] * (fConst20 + (fConst22 * fRec14[0]))))) + -9.4964773930857407e-13)) + (fConst0 * (fConst24 + (fRec14[0] * (fConst26 + (fConst28 * fRec14[0])))))) + 1.1478542566440799e-12))) + (fRec12[3] * (((fRec13[0] * ((fConst0 * (fConst29 + (fRec14[0] * (fConst30 + (fConst31 * fRec14[0]))))) + -9.4964773930857407e-13)) + (fConst0 * (fConst32 + (fRec14[0] * (fConst33 + (fConst34 * fRec14[0])))))) + 1.1478542566440799e-12))) + (fRec12[4] * (((fRec13[0] * ((fConst0 * (fConst35 + (fRec14[0] * (fConst36 + (fConst37 * fRec14[0]))))) + -4.7482386965428703e-13)) + (fConst0 * (fConst38 + (fRec14[0] * (fConst39 + (fConst40 * fRec14[0])))))) + 5.7392712832203995e-13))) + (fRec12[5] * (((fRec13[0] * ((fConst0 * (fConst42 + (fRec14[0] * (fConst44 + (fConst46 * fRec14[0]))))) + -9.4964773930857394e-14)) + (fConst0 * (fConst48 + (fRec14[0] * (fConst50 + (fConst52 * fRec14[0])))))) + 1.1478542566440801e-13))) / fTemp0));
272 double fTemp1 = (((((((fRec12[0] * (fConst60 + ((fRec13[0] * (fConst62 + (fConst64 * fRec14[0]))) + (fConst66 * fRec14[0])))) + (fRec12[1] * (fConst68 + ((fRec13[0] * (fConst70 + (fConst72 * fRec14[0]))) + (fConst74 * fRec14[0]))))) + (fRec12[2] * (fConst76 + ((fRec13[0] * (fConst78 + (fConst80 * fRec14[0]))) + (fConst82 * fRec14[0]))))) + (fRec12[3] * (fConst83 + ((fRec13[0] * (fConst84 + (fConst85 * fRec14[0]))) + (fConst86 * fRec14[0]))))) + (fRec12[4] * (fConst87 + ((fRec13[0] * (fConst88 + (fConst89 * fRec14[0]))) + (fConst90 * fRec14[0]))))) + (fRec12[5] * (fConst91 + ((fRec13[0] * (fConst92 + (fConst93 * fRec14[0]))) + (fConst94 * fRec14[0]))))) / fTemp0);
273 fVec0[0] = fTemp1;
274 fRec11[0] = ((fConst4 * (fTemp1 + fVec0[1])) - (0.86056958506478287 * fRec11[1]));
275 fRec10[0] = (fRec11[0] - ((1.8405051250752198 * fRec10[1]) + (0.86129424393186271 * fRec10[2])));
276 double fTemp2 = ((1.8508996845035413 * fRec10[1]) + (0.92544984225177063 * (fRec10[0] + fRec10[2])));
277 double fTemp3 = double(Ftrany(int(TRANY_TABLE_7199P_68k), double(((fTemp2 + (2700.0 * (fTemp2 / (double(Rtrany(int(TRANY_TABLE_7199P_68k), double(fRec9[1]))) + 100000.0)))) + -3.5719810000000001))));
278 fRec9[0] = ((fTemp3 + (0.001322955925925926 * (double(Rtrany(int(TRANY_TABLE_7199P_68k), double(fTemp3))) + 100000.0))) + -250.0);
279 fRec8[0] = (fConst2 * ((fConst3 * fRec8[1]) + (0.025000000000000001 * (fRec9[0] - fRec9[1]))));
280 fRec7[0] = ((0.93028479253239138 * (fRec8[0] + fRec8[1])) - (0.86056958506478287 * fRec7[1]));
281 fRec6[0] = (fRec7[0] - ((1.8405051250752198 * fRec6[1]) + (0.86129424393186271 * fRec6[2])));
282 double fTemp4 = ((1.8508996845035413 * fRec6[1]) + (0.92544984225177063 * (fRec6[0] + fRec6[2])));
283 double fTemp5 = double(Ftrany(int(TRANY_TABLE_7199P_68k), double(((fTemp4 + (2700.0 * (fTemp4 / (double(Rtrany(int(TRANY_TABLE_7199P_68k), double(fRec5[1]))) + 100000.0)))) + -3.5719810000000001))));
284 fRec5[0] = ((fTemp5 + (0.001322955925925926 * (double(Rtrany(int(TRANY_TABLE_7199P_68k), double(fTemp5))) + 100000.0))) + -250.0);
285 fRec4[0] = (fConst2 * ((fConst3 * fRec4[1]) + (0.025000000000000001 * (fRec5[0] - fRec5[1]))));
286 fRec3[0] = ((0.93028479253239138 * (fRec4[0] + fRec4[1])) - (0.86056958506478287 * fRec3[1]));
287 fRec2[0] = (fRec3[0] - ((1.8405051250752198 * fRec2[1]) + (0.86129424393186271 * fRec2[2])));
288 double fTemp6 = ((1.8508996845035413 * fRec2[1]) + (0.92544984225177063 * (fRec2[0] + fRec2[2])));
289 double fTemp7 = double(Ftrany(int(TRANY_TABLE_7199P_68k), double(((fTemp6 + (2700.0 * (fTemp6 / (double(Rtrany(int(TRANY_TABLE_7199P_68k), double(fRec1[1]))) + 100000.0)))) + -3.5719810000000001))));
290 fRec1[0] = ((fTemp7 + (0.001322955925925926 * (double(Rtrany(int(TRANY_TABLE_7199P_68k), double(fTemp7))) + 100000.0))) + -250.0);
291 fRec0[0] = (fConst2 * ((fConst3 * fRec0[1]) + (0.025000000000000001 * (fRec1[0] - fRec1[1]))));
292 output0[i0] = FAUSTFLOAT(fRec0[0]);
293 fRec13[1] = fRec13[0];
294 fRec14[1] = fRec14[0];
295 for (int j0 = 5; (j0 > 0); j0 = (j0 - 1)) {
296 fRec12[j0] = fRec12[(j0 - 1)];
297 }
298 fVec0[1] = fVec0[0];
299 fRec11[1] = fRec11[0];
300 fRec10[2] = fRec10[1];
301 fRec10[1] = fRec10[0];
302 fRec9[1] = fRec9[0];
303 fRec8[1] = fRec8[0];
304 fRec7[1] = fRec7[0];
305 fRec6[2] = fRec6[1];
306 fRec6[1] = fRec6[0];
307 fRec5[1] = fRec5[0];
308 fRec4[1] = fRec4[0];
309 fRec3[1] = fRec3[0];
310 fRec2[2] = fRec2[1];
311 fRec2[1] = fRec2[0];
312 fRec1[1] = fRec1[0];
313 fRec0[1] = fRec0[0];
314 }
315 #undef fVslider0
316 #undef fVslider1
317 }
318
compute_static(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0,PluginLV2 * p)319 void __rt_func Dsp::compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginLV2 *p)
320 {
321 static_cast<Dsp*>(p)->compute(count, input0, output0);
322 }
323
324
connect(uint32_t port,void * data)325 void Dsp::connect(uint32_t port,void* data)
326 {
327 switch ((PortIndex)port)
328 {
329 case SUSTAIN:
330 fVslider1_ = (float*)data; // , 0.5, 0.0, 1.0, 0.01
331 break;
332 case VOLUME:
333 fVslider0_ = (float*)data; // , 0.5, 0.0, 1.0, 0.01
334 break;
335 default:
336 break;
337 }
338 }
339
connect_static(uint32_t port,void * data,PluginLV2 * p)340 void Dsp::connect_static(uint32_t port,void* data, PluginLV2 *p)
341 {
342 static_cast<Dsp*>(p)->connect(port, data);
343 }
344
345
plugin()346 PluginLV2 *plugin() {
347 return new Dsp();
348 }
349
del_instance(PluginLV2 * p)350 void Dsp::del_instance(PluginLV2 *p)
351 {
352 delete static_cast<Dsp*>(p);
353 }
354
355 /*
356 typedef enum
357 {
358 SUSTAIN,
359 VOLUME,
360 } PortIndex;
361 */
362
363 } // end namespace susta
364