37 reg.
registerVar(
"midi_out.channel_1.velocity",
"velocity",
"S",
"", &fslider26, 64, 0, 127, 1);
38 reg.
registerVar(
"midi_out.channel_1.volume",
"volume",
"S",
"", &fslider46, 64, 0, 127, 1);
39 reg.
registerBoolVar(
"midi_out.channel_1.autogain",
"autogain",
"B",
"", &fautogain,
false);
40 reg.
registerVar(
"midi_out.channel_1.channel",
"channel 1",
"S",
"", &fslider30, 0, 0, 16, 1);
41 reg.
registerVar(
"midi_out.channel_1.program",
"program",
"S",
"", &fslider31, 0, 0, 248, 1);
42 reg.
registerVar(
"midi_out.channel_1.oktave",
"oktave",
"S",
"", &fslider29, 0, -2, 2, 1);
43 reg.
registerVar(
"midi_out.channel_1.sensity",
"sensity",
"S",
"", &fslider27, 20, 1, 500, 1);
44 reg.
registerBoolVar(
"midi_out.channel_1.auto_pitch",
"auto pitch",
"B",
"", &fpitch,
false);
46 reg.
registerBoolVar(
"midi_out.channel_2.on_off",
"on/off",
"B",
"", &fcheckbox10,
false);
47 reg.
registerVar(
"midi_out.channel_2.velocity",
"velocity",
"S",
"", &fslider32, 64, 0, 127, 1);
48 reg.
registerVar(
"midi_out.channel_2.volume",
"volume",
"S",
"", &fslider47, 64, 0, 127, 1);
49 reg.
registerBoolVar(
"midi_out.channel_2.autogain",
"autogain",
"B",
"", &fautogain1,
false);
50 reg.
registerVar(
"midi_out.channel_2.channel",
"channel 2",
"S",
"", &fslider35, 0, 0, 16, 1);
51 reg.
registerVar(
"midi_out.channel_2.program",
"program",
"S",
"", &fslider36, 0, 0, 248, 1);
52 reg.
registerVar(
"midi_out.channel_2.oktave",
"oktave",
"S",
"", &fslider34, 0, -2, 2, 1);
53 reg.
registerVar(
"midi_out.channel_2.sensity",
"sensity",
"S",
"", &fslider33, 20, 1, 500, 1);
54 reg.
registerBoolVar(
"midi_out.channel_2.auto_pitch",
"auto pitch",
"B",
"", &fpitch1,
false);
56 reg.
registerBoolVar(
"midi_out.channel_3.on_off",
"on/off",
"B",
"", &fcheckbox11,
false);
57 reg.
registerVar(
"midi_out.channel_3.velocity",
"velocity",
"S",
"", &fslider40, 64, 0, 127, 1);
58 reg.
registerVar(
"midi_out.channel_3.volume",
"volume",
"S",
"", &fslider48, 64, 0, 127, 1);
59 reg.
registerBoolVar(
"midi_out.channel_3.autogain",
"autogain",
"B",
"", &fautogain2,
false);
60 reg.
registerVar(
"midi_out.channel_3.channel",
"channel 3",
"S",
"", &fslider44, 0, 0, 16, 1);
61 reg.
registerVar(
"midi_out.channel_3.program",
"program",
"S",
"", &fslider43, 0, 0, 248, 1);
62 reg.
registerVar(
"midi_out.channel_3.oktave",
"oktave",
"S",
"", &fslider42, 0, -2, 2, 1);
63 reg.
registerVar(
"midi_out.channel_3.sensity",
"sensity",
"S",
"", &fslider41, 20, 1, 500, 1);
64 reg.
registerBoolVar(
"midi_out.channel_3.auto_pitch",
"auto pitch",
"B",
"", &fpitch2,
false);
66 reg.
registerVar(
"midi_out.beat_detector.stepper",
"stepper",
"S",
"", &fslider39, 1, 1, 32, 1);
67 reg.
registerVar(
"midi_out.beat_detector.note_off",
"note off",
"S",
"", &fslider37, 2, 1, 127, 1);
68 reg.
registerVar(
"midi_out.beat_detector.atack_gain",
"atack gain",
"S",
"", &fslider45, 5, 1, 127, 1);
69 reg.
registerVar(
"midi_out.beat_detector.beat_gain",
"beat gain",
"S",
"", &fslider38, 1, 0.0f, 127, 1);
70 reg.
registerVar(
"midi_out.beat_detector.midi_gain",
"midi gain",
"S",
"", &midi_gain, 0, -40, 60, 1);
74 fConstlog = log(1.055) * 0.5;
75 fConstlog2 = 6/log(2) * -1;
77 fConstun0 = (0.001 * 300 * samplingFreq) * 36;
78 BeatFilterk =1.0/(samplingFreq * (1.0f/(2.0f *
M_PI * 1250.0f)));
83 inline float sqrf(
float x) {
89 float fConsta4,
float fConsta1t) {
90 static float fnote = 1000.;
92 float fTemps45 = fslider45;
93 float fTemps38 = fslider38;
99 int iTemps31 =
static_cast<int>(fslider31);
100 int iTemps30 =
static_cast<int>(fslider30);
101 int iTemps27 =
static_cast<int>(fslider27);
102 int iTemps29 =
static_cast<int>(fslider29)*12;
103 int iTemps26 =
static_cast<int>(fslider26);
104 int iTemps36 =
static_cast<int>(fslider36);
105 int iTemps35 =
static_cast<int>(fslider35);
106 int iTemps33 =
static_cast<int>(fslider33);
107 int iTemps34 =
static_cast<int>(fslider34)*12;
108 int iTemps32 =
static_cast<int>(fslider32);
109 int iTemps43 =
static_cast<int>(fslider43);
110 int iTemps44 =
static_cast<int>(fslider44);
111 int iTemps41 =
static_cast<int>(fslider41);
112 int iTemps42 =
static_cast<int>(fslider42)*12;
113 int iTemps40 =
static_cast<int>(fslider40);
114 int step =
static_cast<int>(fslider39);
115 int iTemps37 =
static_cast<int>(48000/fslider37);
116 int iTemps37a = iTemps37+5;
117 int iTemps46 =
static_cast<int>(fslider46);
118 int iTemps47 =
static_cast<int>(fslider47);
119 int iTemps48 =
static_cast<int>(fslider48);
123 double stepper = 1./step;
136 if (fConsta1t < 999.) fnote = fConsta1t;
137 preNote =
static_cast<int>(round(fnote))+57;
138 fConsta2 = fnote - (preNote - 57);
139 piwe = (
static_cast<int>(fConsta2+1)) * 8192;
144 for (
int i = 0; i < len; i += step) {
146 float audio_db = *audiodata++;
147 BeatFilter1 = BeatFilter1+(BeatFilterk*(audio_db-BeatFilter1));
148 BeatFilter2 = BeatFilter2+(BeatFilterk*(BeatFilter1-
150 audio_db = BeatFilter2*10;
151 if (audio_db > 0.00001) {
153 midi_db = (log(fabs(audio_db))*fConstlog2);
154 beat0 = 254- floor(exp(fConstlog*midi_db)*127)+ midi_gain;
158 if (beat0 >= fTemps45 && jcpu_load < 65.0) {
161 if (cs ==
static_cast<int>(fConstun0*stepper)) {
169 beat0 = sqrtf(sum/cs);
175 if (rms >= (Beat_is + fTemps38)) {
179 if (fcheckbox10 ) send1+=step;
180 if (fcheckbox11 ) send2+=step;
188 if (program != iTemps31) {
191 midi_send = jack_midi_event_reserve(midi_port_buf, i, 2);
195 midi_send[1] =
static_cast<int>(iTemps31);
197 midi_send[0] = 0xC0 |
static_cast<int>(iTemps30);
201 if (send > iTemps27) {
203 iTemps46 =
static_cast<int>(beat0);
204 if ( iTemps46 < 0) iTemps46 = 0;
205 else if ( iTemps46 > 127) iTemps46 = 127;
206 fslider46 = iTemps46;
208 if (volume != iTemps46) {
211 midi_send = jack_midi_event_reserve(midi_port_buf, i, 3);
215 midi_send[2] =
static_cast<int>(iTemps46);
219 midi_send[0] = 0xB0 |
static_cast<int>(iTemps30);
223 noten = preNote + iTemps29;
228 if (( noten >= 0)&&(noten <= 127)) {
231 midi_send = jack_midi_event_reserve(midi_port_buf, i, 3);
238 midi_send[0] = 0xE0 |
static_cast<int>(iTemps30);
241 midi_send = jack_midi_event_reserve(midi_port_buf, i, 3);
244 midi_send[2] =
static_cast<int>(iTemps26);
246 midi_send[1] = noten;
248 midi_send[0] = 0x90 |
static_cast<int>(iTemps30);
253 if (piwe < 0) piwe = 0;
254 if (fConsta2 > 0x3fff) piwe = 0x3fff;
255 midi_send = jack_midi_event_reserve(midi_port_buf, i, 3);
259 midi_send[2] = (piwe >> 7) & 0x7f;
261 midi_send[1] = piwe & 0x7f;
263 midi_send[0] = 0xE0 |
static_cast<int>(iTemps30);
271 if (program1 != iTemps36) {
274 midi_send1 = jack_midi_event_reserve(midi_port_buf, i, 2);
278 midi_send1[1] =
static_cast<int>(iTemps36);
280 midi_send1[0] = 0xC0 |
static_cast<int>(iTemps35);
284 if (send1 > iTemps33) {
286 iTemps47 =
static_cast<int>(beat0);
287 if ( iTemps47 < 0) iTemps47 = 0;
288 else if ( iTemps47 > 127) iTemps47 = 127;
290 fslider47 = iTemps47;
293 if (volume1 != iTemps47) {
296 midi_send1 = jack_midi_event_reserve(midi_port_buf, i, 3);
299 midi_send1[2] =
static_cast<int>(iTemps47);
301 midi_send1[1] = 0x07;
303 midi_send1[0] = 0xB0 |
static_cast<int>(iTemps35);
307 noten1 = preNote + iTemps34;
311 if ((noten1 >= 0)&&(noten1 <= 127)) {
314 midi_send1 = jack_midi_event_reserve(midi_port_buf, i, 3);
317 midi_send1[2] = 0x40;
319 midi_send1[1] = 0x00;
321 midi_send1[0] = 0xE0 |
static_cast<int>(iTemps35);
324 midi_send1 = jack_midi_event_reserve(midi_port_buf, i, 3);
328 midi_send1[2] =
static_cast<int>(iTemps32);
330 midi_send1[1] = noten1;
332 midi_send1[0] = 0x90 |
static_cast<int>(iTemps35);
337 if (piwe < 0) piwe = 0;
338 if (fConsta2 > 0x3fff) piwe = 0x3fff;
339 midi_send1 = jack_midi_event_reserve(midi_port_buf, i, 3);
343 midi_send1[2] = (piwe >> 7) & 0x7f;
345 midi_send1[1] = piwe & 0x7f;
347 midi_send1[0] = 0xE0 |
static_cast<int>(iTemps35);
355 if (program2 != iTemps43) {
358 midi_send2 = jack_midi_event_reserve(midi_port_buf, i, 2);
362 midi_send2[1] =
static_cast<int>(iTemps43);
364 midi_send2[0] = 0xC0 |
static_cast<int>(iTemps44);
368 if (send2 > iTemps41) {
370 iTemps48 =
static_cast<int>(beat0);
371 if ( iTemps48 < 0) iTemps48 = 0;
372 else if ( iTemps48 > 127) iTemps48 = 127;
373 fslider48 = iTemps48;
376 if (volume2 != iTemps48) {
379 midi_send2 = jack_midi_event_reserve(midi_port_buf, i, 3);
382 midi_send2[2] =
static_cast<int>(iTemps48);
384 midi_send2[1] = 0x07;
386 midi_send2[0] = 0xB0 |
static_cast<int>(iTemps44);
392 midi_send2 = jack_midi_event_reserve(midi_port_buf, i, 3);
395 midi_send2[2] = 0x40;
397 midi_send2[1] = 0x00;
399 midi_send2[0] = 0xE0 |
static_cast<int>(iTemps44);
403 noten2 = preNote + iTemps42;
408 if ((noten2 >= 0)&&(noten2 <= 127)) {
409 midi_send2 = jack_midi_event_reserve(midi_port_buf, i, 3);
413 midi_send2[2] =
static_cast<int>(iTemps40);
415 midi_send2[1] = noten2;
417 midi_send2[0] = 0x90 |
static_cast<int>(iTemps44);
422 if (piwe < 0) piwe = 0;
423 if (fConsta2 > 0x3fff) piwe = 0x3fff;
424 midi_send2 = jack_midi_event_reserve(midi_port_buf, i, 3);
427 midi_send2[2] = (piwe >> 7) & 0x7f;
429 midi_send2[1] = piwe & 0x7f;
431 midi_send2[0] = 0xE0 |
static_cast<int>(iTemps44);
440 if (weg > iTemps37 || jcpu_load > 64.0) {
442 Beat_is =
static_cast<int>(fTemps45);
443 if (weg < iTemps37a) {
447 midi_send = jack_midi_event_reserve(midi_port_buf, i, 3);
451 midi_send[2] =
static_cast<int>(iTemps26);
455 midi_send[0] = 0xB0 |
static_cast<int>(iTemps30);
463 midi_send1 = jack_midi_event_reserve(midi_port_buf, i, 3);
467 midi_send1[2] =
static_cast<int>(iTemps32);
471 midi_send1[0] = 0xB0 |
static_cast<int>(iTemps35);
480 midi_send2 = jack_midi_event_reserve(midi_port_buf, i, 3);
484 midi_send2[2] =
static_cast<int>(iTemps40);
488 midi_send2[0] = 0xB0 |
static_cast<int>(iTemps44);
492 midistat = midistat1 = midistat2 = midistat3 =
false;