1 // generated from file './faust/digital_delay.dsp' by dsp2cc:
2 // Code generated with Faust 0.9.65 (http://faust.grame.fr)
3 
4 #include "beat.h"
5 
6 namespace digital_delay {
7 
8 class Dsp: public PluginLV2 {
9 private:
10 	uint32_t fSamplingFreq;
11 	FAUSTFLOAT 	fcheckbox0;
12 	FAUSTFLOAT	*fcheckbox0_;
13 	FAUSTFLOAT 	fslider8;
14 	FAUSTFLOAT	*fslider8_;
15 	FAUSTFLOAT 	fslider0;
16 	FAUSTFLOAT	*fslider0_;
17 	FAUSTFLOAT 	fslider1;
18 	FAUSTFLOAT	*fslider1_;
19 	int 	iConst0;
20 	double 	fConst1;
21 	FAUSTFLOAT 	fslider2;
22 	FAUSTFLOAT	*fslider2_;
23 	FAUSTFLOAT 	fslider3;
24 	FAUSTFLOAT	*fslider3_;
25 	double 	fRec2[3];
26 	double 	fRec1[3];
27 	double 	fVec0[2];
28 	double 	fConst2;
29 	double 	fConst3;
30 	double 	fConst4;
31 	double 	fConst5;
32 	double 	fConst6;
33 	double 	fConst7;
34 	double 	fConst8;
35 	double 	fConst9;
36 	double 	fConst10;
37 	double 	fConst11;
38 	double 	fConst12;
39 	double 	fConst13;
40 	double 	fConst14;
41 	double 	fConst15;
42 	double 	fConst16;
43 	double 	fConst17;
44 	double 	fConst18;
45 	double 	fConst19;
46 	double 	fConst20;
47 	double 	fConst21;
48 	double 	fConst22;
49 	double 	fConst23;
50 	double 	fConst24;
51 	double 	fConst25;
52 	double 	fConst26;
53 	double 	fConst27;
54 	double 	fConst28;
55 	double 	fConst29;
56 	double 	fConst30;
57 	double 	fConst31;
58 	double 	fConst32;
59 	double 	fConst33;
60 	double 	fConst34;
61 	double 	fConst35;
62 	double 	fConst36;
63 	double 	fConst37;
64 	double 	fConst38;
65 	double 	fConst39;
66 	double 	fConst40;
67 	double 	fConst41;
68 	double 	fConst42;
69 	double 	fConst43;
70 	double 	fConst44;
71 	double 	fConst45;
72 	double 	fConst46;
73 	double 	fConst47;
74 	double 	fConst48;
75 	double 	fConst49;
76 	double 	fConst50;
77 	double 	fConst51;
78 	double 	fConst52;
79 	double 	fConst53;
80 	double 	fConst54;
81 	double 	fRec11[2];
82 	double 	fRec10[3];
83 	double 	fConst55;
84 	double 	fRec9[3];
85 	double 	fConst56;
86 	double 	fConst57;
87 	double 	fConst58;
88 	double 	fRec8[3];
89 	double 	fConst59;
90 	double 	fConst60;
91 	double 	fConst61;
92 	double 	fRec7[3];
93 	double 	fConst62;
94 	double 	fConst63;
95 	double 	fConst64;
96 	double 	fRec6[3];
97 	double 	fConst65;
98 	double 	fConst66;
99 	double 	fConst67;
100 	double 	fRec5[3];
101 	double 	fConst68;
102 	double 	fConst69;
103 	double 	fConst70;
104 	double 	fVec1[2];
105 	double 	fConst71;
106 	double 	fConst72;
107 	double 	fConst73;
108 	double 	fRec4[2];
109 	double 	fRec3[3];
110 	double 	fConst74;
111 	FAUSTFLOAT 	fslider4;
112 	FAUSTFLOAT	*fslider4_;
113 	double 	fRec18[2];
114 	double 	fRec16[2];
115 	double 	fRec14[2];
116 	double 	fRec12[2];
117 	double 	fRec26[2];
118 	double 	fRec24[2];
119 	double 	fRec22[2];
120 	double 	fRec20[2];
121 	int 	IOTA;
122 	double 	fVec2[524288];
123 	double 	fConst75;
124 	double 	fConst76;
125 	FAUSTFLOAT 	fslider5;
126 	FAUSTFLOAT	*fslider5_;
127 	FAUSTFLOAT 	fslider6;
128 	FAUSTFLOAT	*fslider6_;
129 	int 	iConst77;
130 	double 	fRec28[2];
131 	double 	fRec29[2];
132 	double 	fRec30[2];
133 	double 	fRec31[2];
134 	FAUSTFLOAT 	fslider7;
135 	FAUSTFLOAT	*fslider7_;
136 	double 	fRec0[2];
137 	void connect(uint32_t port,void* data);
138 	void clear_state_f();
139 	void init(uint32_t samplingFreq);
140 	void compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0);
141 
142 	static void clear_state_f_static(PluginLV2*);
143 	static void init_static(uint32_t samplingFreq, PluginLV2*);
144 	static void compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginLV2*);
145 	static void del_instance(PluginLV2 *p);
146 	static void connect_static(uint32_t port,void* data, PluginLV2 *p);
147 public:
148 	Dsp();
149 	~Dsp();
150 };
151 
152 
153 
Dsp()154 Dsp::Dsp()
155 	: PluginLV2() {
156 	version = PLUGINLV2_VERSION;
157 	id = "dide";
158 	name = N_("Digital Delay");
159 	mono_audio = compute_static;
160 	stereo_audio = 0;
161 	set_samplerate = init_static;
162 	activate_plugin = 0;
163 	connect_ports = connect_static;
164 	clear_state = clear_state_f_static;
165 	delete_instance = del_instance;
166 }
167 
~Dsp()168 Dsp::~Dsp() {
169 }
170 
clear_state_f()171 inline void Dsp::clear_state_f()
172 {
173 	for (int i=0; i<3; i++) fRec2[i] = 0;
174 	for (int i=0; i<3; i++) fRec1[i] = 0;
175 	for (int i=0; i<2; i++) fVec0[i] = 0;
176 	for (int i=0; i<2; i++) fRec11[i] = 0;
177 	for (int i=0; i<3; i++) fRec10[i] = 0;
178 	for (int i=0; i<3; i++) fRec9[i] = 0;
179 	for (int i=0; i<3; i++) fRec8[i] = 0;
180 	for (int i=0; i<3; i++) fRec7[i] = 0;
181 	for (int i=0; i<3; i++) fRec6[i] = 0;
182 	for (int i=0; i<3; i++) fRec5[i] = 0;
183 	for (int i=0; i<2; i++) fVec1[i] = 0;
184 	for (int i=0; i<2; i++) fRec4[i] = 0;
185 	for (int i=0; i<3; i++) fRec3[i] = 0;
186 	for (int i=0; i<2; i++) fRec18[i] = 0;
187 	for (int i=0; i<2; i++) fRec16[i] = 0;
188 	for (int i=0; i<2; i++) fRec14[i] = 0;
189 	for (int i=0; i<2; i++) fRec12[i] = 0;
190 	for (int i=0; i<2; i++) fRec26[i] = 0;
191 	for (int i=0; i<2; i++) fRec24[i] = 0;
192 	for (int i=0; i<2; i++) fRec22[i] = 0;
193 	for (int i=0; i<2; i++) fRec20[i] = 0;
194 	for (int i=0; i<524288; i++) fVec2[i] = 0;
195 	for (int i=0; i<2; i++) fRec28[i] = 0;
196 	for (int i=0; i<2; i++) fRec29[i] = 0;
197 	for (int i=0; i<2; i++) fRec30[i] = 0;
198 	for (int i=0; i<2; i++) fRec31[i] = 0;
199 	for (int i=0; i<2; i++) fRec0[i] = 0;
200 }
201 
clear_state_f_static(PluginLV2 * p)202 void Dsp::clear_state_f_static(PluginLV2 *p)
203 {
204 	static_cast<Dsp*>(p)->clear_state_f();
205 }
206 
init(uint32_t samplingFreq)207 inline void Dsp::init(uint32_t samplingFreq)
208 {
209 	fSamplingFreq = samplingFreq;
210 	iConst0 = min(192000, max(1, fSamplingFreq));
211 	fConst1 = (3.141592653589793 / double(iConst0));
212 	fConst2 = tan((37699.11184307752 / double(iConst0)));
213 	fConst3 = (2 * (1 - (1.0 / faustpower<2>(fConst2))));
214 	fConst4 = (1.0 / fConst2);
215 	fConst5 = (1 + ((fConst4 - 1.0000000000000004) / fConst2));
216 	fConst6 = (1 + ((1.0000000000000004 + fConst4) / fConst2));
217 	fConst7 = (1.0 / fConst6);
218 	fConst8 = tan((25132.741228718343 / double(iConst0)));
219 	fConst9 = (2 * (1 - (1.0 / faustpower<2>(fConst8))));
220 	fConst10 = double((1.0 / double(iConst0)));
221 	fConst11 = (fConst10 / sin((50265.48245743669 * fConst10)));
222 	fConst12 = (3141.592653589793 * fConst11);
223 	fConst13 = (1.0 / fConst8);
224 	fConst14 = (1 + ((fConst13 - fConst12) / fConst8));
225 	fConst15 = (1 + ((fConst12 + fConst13) / fConst8));
226 	fConst16 = (1.0 / fConst15);
227 	fConst17 = tan((12566.370614359172 / double(iConst0)));
228 	fConst18 = (2 * (1 - (1.0 / faustpower<2>(fConst17))));
229 	fConst19 = (fConst10 / sin((25132.741228718343 * fConst10)));
230 	fConst20 = (6268.301430690795 * fConst19);
231 	fConst21 = (1.0 / fConst17);
232 	fConst22 = (1 + ((fConst21 - fConst20) / fConst17));
233 	fConst23 = (1.0 / (1 + ((fConst20 + fConst21) / fConst17)));
234 	fConst24 = tan((6283.185307179586 / double(iConst0)));
235 	fConst25 = (2 * (1 - (1.0 / faustpower<2>(fConst24))));
236 	fConst26 = (fConst10 / sin((12566.370614359172 * fConst10)));
237 	fConst27 = (1570.7963267948965 * fConst26);
238 	fConst28 = (1.0 / fConst24);
239 	fConst29 = (1 + ((fConst28 - fConst27) / fConst24));
240 	fConst30 = (1.0 / (1 + ((fConst27 + fConst28) / fConst24)));
241 	fConst31 = tan((1178.0972450961724 / double(iConst0)));
242 	fConst32 = (2 * (1 - (1.0 / faustpower<2>(fConst31))));
243 	fConst33 = (fConst10 / sin((2356.194490192345 * fConst10)));
244 	fConst34 = (392.6990816987241 * fConst33);
245 	fConst35 = (1.0 / fConst31);
246 	fConst36 = (1 + ((fConst35 - fConst34) / fConst31));
247 	fConst37 = (1.0 / (1 + ((fConst34 + fConst35) / fConst31)));
248 	fConst38 = tan((628.3185307179587 / double(iConst0)));
249 	fConst39 = (2 * (1 - (1.0 / faustpower<2>(fConst38))));
250 	fConst40 = (fConst10 / sin((1256.6370614359173 * fConst10)));
251 	fConst41 = (221.8808786553305 * fConst40);
252 	fConst42 = (1.0 / fConst38);
253 	fConst43 = (1 + ((fConst42 - fConst41) / fConst38));
254 	fConst44 = (1.0 / (1 + ((fConst41 + fConst42) / fConst38)));
255 	fConst45 = tan((251.32741228718345 / double(iConst0)));
256 	fConst46 = (1.0 / faustpower<2>(fConst45));
257 	fConst47 = (2 * (1 - fConst46));
258 	fConst48 = (1.0 / fConst45);
259 	fConst49 = (1 + ((fConst48 - 1.0000000000000004) / fConst45));
260 	fConst50 = (1.0 / (1 + ((1.0000000000000004 + fConst48) / fConst45)));
261 	fConst51 = (0 - fConst48);
262 	fConst52 = (1 + fConst48);
263 	fConst53 = (1.0 / fConst52);
264 	fConst54 = (0 - ((1 - fConst48) / fConst52));
265 	fConst55 = (2 * (0 - fConst46));
266 	fConst56 = (157.07963267948966 * fConst40);
267 	fConst57 = (1 + ((fConst42 - fConst56) / fConst38));
268 	fConst58 = (1 + ((fConst56 + fConst42) / fConst38));
269 	fConst59 = (466.72373331140534 * fConst33);
270 	fConst60 = (1 + ((fConst35 - fConst59) / fConst31));
271 	fConst61 = (1 + ((fConst59 + fConst35) / fConst31));
272 	fConst62 = (2218.808786553305 * fConst26);
273 	fConst63 = (1 + ((fConst28 - fConst62) / fConst24));
274 	fConst64 = (1 + ((fConst62 + fConst28) / fConst24));
275 	fConst65 = (3141.592653589793 * fConst19);
276 	fConst66 = (1 + ((fConst21 - fConst65) / fConst17));
277 	fConst67 = (1 + ((fConst65 + fConst21) / fConst17));
278 	fConst68 = (3955.030825110061 * fConst11);
279 	fConst69 = (1 + ((fConst13 - fConst68) / fConst8));
280 	fConst70 = (1 + ((fConst68 + fConst13) / fConst8));
281 	fConst71 = (1 + fConst4);
282 	fConst72 = (1.0 / (fConst71 * fConst15));
283 	fConst73 = (0 - ((1 - fConst4) / fConst71));
284 	fConst74 = (0.8 / fConst6);
285 	IOTA = 0;
286 	fConst75 = (1e+01 / double(iConst0));
287 	fConst76 = (0 - fConst75);
288 	iConst77 = (60 * iConst0);
289 	clear_state_f();
290 }
291 
init_static(uint32_t samplingFreq,PluginLV2 * p)292 void Dsp::init_static(uint32_t samplingFreq, PluginLV2 *p)
293 {
294 	static_cast<Dsp*>(p)->init(samplingFreq);
295 }
296 
compute(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0)297 void always_inline Dsp::compute(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0)
298 {
299 #define fcheckbox0 (*fcheckbox0_)
300 #define fslider0 (*fslider0_)
301 #define fslider1 (*fslider1_)
302 #define fslider2 (*fslider2_)
303 #define fslider3 (*fslider3_)
304 #define fslider4 (*fslider4_)
305 #define fslider5 (*fslider5_)
306 #define fslider6 (*fslider6_)
307 #define fslider7 (*fslider7_)
308 #define fslider8 (*fslider8_)
309     if (int(fcheckbox0)) fslider6 = fslider8;
310 	double 	fSlow0 = (0.01 * double(fslider0));
311 	double 	fSlow1 = tan((fConst1 * double(fslider1)));
312 	double 	fSlow2 = (2 * (1 - (1.0 / faustpower<2>(fSlow1))));
313 	double 	fSlow3 = (1.0 / fSlow1);
314 	double 	fSlow4 = (1 + ((fSlow3 - 1.414213562373095) / fSlow1));
315 	double 	fSlow5 = (1 + ((1.414213562373095 + fSlow3) / fSlow1));
316 	double 	fSlow6 = (1.0 / fSlow5);
317 	double 	fSlow7 = tan((fConst1 * double(fslider2)));
318 	double 	fSlow8 = (1.0 / faustpower<2>(fSlow7));
319 	double 	fSlow9 = (2 * (1 - fSlow8));
320 	double 	fSlow10 = (1.0 / fSlow7);
321 	double 	fSlow11 = (1 + ((fSlow10 - 1.414213562373095) / fSlow7));
322 	double 	fSlow12 = (1.0 / (1 + ((1.414213562373095 + fSlow10) / fSlow7)));
323 	double 	fSlow13 = (0.01 * double(fslider3));
324 	double 	fSlow14 = (2 * (0 - fSlow8));
325 	double 	fSlow15 = (fConst48 / fSlow5);
326 	double 	fSlow16 = double(fslider4);
327 	int 	iSlow17 = int(min((double)2, max((double)0, fSlow16)));
328 	int 	iSlow18 = int(min((double)2, max((double)0, (fSlow16 - 1))));
329 	int 	iSlow19 = int(min((double)2, max((double)0, (fSlow16 - 2))));
330 	double 	fSlow20 = min(524288.0, B2N(double(fslider5), (double(iConst77) / double(fslider6))));
331 	double 	fSlow21 = (0.01 * double(fslider7));
332 	for (int i=0; i<count; i++) {
333 		double fTemp0 = (double)input0[i];
334 		fRec2[0] = ((fSlow13 * fRec0[1]) - (fSlow12 * ((fSlow11 * fRec2[2]) + (fSlow9 * fRec2[1]))));
335 		fRec1[0] = ((fSlow12 * (((fSlow8 * fRec2[0]) + (fSlow14 * fRec2[1])) + (fSlow8 * fRec2[2]))) - (fSlow6 * ((fSlow4 * fRec1[2]) + (fSlow2 * fRec1[1]))));
336 		double fTemp1 = (fRec1[2] + (fRec1[0] + (2 * fRec1[1])));
337 		double fTemp2 = (fSlow6 * fTemp1);
338 		fVec0[0] = fTemp2;
339 		double fTemp3 = (fConst9 * fRec5[1]);
340 		double fTemp4 = (fConst18 * fRec6[1]);
341 		double fTemp5 = (fConst25 * fRec7[1]);
342 		double fTemp6 = (fConst32 * fRec8[1]);
343 		double fTemp7 = (fConst39 * fRec9[1]);
344 		fRec11[0] = ((fConst54 * fRec11[1]) + (fConst53 * ((fSlow15 * fTemp1) + (fConst51 * fVec0[1]))));
345 		fRec10[0] = (fRec11[0] - (fConst50 * ((fConst49 * fRec10[2]) + (fConst47 * fRec10[1]))));
346 		fRec9[0] = ((fConst50 * (((fConst46 * fRec10[0]) + (fConst55 * fRec10[1])) + (fConst46 * fRec10[2]))) - (fConst44 * ((fConst43 * fRec9[2]) + fTemp7)));
347 		fRec8[0] = ((fConst44 * ((fTemp7 + (fConst58 * fRec9[0])) + (fConst57 * fRec9[2]))) - (fConst37 * ((fConst36 * fRec8[2]) + fTemp6)));
348 		fRec7[0] = ((fConst37 * ((fTemp6 + (fConst61 * fRec8[0])) + (fConst60 * fRec8[2]))) - (fConst30 * ((fConst29 * fRec7[2]) + fTemp5)));
349 		fRec6[0] = ((fConst30 * ((fTemp5 + (fConst64 * fRec7[0])) + (fConst63 * fRec7[2]))) - (fConst23 * ((fConst22 * fRec6[2]) + fTemp4)));
350 		fRec5[0] = ((fConst23 * ((fTemp4 + (fConst67 * fRec6[0])) + (fConst66 * fRec6[2]))) - (fConst16 * ((fConst14 * fRec5[2]) + fTemp3)));
351 		double fTemp8 = ((fTemp3 + (fConst70 * fRec5[0])) + (fConst69 * fRec5[2]));
352 		fVec1[0] = fTemp8;
353 		fRec4[0] = ((fConst73 * fRec4[1]) + (fConst72 * (fVec1[0] + fVec1[1])));
354 		fRec3[0] = (fRec4[0] - (fConst7 * ((fConst5 * fRec3[2]) + (fConst3 * fRec3[1]))));
355 		double fTemp9 = ((iSlow17==0)? fVec0[0] : ((iSlow17==1)?(fConst74 * (fRec3[2] + (fRec3[0] + (2 * fRec3[1])))):fVec0[0]) );
356 		double fTemp10 = (0.1 * fRec12[1]);
357 		double fTemp11 = ((0.4 * fRec16[1]) + fTemp10);
358 		double fTemp12 = (0.2 * fRec14[1]);
359 		double fTemp13 = ((fTemp12 + (fTemp9 + (0.6 * fRec18[1]))) - fTemp11);
360 		fRec18[0] = fTemp13;
361 		double 	fRec19 = (0 - (0.6 * fTemp13));
362 		fRec16[0] = (fRec19 + fRec18[1]);
363 		double fTemp14 = (fTemp9 + fTemp12);
364 		double 	fRec17 = (0.4 * (fTemp14 - fTemp11));
365 		fRec14[0] = (fRec17 + fRec16[1]);
366 		double 	fRec15 = (0 - (0.2 * (fTemp14 - fTemp10)));
367 		fRec12[0] = (fRec15 + fRec14[1]);
368 		double 	fRec13 = (0.1 * (fTemp9 - fTemp10));
369 		double fTemp15 = ((iSlow18==0)? fTemp9 : ((iSlow18==1)?(fRec13 + fRec12[1]):fTemp9) );
370 		double fTemp16 = (0.5 * fRec20[1]);
371 		double fTemp17 = ((0.4 * fRec22[1]) + fTemp16);
372 		double fTemp18 = (0.3 * fRec24[1]);
373 		double fTemp19 = ((fTemp18 + (fTemp15 + (0.2 * fRec26[1]))) - fTemp17);
374 		fRec26[0] = fTemp19;
375 		double 	fRec27 = (0 - (0.2 * fTemp19));
376 		fRec24[0] = (fRec27 + fRec26[1]);
377 		double 	fRec25 = (0 - (0.3 * ((fTemp15 + fTemp18) - fTemp17)));
378 		fRec22[0] = (fRec25 + fRec24[1]);
379 		double 	fRec23 = (0.4 * (fTemp15 - fTemp17));
380 		fRec20[0] = (fRec23 + fRec22[1]);
381 		double 	fRec21 = (0.5 * (fTemp15 - fTemp16));
382 		double fTemp20 = (((iSlow19==0)? fTemp15 : ((iSlow19==1)?(fRec21 + fRec20[1]):fTemp15) ) + (fSlow0 * fTemp0));
383 		fVec2[IOTA&524287] = fTemp20;
384 		double fTemp21 = ((int((fRec28[1] != 0.0)))?((int(((fRec29[1] > 0.0) & (fRec29[1] < 1.0))))?fRec28[1]:0):((int(((fRec29[1] == 0.0) & (fSlow20 != fRec30[1]))))?fConst75:((int(((fRec29[1] == 1.0) & (fSlow20 != fRec31[1]))))?fConst76:0)));
385 		fRec28[0] = fTemp21;
386 		fRec29[0] = max(0.0, min(1.0, (fRec29[1] + fTemp21)));
387 		fRec30[0] = ((int(((fRec29[1] >= 1.0) & (fRec31[1] != fSlow20))))?fSlow20:fRec30[1]);
388 		fRec31[0] = ((int(((fRec29[1] <= 0.0) & (fRec30[1] != fSlow20))))?fSlow20:fRec31[1]);
389 		fRec0[0] = (fSlow21 * (((1.0 - fRec29[0]) * fVec2[(IOTA-int((int(fRec30[0]) & 524287)))&524287]) + (fRec29[0] * fVec2[(IOTA-int((int(fRec31[0]) & 524287)))&524287])));
390 		output0[i] = (FAUSTFLOAT)(fTemp0 + fRec0[0]);
391 		// post processing
392 		fRec0[1] = fRec0[0];
393 		fRec31[1] = fRec31[0];
394 		fRec30[1] = fRec30[0];
395 		fRec29[1] = fRec29[0];
396 		fRec28[1] = fRec28[0];
397 		IOTA = IOTA+1;
398 		fRec20[1] = fRec20[0];
399 		fRec22[1] = fRec22[0];
400 		fRec24[1] = fRec24[0];
401 		fRec26[1] = fRec26[0];
402 		fRec12[1] = fRec12[0];
403 		fRec14[1] = fRec14[0];
404 		fRec16[1] = fRec16[0];
405 		fRec18[1] = fRec18[0];
406 		fRec3[2] = fRec3[1]; fRec3[1] = fRec3[0];
407 		fRec4[1] = fRec4[0];
408 		fVec1[1] = fVec1[0];
409 		fRec5[2] = fRec5[1]; fRec5[1] = fRec5[0];
410 		fRec6[2] = fRec6[1]; fRec6[1] = fRec6[0];
411 		fRec7[2] = fRec7[1]; fRec7[1] = fRec7[0];
412 		fRec8[2] = fRec8[1]; fRec8[1] = fRec8[0];
413 		fRec9[2] = fRec9[1]; fRec9[1] = fRec9[0];
414 		fRec10[2] = fRec10[1]; fRec10[1] = fRec10[0];
415 		fRec11[1] = fRec11[0];
416 		fVec0[1] = fVec0[0];
417 		fRec1[2] = fRec1[1]; fRec1[1] = fRec1[0];
418 		fRec2[2] = fRec2[1]; fRec2[1] = fRec2[0];
419 	}
420 #undef fcheckbox0
421 #undef fslider0
422 #undef fslider1
423 #undef fslider2
424 #undef fslider3
425 #undef fslider4
426 #undef fslider5
427 #undef fslider6
428 #undef fslider7
429 #undef fslider8
430 }
431 
compute_static(int count,FAUSTFLOAT * input0,FAUSTFLOAT * output0,PluginLV2 * p)432 void __rt_func Dsp::compute_static(int count, FAUSTFLOAT *input0, FAUSTFLOAT *output0, PluginLV2 *p)
433 {
434 	static_cast<Dsp*>(p)->compute(count, input0, output0);
435 }
436 
437 
connect(uint32_t port,void * data)438 void Dsp::connect(uint32_t port,void* data)
439 {
440 	switch ((PortIndex)port)
441 	{
442 	case BPM:
443 		fslider6_ = (float*)data; // , 1.2e+02, 24.0, 3.6e+02, 1.0
444 		break;
445 	case FEEDBACK:
446 		fslider3_ = (float*)data; // , 5e+01, 1.0, 1e+02, 1.0
447 		break;
448 	case GAIN:
449 		fslider0_ = (float*)data; // , 1e+02, 0.0, 1.2e+02, 1.0
450 		break;
451 	case HIGHPASS:
452 		fslider2_ = (float*)data; // , 1.2e+02, 2e+01, 2e+04, 1.0
453 		break;
454 	case HOWPASS:
455 		fslider1_ = (float*)data; // , 1.2e+04, 2e+01, 2e+04, 1.0
456 		break;
457 	case LEVEL:
458 		fslider7_ = (float*)data; // , 5e+01, 1.0, 1e+02, 1.0
459 		break;
460 	// static const value_pair fslider4_values[] = {{"plain"},{"presence"},{"tape"},{"tape2"},{0}};
461 	case MODE:
462 		fslider4_ = (float*)data; // , 0.0, 0.0, 3.0, 1.0
463 		break;
464 	// static const value_pair fslider5_values[] = {{"Dotted 1/2 note"},{"1/2 note"},{"1/2 note triplets"},{" Dotted 1/4 note"},{"1/4 note"},{"1/4 note triplets"},{"Dotted 1/8 note"},{"1/8 note"},{"1/8 note triplets"},{" Dotted 1/16 note"},{"1/16 note"},{"1/16 note triplets"},{"Dotted 1/32 note"},{"1/32 note"},{"1/32 note triplets"},{" Dotted 1/64 note"},{"1/64 note"},{"1/64 note triplets"},{0}};
465 	case NOTES:
466 		fslider5_ = (float*)data; // , 5.0, 1.0, 18.0, 1.0
467 		break;
468 	case SYNC:
469 		fcheckbox0_ = (float*)data; // , 0.0, 0.0, 1.0, 1.0
470 		break;
471 	case HOSTBPM:
472 		fslider8_ = (float*)data; // , 1.2e+02, 24.0, 3.6e+02, 1.0
473 		break;
474 	default:
475 		break;
476 	}
477 }
478 
connect_static(uint32_t port,void * data,PluginLV2 * p)479 void Dsp::connect_static(uint32_t port,void* data, PluginLV2 *p)
480 {
481 	static_cast<Dsp*>(p)->connect(port, data);
482 }
483 
484 
plugin()485 PluginLV2 *plugin() {
486 	return new Dsp();
487 }
488 
del_instance(PluginLV2 * p)489 void Dsp::del_instance(PluginLV2 *p)
490 {
491 	delete static_cast<Dsp*>(p);
492 }
493 
494 /*
495 typedef enum
496 {
497    BPM,
498    FEEDBACK,
499    GAIN,
500    HIGHPASS,
501    HOWPASS,
502    LEVEL,
503    MODE,
504    NOTES,
505 } PortIndex;
506 */
507 
508 } // end namespace digital_delay
509