46
47
void DeicsOnze::initPluginReverb(MusECore::Plugin* pluginReverb) {
48
49
if(_pluginIReverb) delete(_pluginIReverb);
49
///_pluginIReverb = new MusECore::PluginI(NULL);
50
50
_pluginIReverb = new MusECore::PluginI();
52
52
_pluginIReverb->initPluginInstance(pluginReverb, 2);
54
54
//for(int i = 0; i < pluginReverb->parameter(); i++) {
55
for(int i = 0; i < (int)pluginReverb->controlInPorts(); i++) {
55
//for(int i = 0; i < (int)pluginReverb->controlInPorts(); i++) {
56
for(int i = 0; i < (int)_pluginIReverb->parameters(); i++) {
59
// From DSSI host. Maybe use this to add automation controllers. Problems with this method.
60
// // Support a special block for dssi synth ladspa controllers.
61
// // Put the ID at a special block after plugins (far after).
62
// //int id = MusECore::genACnum(MAX_PLUGINS, cip);
63
// int id = MusECore::genACnum(MAX_PLUGINS, i);
58
66
/* Ctrl* c = new Ctrl();
59
67
c->setCurVal((float)pluginReverb->defaultValue(i));
159
172
(const unsigned char*)dataDelayLFODepth,
160
173
sizeof(float)+1);
161
174
_gui->writeEvent(evSysexDelayLFODepth);
175
char dataDelayWetDryMix[sizeof(float)+1];
176
dataDelayWetDryMix[0] = SYSEX_DELAYWETDRYMIX;
177
f = getDelayDryWet();
178
memcpy(&dataDelayWetDryMix, &f, sizeof(float)+1);
179
MusECore::MidiPlayEvent evSysexDelayWetDryMix(0, 0,MusECore::ME_SYSEX,
180
(const unsigned char*)dataDelayWetDryMix,
182
_gui->writeEvent(evSysexDelayWetDryMix);
164
void DeicsOnze::setReverbParam(int index, double val) {
185
void DeicsOnze::setReverbParam(int index, float val) {
165
186
///if(_pluginIReverb) _pluginIReverb->controller(index)->setCurVal((float)val);
166
187
if(_pluginIReverb) _pluginIReverb->setParam(index, val);
167
188
else printf("Warning : no DeicsOnze reverb loaded\n");
169
void DeicsOnze::setChorusParam(int index, double val) {
190
void DeicsOnze::setChorusParam(int index, float val) {
170
191
///if(_pluginIChorus) _pluginIChorus->controller(index)->setCurVal((float)val);
171
192
if(_pluginIChorus) _pluginIChorus->setParam(index, val);
172
193
else printf("Warning : no DeicsOnze chorus loaded\n");
195
void DeicsOnze::setDelayParam(int index, float val) {
196
///if(_pluginIDelay) _pluginIDelay->controller(index)->setCurVal((float)val);
197
if(_pluginIDelay) _pluginIDelay->setParam(index, val);
198
else printf("Warning : no DeicsOnze delay loaded\n");
175
double DeicsOnze::getReverbParam(int index) const {
201
float DeicsOnze::getReverbParam(int index) const {
176
202
///if(_pluginIReverb) return _pluginIReverb->controller(index)->curVal().f;
177
203
if(_pluginIReverb) return _pluginIReverb->param(index);
300
336
//for(int i = 0; i < plugI->plugin()->parameter(); i++) {
301
337
for(int i = 0; i < (int)plugI->plugin()->controlInPorts(); i++) {
302
///double min, max, val;
303
float min, max; //, val;
304
339
plugI->range(i, &min, &max);
308
341
val = _deicsOnze->getReverbParam(i);
310
addPluginCheckBox(i, plugI->getParameterName(i), val > 0.0,
311
_reverbSuperWidget, grid, true);
312
else if(plugI->isInt(i)) {
313
addPluginIntSlider(i, plugI->getParameterName(i), rint(min), rint(max),
314
rint(val), _reverbSuperWidget, grid, true);
317
addPluginSlider(i, plugI->getParameterName(i), plugI->isLog(i),
318
min, max, val, _reverbSuperWidget, grid, true);
342
if(plugI->ctrlValueType(i) == MusECore::VAL_BOOL)
343
addPluginCheckBox(i, plugI->paramName(i), val > 0.0,
344
_reverbSuperWidget, grid, true);
345
else if(plugI->ctrlValueType(i) == MusECore::VAL_INT)
346
addPluginIntSlider(i, plugI->paramName(i), rint(min), rint(max),
347
rint(val), _reverbSuperWidget, grid, true);
349
addPluginSlider(i, plugI->paramName(i), plugI->ctrlValueType(i) == MusECore::VAL_LOG,
350
min, max, val, _reverbSuperWidget, grid, true);
323
352
//update colors of the new sliders (and the whole gui actually)
324
353
setEditTextColor(reinterpret_cast<const QColor &>(*etColor));
351
380
//for(int i = 0; i < plugI->plugin()->parameter(); i++) {
352
381
for(int i = 0; i < (int)plugI->plugin()->controlInPorts(); i++) {
353
///double min, max, val;
354
float min, max; //, val;
355
383
plugI->range(i, &min, &max);
359
385
val = _deicsOnze->getChorusParam(i);
361
addPluginCheckBox(i, plugI->getParameterName(i), val > 0.0,
362
_chorusSuperWidget, grid, false);
363
else if(plugI->isInt(i)) {
364
addPluginIntSlider(i, plugI->getParameterName(i), rint(min), rint(max),
365
rint(val), _chorusSuperWidget, grid, false);
368
addPluginSlider(i, plugI->getParameterName(i), plugI->isLog(i),
369
min, max, val, _chorusSuperWidget, grid, false);
386
if(plugI->ctrlValueType(i) == MusECore::VAL_BOOL)
387
addPluginCheckBox(i, plugI->paramName(i), val > 0.0,
388
_chorusSuperWidget, grid, false);
389
else if(plugI->ctrlValueType(i) == MusECore::VAL_INT)
390
addPluginIntSlider(i, plugI->paramName(i), rint(min), rint(max),
391
rint(val), _chorusSuperWidget, grid, false);
393
addPluginSlider(i, plugI->paramName(i), plugI->ctrlValueType(i) == MusECore::VAL_LOG,
394
min, max, val, _chorusSuperWidget, grid, false);
374
396
//update colors of the new sliders (and the whole gui actually)
375
397
setEditTextColor(reinterpret_cast<const QColor &>(*etColor));
380
402
//of the parameter because it sends a double and does not
381
403
//change any thing
382
404
void DeicsOnzeGui::setReverbCheckBox(double v, int i) {
406
printf("setReverbCheckBox Error : controller index >= 256\n");
383
409
float f = (float)v;
384
unsigned char* message = new unsigned char[2+sizeof(float)];
385
message[0]=SYSEX_REVERBPARAM;
387
message[1]=(unsigned char)i;
388
memcpy(&message[2], &f, sizeof(float));
389
sendSysex(message, 2+sizeof(float));
391
else printf("setReverbCheckBox Error : cannot send controller upper than 225\n");
410
unsigned char message[sizeof(float)+4];
411
message[0]=MUSE_SYNTH_SYSEX_MFG_ID;
412
message[1]=DEICSONZE_UNIQUE_ID;
413
message[2]=SYSEX_REVERBPARAM;
414
message[3]=(unsigned char)i;
415
memcpy(&message[4], &f, sizeof(float));
416
sendSysex(message, sizeof(float)+4);
394
419
//setChorusCheckBox is used, by the way, to send the value
395
420
//of the parameter because it sends a double and does not
396
421
//change any thing
397
422
void DeicsOnzeGui::setChorusCheckBox(double v, int i) {
424
printf("setChorusCheckBox Error : controller index >= 256\n");
398
427
float f = (float)v;
399
unsigned char* message = new unsigned char[2+sizeof(float)];
400
message[0]=SYSEX_CHORUSPARAM;
402
message[1]=(unsigned char)i;
403
memcpy(&message[2], &f, sizeof(float));
404
sendSysex(message, 2+sizeof(float));
406
else printf("setChorusCheckBox Error : cannot send controller upper than 225\n");
409
void DeicsOnzeGui::setReverbFloatEntry(double /*v*/, int /*i*/) {
410
if(_deicsOnze->_pluginIReverb) {
414
if(_deicsOnze->_pluginIReverb->isInt(i)) v = rint(v);
415
updateReverbFloatEntry(v, i);
416
updateReverbSlider(v, i);
417
setReverbCheckBox(v, i); //because this send the SYSEX
421
else printf("Warning : no DeicsOnze reverb loaded\n");
423
void DeicsOnzeGui::setReverbSlider(double /*v*/, int /*i*/) {
424
if(_deicsOnze->_pluginIReverb) {
428
if(_deicsOnze->_pluginIReverb->isInt(i)) v = rint(v);
429
updateReverbFloatEntry(v, i);
430
updateReverbSlider(v, i);
431
setReverbCheckBox(v, i); //because this send the SYSEX
435
else printf("Warning : no DeicsOnze reverb loaded\n");
437
void DeicsOnzeGui::setChorusFloatEntry(double /*v*/, int /*i*/) {
438
if(_deicsOnze->_pluginIReverb) {
442
if(_deicsOnze->_pluginIChorus->isInt(i)) v = rint(v);
428
unsigned char message[sizeof(float)+4];
429
message[0]=MUSE_SYNTH_SYSEX_MFG_ID;
430
message[1]=DEICSONZE_UNIQUE_ID;
431
message[2]=SYSEX_CHORUSPARAM;
432
message[3]=(unsigned char)i;
433
memcpy(&message[4], &f, sizeof(float));
434
sendSysex(message, sizeof(float)+4);
437
void DeicsOnzeGui::setReverbFloatEntry(double v, int i) {
438
if(_deicsOnze->_pluginIReverb) {
440
if(_deicsOnze->_pluginIReverb->ctrlValueType(i) == MusECore::VAL_INT) v = rint(v);
441
updateReverbFloatEntry(v, i);
442
updateReverbSlider(v, i);
443
setReverbCheckBox(v, i); //because this send the SYSEX
445
else printf("Warning : no DeicsOnze reverb loaded\n");
447
void DeicsOnzeGui::setReverbSlider(double v, int i) {
448
if(_deicsOnze->_pluginIReverb) {
450
if(_deicsOnze->_pluginIReverb->ctrlValueType(i) == MusECore::VAL_INT) v = rint(v);
451
updateReverbFloatEntry(v, i);
452
updateReverbSlider(v, i);
453
setReverbCheckBox(v, i); //because this send the SYSEX
455
else printf("Warning : no DeicsOnze reverb loaded\n");
457
void DeicsOnzeGui::setChorusFloatEntry(double v, int i) {
458
if(_deicsOnze->_pluginIReverb) {
460
if(_deicsOnze->_pluginIChorus->ctrlValueType(i) == MusECore::VAL_INT) v = rint(v);
443
461
updateChorusFloatEntry(v, i);
444
462
updateChorusSlider(v, i);
445
463
setChorusCheckBox(v, i); //because this send the SYSEX
449
465
else printf("Warning : no DeicsOnze chorus loaded\n");
451
void DeicsOnzeGui::setChorusSlider(double /*v*/, int /*i*/) {
467
void DeicsOnzeGui::setChorusSlider(double v, int i) {
452
468
if(_deicsOnze->_pluginIReverb) {
456
if(_deicsOnze->_pluginIChorus->isInt(i)) v = rint(v);
470
if(_deicsOnze->_pluginIChorus->ctrlValueType(i) == MusECore::VAL_INT) v = rint(v);
457
471
updateChorusSlider(v, i);
458
472
updateChorusFloatEntry(v, i);
459
473
setChorusCheckBox(v, i); //because this send the SYSEX
463
475
else printf("Warning : no DeicsOnze chorus loaded\n");