7 DrumSequencer::DrumSequencer(
ParamMap& param_)
26 name =
N_(
"DrumSequencer");
44 inline void DrumSequencer::clear_state_f()
46 for (
int i=0; i<2; i++) iVec0[i] = 0;
47 for (
int i=0; i<2; i++) fRec0[i] = 0;
48 for (
int i=0; i<2; i++) fVec1[i] = 0;
49 for (
int i=0; i<2; i++) fRec3[i] = 0;
50 for (
int i=0; i<2; i++) iRec1[i] = 0;
51 for (
int i=0; i<2; i++) fRec2[i] = 0;
52 for (
int i=0; i<2; i++) fRec4[i] = 0;
53 for (
int i=0; i<2; i++) fRec5[i] = 0;
54 for (
int i=0; i<2; i++) fVec2[i] = 0;
55 for (
int i=0; i<2; i++) iRec6[i] = 0;
56 for (
int i=0; i<2; i++) fRec7[i] = 0;
57 for (
int i=0; i<2; i++) fRec8[i] = 0;
58 for (
int i=0; i<2; i++) fRec9[i] = 0;
59 for (
int i=0; i<2; i++) iRec12[i] = 0;
60 for (
int i=0; i<2; i++) fRec11[i] = 0;
61 for (
int i=0; i<3; i++) fRec10[i] = 0;
62 for (
int i=0; i<2; i++) iRec13[i] = 0;
63 for (
int i=0; i<2; i++) fRec14[i] = 0;
64 for (
int i=0; i<2; i++) fRec16[i] = 0;
65 for (
int i=0; i<3; i++) fRec15[i] = 0;
66 for (
int i=0; i<2; i++) iRec17[i] = 0;
67 for (
int i=0; i<2; i++) fRec18[i] = 0;
68 for (
int i=0; i<2; i++) fRec19[i] = 0;
69 for (
int i=0; i<2; i++) fVec3[i] = 0;
70 for (
int i=0; i<2; i++) fRec20[i] = 0;
71 for (
int i=0; i<2; i++) fRec25[i] = 0;
72 for (
int i=0; i<2; i++) fVec4[i] = 0;
73 for (
int i=0; i<64; i++) fVec5[i] = 0;
74 for (
int i=0; i<2; i++) fRec26[i] = 0;
75 for (
int i=0; i<2; i++) fRec27[i] = 0;
76 for (
int i=0; i<2; i++) fRec23[i] = 0;
77 for (
int i=0; i<2; i++) fRec24[i] = 0;
78 for (
int i=0; i<2; i++) fRec30[i] = 0;
79 for (
int i=0; i<2; i++) fRec31[i] = 0;
80 for (
int i=0; i<2; i++) fRec28[i] = 0;
81 for (
int i=0; i<2; i++) fRec29[i] = 0;
82 for (
int i=0; i<2; i++) fRec34[i] = 0;
83 for (
int i=0; i<2; i++) fRec35[i] = 0;
84 for (
int i=0; i<2; i++) fRec32[i] = 0;
85 for (
int i=0; i<2; i++) fRec33[i] = 0;
86 for (
int i=0; i<2; i++) fRec38[i] = 0;
87 for (
int i=0; i<2; i++) fRec39[i] = 0;
88 for (
int i=0; i<2; i++) fRec36[i] = 0;
89 for (
int i=0; i<2; i++) fRec37[i] = 0;
90 for (
int i=0; i<2; i++) fVec6[i] = 0;
91 for (
int i=0; i<2; i++) fRec22[i] = 0;
92 for (
int i=0; i<3; i++) fRec21[i] = 0;
93 for (
int i=0; i<2; i++) fRec42[i] = 0;
94 for (
int i=0; i<2; i++) iRec40[i] = 0;
95 for (
int i=0; i<2; i++) fRec41[i] = 0;
96 for (
int i=0; i<3; i++) fRec43[i] = 0;
97 for (
int i=0; i<2; i++) fRec44[i] = 0;
98 for (
int i=0; i<2; i++) fVec7[i] = 0;
99 for (
int i=0; i<2; i++) fRec45[i] = 0;
100 for (
int i=0; i<2; i++) fRec49[i] = 0;
101 for (
int i=0; i<3; i++) fRec48[i] = 0;
102 for (
int i=0; i<2; i++) fVec8[i] = 0;
103 for (
int i=0; i<2; i++) fRec47[i] = 0;
104 for (
int i=0; i<3; i++) fRec46[i] = 0;
105 for (
int i=0; i<2; i++) fRec52[i] = 0;
106 for (
int i=0; i<2; i++) iRec50[i] = 0;
107 for (
int i=0; i<2; i++) fRec51[i] = 0;
108 for (
int i=0; i<2; i++) fRec57[i] = 0;
109 for (
int i=0; i<2; i++) fRec58[i] = 0;
110 for (
int i=0; i<2; i++) fRec59[i] = 0;
111 for (
int i=0; i<2; i++) fRec55[i] = 0;
112 for (
int i=0; i<2; i++) fRec56[i] = 0;
113 for (
int i=0; i<2; i++) fRec54[i] = 0;
114 for (
int i=0; i<3; i++) fRec53[i] = 0;
115 for (
int i=0; i<2; i++) fRec62[i] = 0;
116 for (
int i=0; i<2; i++) iRec60[i] = 0;
117 for (
int i=0; i<2; i++) fRec61[i] = 0;
118 for (
int i=0; i<2; i++) fRec63[i] = 0;
119 for (
int i=0; i<2; i++) fVec9[i] = 0;
120 for (
int i=0; i<2; i++) fRec66[i] = 0;
121 for (
int i=0; i<2; i++) iRec64[i] = 0;
122 for (
int i=0; i<2; i++) fRec65[i] = 0;
123 for (
int i=0; i<2; i++) fRec67[i] = 0;
124 for (
int i=0; i<2; i++) fRec68[i] = 0;
125 for (
int i=0; i<2; i++) fRec69[i] = 0;
126 for (
int i=0; i<2; i++) fRec70[i] = 0;
127 for (
int i=0; i<2; i++) fRec73[i] = 0;
128 for (
int i=0; i<2; i++) fRec74[i] = 0;
129 for (
int i=0; i<2; i++) fRec75[i] = 0;
130 for (
int i=0; i<2; i++) fVec10[i] = 0;
131 for (
int i=0; i<2; i++) fRec71[i] = 0;
132 for (
int i=0; i<2; i++) fRec72[i] = 0;
133 for (
int i=0; i<2; i++) iRec76[i] = 0;
134 for (
int i=0; i<2; i++) fRec77[i] = 0;
135 for (
int i=0; i<2; i++) fRecout[i] = 0;
136 seq_size = min_seq_size();
139 void DrumSequencer::clear_state_f_static(
PluginDef *p)
144 int DrumSequencer::min_seq_size(){
145 int i =
min(
min(Vectom.size(),Veckick.size()),
min(Vechat.size(),Vecsnare.size()));
149 void DrumSequencer::reset_tom() {
151 seq_size = min_seq_size();
154 void DrumSequencer::reset_kick() {
156 seq_size = min_seq_size();
159 void DrumSequencer::reset_hat() {
161 seq_size = min_seq_size();
164 void DrumSequencer::reset_snare() {
166 seq_size = min_seq_size();
169 inline void DrumSequencer::init(
unsigned int samplingFreq)
171 fSamplingFreq = samplingFreq;
172 iConst0 =
min(192000,
max(1, fSamplingFreq));
173 fConst1 = double(iConst0);
174 fConst2 = (1.0 / double(
int((0.0005 * fConst1))));
175 fConst3 = (1 - (1.0 / pow(1e+03,(13.333333333333334 /
double(iConst0)))));
176 fConst4 = (2e+03 / double(iConst0));
177 fConst5 = (1162.3892818282234 / double(iConst0));
178 fConst6 = cos(fConst5);
179 fConst7 = sin(fConst5);
180 fConst8 = (0 - fConst7);
181 fConst9 = (1 - (1.0 / pow(1e+03,(18.181818181818183 /
double(iConst0)))));
182 fConst10 = (2073.4511513692632 / double(iConst0));
183 fConst11 = cos(fConst10);
184 fConst12 = sin(fConst10);
185 fConst13 = (0 - fConst12);
186 fConst14 = tan((22116.812281272145 /
double(iConst0)));
187 fConst15 = (2 * (1 - (1.0 / faustpower<2>(fConst14))));
188 fConst16 = (1.0 / fConst14);
189 fConst17 = (1 + ((fConst16 - 1.0000000000000004) / fConst14));
190 fConst18 = (1.0 / (1 + ((1.0000000000000004 + fConst16) / fConst14)));
191 fConst19 = (1 + fConst16);
192 fConst20 = (4.656612875245797e-10 / fConst19);
193 fConst21 = (0 - ((1 - fConst16) / fConst19));
194 fConst22 = (1 - (1.0 / pow(1e+03,(5.0 /
double(iConst0)))));
195 fConst23 = tan((1643.0529578274618 /
double(iConst0)));
196 fConst24 = (1.0 / faustpower<2>(fConst23));
197 fConst25 = (2 * (1 - fConst24));
198 fConst26 = (1.0 / fConst23);
199 fConst27 = (1 + ((fConst26 - 1.0000000000000004) / fConst23));
200 fConst28 = (1.0 / (1 + ((1.0000000000000004 + fConst26) / fConst23)));
201 fConst29 = (0 - fConst26);
202 fConst30 = (1 + fConst26);
203 fConst31 = (4.656612875245797e-10 / fConst30);
204 fConst32 = (0 - ((1 - fConst26) / fConst30));
205 fConst33 = (2 * (0 - fConst24));
206 fConst34 = (1 - (1.0 / pow(1e+03,(5.46448087431694 /
double(iConst0)))));
207 fConst35 = (1.0 / double(
int((0.1 * fConst1))));
208 fConst36 = (3.141592653589793 / double(iConst0));
209 fConst37 = (1.6e+03 / fConst1);
211 fConst38 =
max((
double)0,
min((
double)2047, (0.0003125 * fConst1)));
212 iConst39 = int(fConst38);
213 iConst40 = (1 + iConst39);
214 iConst41 = int(iConst40);
215 fConst42 = (0.00015625 * (fConst38 - iConst39));
216 fConst43 = (0.00015625 * (iConst40 - fConst38));
217 fConst44 = (4.572399611740729 / double(iConst0));
218 fConst45 = cos(fConst44);
219 fConst46 = sin(fConst44);
220 fConst47 = (0 - fConst46);
221 fConst48 = (0.72772 * fConst1);
222 fConst49 = (6.283185307179586 / double(iConst0));
223 fConst50 = (20.327952464404543 / double(iConst0));
224 fConst51 = cos(fConst50);
225 fConst52 = sin(fConst50);
226 fConst53 = (0 - fConst52);
227 fConst54 = (3.235294117647059 * fConst1);
228 fConst55 = (326.7256359733385 / double(iConst0));
229 fConst56 = cos(fConst55);
230 fConst57 = sin(fConst55);
231 fConst58 = (0 - fConst57);
232 fConst59 = (52.0 * fConst1);
233 fConst60 = (1498.2980347889782 / double(iConst0));
234 fConst61 = cos(fConst60);
235 fConst62 = sin(fConst60);
236 fConst63 = (0 - fConst62);
237 fConst64 = (238.46153846153845 * fConst1);
238 fConst65 = (1.0 / double(
int((0.005 * fConst1))));
239 fConst66 = (1 - (1.0 / pow(1e+03,(1e+01 /
double(iConst0)))));
240 fConst67 = (2e+02 / double(iConst0));
241 fConst68 = (1.0 / double(iConst0));
242 fConst69 = (2.0 / double(iConst0));
243 fConst70 = (1.0 / double(
int((0.03 * fConst1))));
244 fConst71 = tan((1570.7963267948965 /
double(iConst0)));
245 fConst72 = (1.0 / faustpower<2>(fConst71));
246 fConst73 = (2 * (1 - fConst72));
247 fConst74 = (1.0 / fConst71);
248 fConst75 = (1 + ((fConst74 - 1.0000000000000004) / fConst71));
249 fConst76 = (1.0 / (1 + ((1.0000000000000004 + fConst74) / fConst71)));
250 fConst77 = (0 - fConst74);
251 fConst78 = (1 + fConst74);
252 fConst79 = (1.396983862573739e-11 / fConst78);
253 fConst80 = (0 - ((1 - fConst74) / fConst78));
254 fConst81 = (2 * (0 - fConst72));
255 fConst82 = (1.0 / double(
int((0.01 * fConst1))));
256 fConst83 = (1 - (1.0 / pow(1e+03,fConst68)));
257 fConst84 = (1e+02 / double(iConst0));
258 fConst85 = tan((3141.592653589793 /
double(iConst0)));
259 fConst86 = (2 * (1 - (1.0 / faustpower<2>(fConst85))));
260 fConst87 = (1.0 / fConst85);
261 fConst88 = (1 + ((fConst87 - 1.0000000000000004) / fConst85));
262 fConst89 = (1.0 / (1 + ((1.0000000000000004 + fConst87) / fConst85)));
263 fConst90 = (31.41592653589793 / double(iConst0));
264 fConst91 = cos(fConst90);
265 fConst92 = sin(fConst90);
266 fConst93 = (0 - fConst92);
267 fConst94 = (1.0 / double(
int((0.02 * fConst1))));
268 fConst95 = (1 + fConst87);
269 fConst96 = (1.0 / fConst95);
270 fConst97 = (0 - ((1 - fConst87) / fConst95));
271 fConst98 = (1 - (1.0 / pow(1e+03,(2.5 /
double(iConst0)))));
272 fConst99 = (1 - (1.0 / pow(1e+03,fConst84)));
273 fConst100 = (565.4866776461628 / double(iConst0));
274 fConst101 = cos(fConst100);
275 fConst102 = sin(fConst100);
276 fConst103 = (0 - fConst102);
277 fConst104 = (452.3893421169302 / double(iConst0));
278 fConst105 = cos(fConst104);
279 fConst106 = sin(fConst104);
280 fConst107 = (0 - fConst106);
281 fConst108 = (480.66367599923836 / double(iConst0));
282 fConst109 = cos(fConst108);
283 fConst110 = sin(fConst108);
284 fConst111 = (0 - fConst110);
285 fConst112 = (0.012345679012345678 * fConst1);
286 fConst113 = (162.0 / fConst1);
287 fConst114 = (0.012345679012345678 * iConst0);
298 void DrumSequencer::init_static(
unsigned int samplingFreq,
PluginDef *p)
305 double fSlow15 = (60/double(fsliderbpm*ftact))*fSamplingFreq;
306 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 *
double(fslidersnare))));
307 double fSlow2 = (0.0010000000000000009 * pow(10,(0.05 *
double(fsliderhat))));
308 double fSlow4 = (0.0010000000000000009 * pow(10,(0.05 *
double(fsliderkick))));
309 double fSlow6 = (0.0010000000000000009 * pow(10,(0.05 *
double(fslidertom))));
310 double fSlowgain = (0.0010000000000000009 * pow(10,(0.05 *
double(fslidergain))));
311 counter = counter+count;
312 if (counter >= (
int)fSlow15) {
313 fSlow1 = double(Vecsnare[step]);
314 if ((
int)fSlow15 > 4800) {
315 fSlow3 = double(Vechat[step]);
317 fSlow5 = double(Veckick[step]);
318 fSlow7 = double(Vectom[step]);
320 if (step<seq_size) step = step+1;
322 double ph1 = 2300.0/seq_size;
323 position = fmin(2300,fmax(0,
double(step*ph1)));
331 for (
int i=0; i<count; i++) {
332 fRecout[0] = ((0.999 * fRecout[1]) + fSlowgain);
334 fRec0[0] = ((0.999 * fRec0[1]) + fSlow0);
336 fRec3[0] = ((fRec3[1] + (fSlow1 > fVec1[1])) - (fConst2 * (fRec3[1] > 0.0)));
337 int iTemp0 = (fRec3[0] > 0.0);
338 int iTemp1 = (iTemp0 > 0);
339 iRec1[0] = (iTemp1 & (iRec1[1] | (fRec2[1] >= 1)));
340 int iTemp2 = (iTemp0 <= 0);
341 int iTemp3 = (iTemp2 & (fRec2[1] > 0));
342 fRec2[0] = (((fConst4 * (((iRec1[1] == 0) & iTemp1) & (fRec2[1] < 1))) + (fRec2[1] * (1 - (fConst3 * iTemp3)))) * ((iTemp3 == 0) | (fRec2[1] >= 1e-06)));
343 fRec4[0] = ((fConst7 * fRec5[1]) + (fConst6 * fRec4[1]));
344 fRec5[0] = ((1 + ((fConst6 * fRec5[1]) + (fConst8 * fRec4[1]))) - iVec0[1]);
346 iRec6[0] = (iTemp1 & (iRec6[1] | (fRec7[1] >= 1)));
347 int iTemp4 = (iTemp2 & (fRec7[1] > 0));
348 fRec7[0] = (((fConst4 * (((iRec6[1] == 0) & iTemp1) & (fRec7[1] < 1))) + (fRec7[1] * (1 - (fConst9 * iTemp4)))) * ((iTemp4 == 0) | (fRec7[1] >= 1e-06)));
349 fRec8[0] = ((fConst12 * fRec9[1]) + (fConst11 * fRec8[1]));
350 fRec9[0] = ((1 + ((fConst11 * fRec9[1]) + (fConst13 * fRec8[1]))) - iVec0[1]);
351 iRec12[0] = (12345 + (1103515245 * iRec12[1]));
352 fRec11[0] = ((fConst21 * fRec11[1]) + (fConst20 * (iRec12[0] + iRec12[1])));
353 fRec10[0] = (fRec11[0] - (fConst18 * ((fConst17 * fRec10[2]) + (fConst15 * fRec10[1]))));
354 iRec13[0] = (iTemp1 & (iRec13[1] | (fRec14[1] >= 1)));
355 int iTemp5 = (iTemp2 & (fRec14[1] > 0));
356 fRec14[0] = (((fConst4 * (((iRec13[1] == 0) & iTemp1) & (fRec14[1] < 1))) + (fRec14[1] * (1 - (fConst22 * iTemp5)))) * ((iTemp5 == 0) | (fRec14[1] >= 1e-06)));
357 fRec16[0] = ((fConst32 * fRec16[1]) + (fConst31 * ((fConst26 * iRec12[0]) + (fConst29 * iRec12[1]))));
358 fRec15[0] = (fRec16[0] - (fConst28 * ((fConst27 * fRec15[2]) + (fConst25 * fRec15[1]))));
359 iRec17[0] = (iTemp1 & (iRec17[1] | (fRec18[1] >= 1)));
360 int iTemp6 = (iTemp2 & (fRec18[1] > 0));
361 fRec18[0] = (((fConst4 * (((iRec17[1] == 0) & iTemp1) & (fRec18[1] < 1))) + (fRec18[1] * (1 - (fConst34 * iTemp6)))) * ((iTemp6 == 0) | (fRec18[1] >= 1e-06)));
362 fRec19[0] = ((0.999 * fRec19[1]) + fSlow2);
364 int iTemp7 = (fSlow3 > fVec3[1]);
365 fRec20[0] = ((fRec20[1] + iTemp7) - (fConst35 * (fRec20[1] > 0.0)));
366 double fTemp8 = tan((fConst36 * (12000 - (3000 * fRec20[0]))));
367 double fTemp9 = (1.0 / fTemp8);
368 double fTemp10 = (1 + ((1.0000000000000004 + fTemp9) / fTemp8));
369 double fTemp11 = faustpower<2>(fTemp8);
370 double fTemp12 = (1.0 / fTemp11);
371 double fTemp13 = (1 + fTemp9);
372 fRec25[0] = fmod((fConst37 + fRec25[1]),1);
373 double fTemp14 = faustpower<2>(((2 * fRec25[0]) - 1));
375 double fTemp15 = (iVec0[1] * (fVec4[0] - fVec4[1]));
376 fVec5[IOTA&63] = fTemp15;
377 double fTemp16 = (((0.00015625 * fVec5[IOTA&63]) - (fConst43 * fVec5[(IOTA-iConst39)&63])) - (fConst42 * fVec5[(IOTA-iConst41)&63]));
378 fRec26[0] = ((fConst46 * fRec27[1]) + (fConst45 * fRec26[1]));
379 fRec27[0] = ((1 + ((fConst45 * fRec27[1]) + (fConst47 * fRec26[1]))) - iVec0[1]);
380 double fTemp17 = (fConst49 * (2094.4 + (fConst48 * (fRec26[0] * fTemp16))));
381 double fTemp18 = cos(fTemp17);
382 double fTemp19 = sin(fTemp17);
383 fRec23[0] = ((fRec24[1] * fTemp19) + (fRec23[1] * fTemp18));
384 fRec24[0] = ((1 + ((fRec24[1] * fTemp18) + (fRec23[1] * (0 - fTemp19)))) - iVec0[1]);
385 fRec30[0] = ((fConst52 * fRec31[1]) + (fConst51 * fRec30[1]));
386 fRec31[0] = ((1 + ((fConst51 * fRec31[1]) + (fConst53 * fRec30[1]))) - iVec0[1]);
387 double fTemp20 = (fConst49 * (4944.0 + (fConst54 * (fRec30[0] * fTemp16))));
388 double fTemp21 = cos(fTemp20);
389 double fTemp22 = sin(fTemp20);
390 fRec28[0] = ((fRec29[1] * fTemp22) + (fRec28[1] * fTemp21));
391 fRec29[0] = ((1 + ((fRec29[1] * fTemp21) + (fRec28[1] * (0 - fTemp22)))) - iVec0[1]);
392 fRec34[0] = ((fConst57 * fRec35[1]) + (fConst56 * fRec34[1]));
393 fRec35[0] = ((1 + ((fConst56 * fRec35[1]) + (fConst58 * fRec34[1]))) - iVec0[1]);
394 double fTemp23 = (fConst49 * (3847.9999999999995 + (fConst59 * (fRec34[0] * fTemp16))));
395 double fTemp24 = cos(fTemp23);
396 double fTemp25 = sin(fTemp23);
397 fRec32[0] = ((fRec33[1] * fTemp25) + (fRec32[1] * fTemp24));
398 fRec33[0] = ((1 + ((fRec33[1] * fTemp24) + (fRec32[1] * (0 - fTemp25)))) - iVec0[1]);
399 fRec38[0] = ((fConst62 * fRec39[1]) + (fConst61 * fRec38[1]));
400 fRec39[0] = ((1 + ((fConst61 * fRec39[1]) + (fConst63 * fRec38[1]))) - iVec0[1]);
401 double fTemp26 = (fConst49 * (2144.0 + (fConst64 * (fRec38[0] * fTemp16))));
402 double fTemp27 = cos(fTemp26);
403 double fTemp28 = sin(fTemp26);
404 fRec36[0] = ((fRec37[1] * fTemp28) + (fRec36[1] * fTemp27));
405 fRec37[0] = ((1 + ((fRec37[1] * fTemp27) + (fRec36[1] * (0 - fTemp28)))) - iVec0[1]);
406 double fTemp29 = (((fRec36[0] + fRec32[0]) + fRec28[0]) + fRec23[0]);
408 fRec22[0] = ((fRec22[1] * (0 - ((1 - fTemp9) / fTemp13))) + (((fVec6[1] * (0 - fTemp9)) + (fVec6[0] / fTemp8)) / fTemp13));
409 fRec21[0] = (fRec22[0] - (((fRec21[2] * (1 + ((fTemp9 - 1.0000000000000004) / fTemp8))) + (2 * (fRec21[1] * (1 - fTemp12)))) / fTemp10));
410 fRec42[0] = ((iTemp7 + fRec42[1]) - (fConst65 * (fRec42[1] > 0.0)));
411 int iTemp30 = (fRec42[0] > 0.0);
412 int iTemp31 = (iTemp30 > 0);
413 iRec40[0] = (iTemp31 & (iRec40[1] | (fRec41[1] >= 1)));
414 int iTemp32 = ((iTemp30 <= 0) & (fRec41[1] > 0));
415 fRec41[0] = (((fConst67 * (((iRec40[1] == 0) & iTemp31) & (fRec41[1] < 1))) + (fRec41[1] * (1 - (fConst66 * iTemp32)))) * ((iTemp32 == 0) | (fRec41[1] >= 1e-06)));
416 double fTemp33 = (9000 + (6000 * fRec20[0]));
417 double fTemp34 = (0 - (3.141592653589793 * fTemp33));
418 fRec43[0] = (0 - ((((fRec43[1] * (0 - (fConst69 * fTemp34))) * cos((fConst49 * fTemp33))) + (faustpower<2>((fConst68 * fTemp34)) * fRec43[2])) - fVec6[0]));
419 fRec44[0] = ((0.999 * fRec44[1]) + fSlow4);
421 int iTemp35 = (fSlow5 > fVec7[1]);
422 fRec45[0] = ((iTemp35 + fRec45[1]) - (fConst70 * (fRec45[1] > 0.0)));
423 double fTemp36 = tan((fConst36 * (500 + (5500 * fRec45[0]))));
424 double fTemp37 = (1.0 / fTemp36);
425 double fTemp38 = (1 + ((1.0000000000000004 + fTemp37) / fTemp36));
426 double fTemp39 = (1 + fTemp37);
427 fRec49[0] = ((fConst80 * fRec49[1]) + (fConst79 * ((fConst74 * iRec12[0]) + (fConst77 * iRec12[1]))));
428 fRec48[0] = (fRec49[0] - (fConst76 * ((fConst75 * fRec48[2]) + (fConst73 * fRec48[1]))));
429 double fTemp40 = (((fConst72 * fRec48[0]) + (fConst81 * fRec48[1])) + (fConst72 * fRec48[2]));
431 fRec47[0] = ((fRec47[1] * (0 - ((1 - fTemp37) / fTemp39))) + (fConst76 * ((fVec8[0] + fVec8[1]) / fTemp39)));
432 fRec46[0] = (fRec47[0] - (((fRec46[2] * (1 + ((fTemp37 - 1.0000000000000004) / fTemp36))) + (2 * (fRec46[1] * (1 - (1.0 / faustpower<2>(fTemp36)))))) / fTemp38));
433 fRec52[0] = ((iTemp35 + fRec52[1]) - (fConst82 * (fRec52[1] > 0.0)));
434 int iTemp41 = (fRec52[0] > 0.0);
435 int iTemp42 = (iTemp41 > 0);
436 iRec50[0] = (iTemp42 & (iRec50[1] | (fRec51[1] >= 1)));
437 int iTemp43 = ((iTemp41 <= 0) & (fRec51[1] > 0));
438 fRec51[0] = (((fConst84 * (((iRec50[1] == 0) & iTemp42) & (fRec51[1] < 1))) + (fRec51[1] * (1 - (fConst83 * iTemp43)))) * ((iTemp43 == 0) | (fRec51[1] >= 1e-06)));
439 fRec57[0] = ((fConst92 * fRec58[1]) + (fConst91 * fRec57[1]));
440 fRec58[0] = ((1 + ((fConst91 * fRec58[1]) + (fConst93 * fRec57[1]))) - iVec0[1]);
441 fRec59[0] = ((fRec59[1] + iTemp35) - (fConst94 * (fRec59[1] > 0.0)));
442 double fTemp44 = (fConst49 * ((50 * (1 + fRec59[0])) + (19.23076923076923 * fRec57[0])));
443 double fTemp45 = cos(fTemp44);
444 double fTemp46 = sin(fTemp44);
445 fRec55[0] = ((fRec56[1] * fTemp46) + (fRec55[1] * fTemp45));
446 fRec56[0] = ((1 + ((fRec56[1] * fTemp45) + (fRec55[1] * (0 - fTemp46)))) - iVec0[1]);
447 fRec54[0] = ((fConst97 * fRec54[1]) + (fConst96 * (fRec55[0] + fRec55[1])));
448 fRec53[0] = (fRec54[0] - (fConst89 * ((fConst88 * fRec53[2]) + (fConst86 * fRec53[1]))));
449 fRec62[0] = ((iTemp35 + fRec62[1]) - (fConst65 * (fRec62[1] > 0.0)));
450 int iTemp47 = (fRec62[0] > 0.0);
451 int iTemp48 = (iTemp47 > 0);
452 iRec60[0] = (iTemp48 & (iRec60[1] | (fRec61[1] >= 1)));
453 int iTemp49 = ((iTemp47 <= 0) & (fRec61[1] > 0));
454 fRec61[0] = (((fConst67 * (((iRec60[1] == 0) & iTemp48) & (fRec61[1] < 1))) + (fRec61[1] * (1 - (fConst98 * iTemp49)))) * ((iTemp49 == 0) | (fRec61[1] >= 1e-06)));
455 fRec63[0] = ((0.999 * fRec63[1]) + fSlow6);
457 fRec66[0] = ((fRec66[1] + (fSlow7 > fVec9[1])) - (fConst65 * (fRec66[1] > 0.0)));
458 int iTemp50 = (fRec66[0] > 0.0);
459 int iTemp51 = (iTemp50 > 0);
460 iRec64[0] = (iTemp51 & (iRec64[1] | (fRec65[1] >= 1)));
461 int iTemp52 = (iTemp50 <= 0);
462 int iTemp53 = (iTemp52 & (fRec65[1] > 0));
463 fRec65[0] = (((fConst67 * (((iRec64[1] == 0) & iTemp51) & (fRec65[1] < 1))) + (fRec65[1] * (1 - (fConst99 * iTemp53)))) * ((iTemp53 == 0) | (fRec65[1] >= 1e-06)));
464 fRec67[0] = ((fConst102 * fRec68[1]) + (fConst101 * fRec67[1]));
465 fRec68[0] = ((1 + ((fConst101 * fRec68[1]) + (fConst103 * fRec67[1]))) - iVec0[1]);
466 fRec69[0] = ((fConst106 * fRec70[1]) + (fConst105 * fRec69[1]));
467 fRec70[0] = ((1 + ((fConst105 * fRec70[1]) + (fConst107 * fRec69[1]))) - iVec0[1]);
468 fRec73[0] = ((fConst110 * fRec74[1]) + (fConst109 * fRec73[1]));
469 fRec74[0] = ((1 + ((fConst109 * fRec74[1]) + (fConst111 * fRec73[1]))) - iVec0[1]);
470 fRec75[0] = fmod((1.0 + fRec75[1]),fConst112);
471 double fTemp54 = faustpower<2>(((fConst113 * fRec75[0]) - 1.0));
473 double fTemp55 = (fConst49 * ((fConst114 * (fVec2[1] * (fVec10[0] - fVec10[1]))) + (58.84615384615384 * fRec73[0])));
474 double fTemp56 = cos(fTemp55);
475 double fTemp57 = sin(fTemp55);
476 fRec71[0] = ((fRec72[1] * fTemp57) + (fRec71[1] * fTemp56));
477 fRec72[0] = ((1 + ((fRec72[1] * fTemp56) + (fRec71[1] * (0 - fTemp57)))) - iVec0[1]);
478 iRec76[0] = (iTemp51 & (iRec76[1] | (fRec77[1] >= 1)));
479 int iTemp58 = (iTemp52 & (fRec77[1] > 0));
480 fRec77[0] = (((fConst67 * (((iRec76[1] == 0) & iTemp51) & (fRec77[1] < 1))) + (fRec77[1] * (1 - (fConst98 * iTemp58)))) * ((iTemp58 == 0) | (fRec77[1] >= 1e-06)));
481 output0[i] = (
FAUSTFLOAT)((
double)input0[i] + ((2 * ((((0.25 * (fRec77[0] * ((5 * fRec71[0]) + (0.5 * (fRec69[0] + fRec67[0]))))) + (3 * fRec65[0])) * fRec63[0]) + (((((fConst89 * (fRec61[0] * (fRec53[2] + (fRec53[0] + (2 * fRec53[1]))))) + ((fRec51[0] * (fRec46[2] + (fRec46[0] + (2 * fRec46[1])))) / fTemp38)) * fRec44[0]) + (0.5 * (((fRec41[0] * (fRec43[0] - fRec43[2])) + ((sqrt(fRec41[0]) * (((fRec21[0] / fTemp11) + (2 * (fRec21[1] * (0 - fTemp12)))) + (fRec21[2] / fTemp11))) / fTemp10)) * fRec19[0]))) + (0.1 * (((fConst28 * (fRec18[0] * (((fConst24 * fRec15[0]) + (fConst33 * fRec15[1])) + (fConst24 * fRec15[2])))) + ((fConst18 * (fRec14[0] * (fRec10[2] + (fRec10[0] + (2 * fRec10[1]))))) + ((5.0 * ((0.25 + fRec8[0]) * fRec7[0])) + (5.0 * ((0.25 + fRec4[0]) * fRec2[0]))))) * fRec0[0]))))) * fRecout[0]));
483 fRec77[1] = fRec77[0];
484 iRec76[1] = iRec76[0];
485 fRec72[1] = fRec72[0];
486 fRec71[1] = fRec71[0];
487 fVec10[1] = fVec10[0];
488 fRec75[1] = fRec75[0];
489 fRec74[1] = fRec74[0];
490 fRec73[1] = fRec73[0];
491 fRec70[1] = fRec70[0];
492 fRec69[1] = fRec69[0];
493 fRec68[1] = fRec68[0];
494 fRec67[1] = fRec67[0];
495 fRec65[1] = fRec65[0];
496 iRec64[1] = iRec64[0];
497 fRec66[1] = fRec66[0];
499 fRec63[1] = fRec63[0];
500 fRec61[1] = fRec61[0];
501 iRec60[1] = iRec60[0];
502 fRec62[1] = fRec62[0];
503 fRec53[2] = fRec53[1]; fRec53[1] = fRec53[0];
504 fRec54[1] = fRec54[0];
505 fRec56[1] = fRec56[0];
506 fRec55[1] = fRec55[0];
507 fRec59[1] = fRec59[0];
508 fRec58[1] = fRec58[0];
509 fRec57[1] = fRec57[0];
510 fRec51[1] = fRec51[0];
511 iRec50[1] = iRec50[0];
512 fRec52[1] = fRec52[0];
513 fRec46[2] = fRec46[1]; fRec46[1] = fRec46[0];
514 fRec47[1] = fRec47[0];
516 fRec48[2] = fRec48[1]; fRec48[1] = fRec48[0];
517 fRec49[1] = fRec49[0];
518 fRec45[1] = fRec45[0];
520 fRec44[1] = fRec44[0];
521 fRec43[2] = fRec43[1]; fRec43[1] = fRec43[0];
522 fRec41[1] = fRec41[0];
523 iRec40[1] = iRec40[0];
524 fRec42[1] = fRec42[0];
525 fRec21[2] = fRec21[1]; fRec21[1] = fRec21[0];
526 fRec22[1] = fRec22[0];
528 fRec37[1] = fRec37[0];
529 fRec36[1] = fRec36[0];
530 fRec39[1] = fRec39[0];
531 fRec38[1] = fRec38[0];
532 fRec33[1] = fRec33[0];
533 fRec32[1] = fRec32[0];
534 fRec35[1] = fRec35[0];
535 fRec34[1] = fRec34[0];
536 fRec29[1] = fRec29[0];
537 fRec28[1] = fRec28[0];
538 fRec31[1] = fRec31[0];
539 fRec30[1] = fRec30[0];
540 fRec24[1] = fRec24[0];
541 fRec23[1] = fRec23[0];
542 fRec27[1] = fRec27[0];
543 fRec26[1] = fRec26[0];
546 fRec25[1] = fRec25[0];
547 fRec20[1] = fRec20[0];
549 fRec19[1] = fRec19[0];
550 fRec18[1] = fRec18[0];
551 iRec17[1] = iRec17[0];
552 fRec15[2] = fRec15[1]; fRec15[1] = fRec15[0];
553 fRec16[1] = fRec16[0];
554 fRec14[1] = fRec14[0];
555 iRec13[1] = iRec13[0];
556 fRec10[2] = fRec10[1]; fRec10[1] = fRec10[0];
557 fRec11[1] = fRec11[0];
558 iRec12[1] = iRec12[0];
571 fRecout[1] = fRecout[0];
578 static_cast<DrumSequencer*
>(p)->compute(count, input0, output0);
581 int DrumSequencer::register_par(
const ParamReg& reg)
583 reg.
registerVar(
"seq.bpm",
"",
"S",
N_(
"Beats per Minute"),&fsliderbpm, 120, 24, 360, 1);
584 reg.
registerVar(
"seq.hat_closed.dsp.Gain",
"",
"S",
N_(
"Volume level in decibels"),&fsliderhat, -2e+01, -6e+01, 4e+01, 0.1);
585 reg.
registerVar(
"seq.kick.dsp.Gain",
"",
"S",
N_(
"Volume level in decibels"),&fsliderkick, -2e+01, -6e+01, 4e+01, 0.1);
586 reg.
registerVar(
"seq.snare.dsp.Gain",
"",
"S",
N_(
"Volume level in decibels"),&fslidersnare, -2e+01, -6e+01, 4e+01, 0.1);
587 reg.
registerVar(
"seq.tom.dsp.Gain",
"",
"S",
N_(
"Volume level in decibels"),&fslidertom, -2e+01, -6e+01, 4e+01, 0.1);
588 static const value_pair ftact_values[] = {{
"1/4"},{
"2/4"},{
"3/4"},{
"4/4"},{0}};
589 reg.
registerEnumVar(
"seq.tact",
"",
"S",
N_(
"select tact"),ftact_values,&ftact, 4.0, 1.0, 4.0, 1.0);
590 reg.
registerVar(
"seq.asequences",
"",
"S",
N_(
"Number of Sequences"),&fsec, 24.0, 24.0, 120.0, 4.0);
591 reg.
registerVar(
"seq.gain",
"",
"S",
N_(
"Volume level in decibels"),&fslidergain, 0.0, -6e+01, 4e+01, 0.1);
593 for (
int i=0; i<24; i++) Vectom.push_back(0);
594 for (
int i=0; i<24; i++) Veckick.push_back(0);
595 for (
int i=0; i<24; i++) Vechat.push_back(0);
596 for (
int i=0; i<24; i++) Vecsnare.push_back(0);
603 sigc::mem_fun(
this, &DrumSequencer::reset_tom)));
606 sigc::mem_fun(
this, &DrumSequencer::reset_snare)));
609 sigc::mem_fun(
this, &DrumSequencer::reset_hat)));
612 sigc::mem_fun(
this, &DrumSequencer::reset_kick)));
617 int DrumSequencer::register_params_static(
const ParamReg& reg)
622 void DrumSequencer::del_instance(
PluginDef *p)
clearstatefunc clear_state
const std::vector< int > & getseqline() const
float *(* registerVar)(const char *id, const char *name, const char *tp, const char *tooltip, float *var, float val, float low, float up, float step)
void(* registerEnumVar)(const char *id, const char *name, const char *tp, const char *tooltip, const value_pair *values, float *var, float val, float low, float up, float step)
deletefunc delete_instance
#define PLUGINDEF_VERSION
registerfunc register_params
activatefunc activate_plugin
process_stereo_audio stereo_audio
void(* registerNonMidiFloatVar)(const char *id, float *var, bool preset, bool nosave, float val, float low, float up, float step)
process_mono_audio mono_audio
sigc::signal< void, const GxSeqSettings * > & signal_changed()
static ParameterV< GxSeqSettings > * insert_param(ParamMap &pmap, const string &id, GxSeqSettings *v)