2441
2446
memcpy(&initBuffer[NUM_DELAY_LFO_FREQ], &delayfloat, sizeof(float));
2442
2447
delayfloat = getDelayLFODepth();
2443
2448
memcpy(&initBuffer[NUM_DELAY_LFO_DEPTH], &delayfloat, sizeof(float));
2449
//if(version == SYSEX_INIT_DATA_VERSION_2)
2451
// delayfloat = getDelayDryWet();
2452
// memcpy(&initBuffer[NUM_DELAY_WET_DRY_MIX], &delayfloat, sizeof(float));
2445
2455
//save set data
2457
//(version == SYSEX_INIT_DATA_VERSION_2 ? NUM_CONFIGLENGTH : NUM_DELAY_WET_DRY_MIX) // HACK
2447
2458
NUM_CONFIGLENGTH
2448
2459
+ sizeof(float)*(int)initBuffer[NUM_REVERB_PARAM_NBR]
2449
2460
+ sizeof(float)*(int)initBuffer[NUM_CHORUS_PARAM_NBR];
2450
2461
for(int i = offset; i < *length; i++)
2451
2462
initBuffer[i]=(unsigned char)baComp.at(i - offset);
2454
2464
*data=initBuffer;
2456
2466
//---------------------------------------------------------
2457
2467
// parseInitData
2458
2468
//---------------------------------------------------------
2459
2469
void DeicsOnze::parseInitData(int length, const unsigned char* data) {
2460
///if(data[1]==SYSEX_INIT_DATA_VERSION) {
2461
if(data[3]==SYSEX_INIT_DATA_VERSION) {
2462
//load global parameters
2464
setMasterVol(data[NUM_MASTERVOL]);
2465
unsigned char *dataMasterVol = new unsigned char[2];
2466
dataMasterVol[0]=SYSEX_MASTERVOL;
2467
dataMasterVol[1]=(unsigned char) getMasterVol();
2468
MusECore::MidiPlayEvent
2469
evMasterVol(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataMasterVol, 2);
2470
_gui->writeEvent(evMasterVol);
2471
//channel configuration
2472
for(int c = 0; c < NBRCHANNELS; c++) {
2474
setChannelEnable(c, data[NUM_CHANNEL_ENABLE + c]);
2475
MusECore::MidiPlayEvent
2476
evChEnable(0, 0, c, MusECore::ME_CONTROLLER,
2477
CTRL_CHANNELENABLE, data[NUM_CHANNEL_ENABLE + c]);
2478
_gui->writeEvent(evChEnable);
2480
setNbrVoices(c, data[NUM_NBRVOICES + c]);
2481
MusECore::MidiPlayEvent
2482
evNbrVoices(0, 0, c,MusECore::ME_CONTROLLER,CTRL_NBRVOICES, data[NUM_NBRVOICES + c]);
2483
_gui->writeEvent(evNbrVoices);
2485
setChannelVol(c, data[NUM_CHANNEL_VOL + c]);
2486
MusECore::MidiPlayEvent
2487
evChVol(0, 0, c, MusECore::ME_CONTROLLER,
2488
CTRL_CHANNELVOLUME, data[NUM_CHANNEL_VOL + c]);
2489
_gui->writeEvent(evChVol);
2491
setChannelPan(c, data[NUM_CHANNEL_PAN + c]);
2492
MusECore::MidiPlayEvent
2493
evChPan(0, 0, c, MusECore::ME_CONTROLLER, CTRL_CHANNELPAN,
2494
data[NUM_CHANNEL_PAN + c]);
2495
_gui->writeEvent(evChPan);
2496
if(getChannelEnable(c)) applyChannelAmp(c);
2498
setChannelDetune(c, data[NUM_CHANNEL_DETUNE + c]-MAXCHANNELDETUNE);
2499
MusECore::MidiPlayEvent
2500
evChDetune(0, 0, c, MusECore::ME_CONTROLLER, CTRL_CHANNELDETUNE,
2501
data[NUM_CHANNEL_DETUNE + c]-MAXCHANNELDETUNE);
2502
_gui->writeEvent(evChDetune);
2503
//channel brightness
2504
setChannelBrightness(c,
2505
data[NUM_CHANNEL_BRIGHTNESS + 2*c]
2506
+ data[NUM_CHANNEL_BRIGHTNESS + 2*c + 1] * 256);
2507
MusECore::MidiPlayEvent
2508
evChBrightness(0, 0, c, MusECore::ME_CONTROLLER,
2509
CTRL_FINEBRIGHTNESS, getChannelBrightness(c));
2510
_gui->writeEvent(evChBrightness);
2511
//channel modulation
2512
setChannelModulation(c, data[NUM_CHANNEL_MODULATION + c]);
2513
MusECore::MidiPlayEvent
2514
evChMod(0, 0, c, MusECore::ME_CONTROLLER,
2515
MusECore::CTRL_MODULATION, data[NUM_CHANNEL_MODULATION + c]);
2516
_gui->writeEvent(evChMod);
2518
setChannelAttack(c, data[NUM_CHANNEL_ATTACK + c]);
2519
MusECore::MidiPlayEvent
2520
evChAttack(0, 0, c, MusECore::ME_CONTROLLER,
2521
MusECore::CTRL_ATTACK_TIME, data[NUM_CHANNEL_ATTACK + c]);
2522
_gui->writeEvent(evChAttack);
2524
setChannelRelease(c, data[NUM_CHANNEL_RELEASE + c]);
2525
MusECore::MidiPlayEvent
2526
evChRelease(0, 0, c, MusECore::ME_CONTROLLER,
2527
MusECore::CTRL_RELEASE_TIME, data[NUM_CHANNEL_RELEASE + c]);
2528
_gui->writeEvent(evChRelease);
2530
setChannelReverb(c, data[NUM_CHANNEL_REVERB + c]);
2531
MusECore::MidiPlayEvent
2532
evChReverb(0, 0, c, MusECore::ME_CONTROLLER,
2533
MusECore::CTRL_REVERB_SEND, data[NUM_CHANNEL_REVERB + c]);
2534
_gui->writeEvent(evChReverb);
2536
setChannelChorus(c, data[NUM_CHANNEL_CHORUS + c]);
2537
MusECore::MidiPlayEvent
2538
evChChorus(0, 0, c, MusECore::ME_CONTROLLER,
2539
MusECore::CTRL_CHORUS_SEND, data[NUM_CHANNEL_CHORUS + c]);
2540
_gui->writeEvent(evChChorus);
2542
setChannelDelay(c, data[NUM_CHANNEL_DELAY + c]);
2543
MusECore::MidiPlayEvent
2544
evChDelay(0, 0, c, MusECore::ME_CONTROLLER,
2545
MusECore::CTRL_VARIATION_SEND, data[NUM_CHANNEL_DELAY + c]);
2546
_gui->writeEvent(evChDelay);
2548
//load configuration
2549
_saveConfig = (bool)data[NUM_SAVECONFIG];
2550
unsigned char *dataSaveConfig = new unsigned char[2];
2551
dataSaveConfig[0]=SYSEX_SAVECONFIG;
2552
dataSaveConfig[1]=(unsigned char)_saveConfig;
2553
MusECore::MidiPlayEvent
2554
evSaveConfig(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataSaveConfig, 2);
2555
_gui->writeEvent(evSaveConfig);
2558
_saveOnlyUsed = (bool)data[NUM_SAVEONLYUSED];
2559
unsigned char *dataSaveOnlyUsed = new unsigned char[2];
2560
dataSaveOnlyUsed[0]=SYSEX_SAVEONLYUSED;
2561
dataSaveOnlyUsed[1]=(unsigned char)_saveOnlyUsed;
2562
MusECore::MidiPlayEvent
2563
evSaveOnlyUsed(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataSaveOnlyUsed, 2);
2564
_gui->writeEvent(evSaveOnlyUsed);
2566
unsigned char dataColorGui[COLORSYSEXLENGTH+1];
2567
dataColorGui[0]=SYSEX_COLORGUI;
2568
for (int i=0; i<COLORSYSEXLENGTH; i++)
2569
dataColorGui[i+1]=data[NUM_RED_TEXT+i];
2570
MusECore::MidiPlayEvent evSysexColor(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataColorGui,
2571
COLORSYSEXLENGTH+1);
2572
_gui->writeEvent(evSysexColor);
2574
unsigned char dataQuality[2];
2575
dataQuality[0]=SYSEX_QUALITY;
2576
dataQuality[1]=data[NUM_QUALITY];
2577
setQuality((Quality)data[NUM_QUALITY]);
2578
MusECore::MidiPlayEvent evQuality(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataQuality, 2);
2579
_gui->writeEvent(evQuality);
2581
unsigned char dataFilter[2];
2582
dataFilter[0]=SYSEX_FILTER;
2583
dataFilter[1]=data[NUM_FILTER];
2584
setFilter((bool)data[NUM_FILTER]);
2585
MusECore::MidiPlayEvent evFilter(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataFilter, 2);
2586
_gui->writeEvent(evFilter);
2588
unsigned char dataFontSize[2];
2589
dataFontSize[0]=SYSEX_FONTSIZE;
2590
dataFontSize[1]=data[NUM_FONTSIZE];
2591
MusECore::MidiPlayEvent evFontSize(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataFontSize, 2);
2592
_gui->writeEvent(evFontSize);
2594
unsigned char dataIsInitSet[2];
2595
dataIsInitSet[0]=SYSEX_ISINITSET;
2596
dataIsInitSet[1]=data[NUM_ISINITSET];
2597
MusECore::MidiPlayEvent evIsInitSet(0, 0, MusECore::ME_SYSEX,
2598
(const unsigned char*)dataIsInitSet, 2);
2599
_gui->writeEvent(evIsInitSet);
2600
unsigned char dataInitSetPath[1+MAXSTRLENGTHINITSETPATH];
2601
dataInitSetPath[0]=SYSEX_INITSETPATH;
2602
for(int a = 0; a < MAXSTRLENGTHINITSETPATH; a++)
2603
dataInitSetPath[a+1] = data[a+NUM_INITSETPATH];
2604
MusECore::MidiPlayEvent evInitSetPath(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataInitSetPath,
2605
1+MAXSTRLENGTHINITSETPATH);
2606
_gui->writeEvent(evInitSetPath);
2607
//load background pix
2608
unsigned char dataIsBackgroundPix[2];
2609
dataIsBackgroundPix[0]=SYSEX_ISBACKGROUNDPIX;
2610
dataIsBackgroundPix[1]=data[NUM_ISBACKGROUNDPIX];
2611
MusECore::MidiPlayEvent evIsBackgroundPix(0, 0, MusECore::ME_SYSEX,
2612
(const unsigned char*)dataIsBackgroundPix, 2);
2613
_gui->writeEvent(evIsBackgroundPix);
2614
unsigned char dataBackgroundPixPath[1+MAXSTRLENGTHBACKGROUNDPIXPATH];
2615
dataBackgroundPixPath[0]=SYSEX_BACKGROUNDPIXPATH;
2616
for(int a = 0; a < MAXSTRLENGTHBACKGROUNDPIXPATH; a++)
2617
dataBackgroundPixPath[a+1] = data[a+NUM_BACKGROUNDPIXPATH];
2618
MusECore::MidiPlayEvent evBackgroundPixPath(0, 0, MusECore::ME_SYSEX,
2619
(const unsigned char*)dataBackgroundPixPath,
2620
1+MAXSTRLENGTHBACKGROUNDPIXPATH);
2621
_gui->writeEvent(evBackgroundPixPath);
2623
else _gui->saveConfigCheckBox->setChecked(false);
2626
_global.isReverbActivated = (bool)data[NUM_IS_REVERB_ON];
2627
unsigned char *dataReverbAct = new unsigned char[2];
2628
dataReverbAct[0]=SYSEX_REVERBACTIV;
2629
dataReverbAct[1]=(unsigned char)_global.isReverbActivated;
2630
MusECore::MidiPlayEvent evReverbAct(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataReverbAct, 2);
2631
_gui->writeEvent(evReverbAct);
2632
setReverbReturn((int)data[NUM_REVERB_RETURN]);
2633
unsigned char *dataReverbRet = new unsigned char[2];
2634
dataReverbRet[0]=SYSEX_REVERBRETURN;
2635
dataReverbRet[1]=(unsigned char)getReverbReturn();
2636
MusECore::MidiPlayEvent evReverbRet(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataReverbRet, 2);
2637
_gui->writeEvent(evReverbRet);
2638
MusECore::Plugin* p;
2639
p = MusEGlobal::plugins.find((const char*)&data[NUM_REVERB_LIB],
2640
(const char*)&data[NUM_REVERB_LABEL]);
2642
initPluginReverb(p);
2643
///for(int i = 0; i < _pluginIReverb->plugin()->parameter(); i++) {
2644
for(int i = 0; i < (int)_pluginIReverb->plugin()->controlInPorts(); i++) {
2646
memcpy(&val, &data[NUM_CONFIGLENGTH + sizeof(float)*i], sizeof(float));
2647
setReverbParam(i, (double)val);
2650
dataBuildRev = SYSEX_BUILDGUIREVERB;
2651
MusECore::MidiPlayEvent evSysexBuildRev(0, 0, MusECore::ME_SYSEX,
2652
(const unsigned char*)&dataBuildRev, 1);
2653
_gui->writeEvent(evSysexBuildRev);
2655
else _pluginIReverb = NULL;
2657
_global.isChorusActivated = (bool)data[NUM_IS_CHORUS_ON];
2658
unsigned char *dataChorusAct = new unsigned char[2];
2659
dataChorusAct[0]=SYSEX_CHORUSACTIV;
2660
dataChorusAct[1]=(unsigned char)_global.isChorusActivated;
2661
MusECore::MidiPlayEvent evChorusAct(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataChorusAct, 2);
2662
_gui->writeEvent(evChorusAct);
2663
setChorusReturn((int)data[NUM_CHORUS_RETURN]);
2664
unsigned char *dataChorusRet = new unsigned char[2];
2665
dataChorusRet[0]=SYSEX_CHORUSRETURN;
2666
dataChorusRet[1]=(unsigned char)getChorusReturn();
2667
MusECore::MidiPlayEvent evChorusRet(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataChorusRet, 2);
2668
_gui->writeEvent(evChorusRet);
2669
p = MusEGlobal::plugins.find((const char*)&data[NUM_CHORUS_LIB],
2670
(const char*)&data[NUM_CHORUS_LABEL]);
2672
initPluginChorus(p);
2673
///for(int i = 0; i < _pluginIChorus->plugin()->parameter(); i++) {
2674
for(int i = 0; i < (int)_pluginIChorus->plugin()->controlInPorts(); i++) {
2676
memcpy(&val, &data[NUM_CONFIGLENGTH
2677
+ sizeof(float)*(int)data[NUM_REVERB_PARAM_NBR]
2680
setChorusParam(i, (double)val);
2683
dataBuildCho = SYSEX_BUILDGUICHORUS;
2684
MusECore::MidiPlayEvent evSysexBuildCho(0, 0, MusECore::ME_SYSEX,
2685
(const unsigned char*)&dataBuildCho, 1);
2686
_gui->writeEvent(evSysexBuildCho);
2688
else _pluginIChorus = NULL;
2690
_global.isDelayActivated = (bool)data[NUM_IS_DELAY_ON];
2691
unsigned char *dataDelayAct = new unsigned char[2];
2692
dataDelayAct[0]=SYSEX_DELAYACTIV;
2693
dataDelayAct[1]=(unsigned char)_global.isDelayActivated;
2694
MusECore::MidiPlayEvent evDelayAct(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataDelayAct, 2);
2695
_gui->writeEvent(evDelayAct);
2696
setDelayReturn((int)data[NUM_DELAY_RETURN]);
2697
unsigned char *dataDelayRet = new unsigned char[2];
2698
dataDelayRet[0]=SYSEX_DELAYRETURN;
2699
dataDelayRet[1]=(unsigned char)getDelayReturn();
2700
MusECore::MidiPlayEvent evDelayRet(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataDelayRet, 2);
2701
_gui->writeEvent(evDelayRet);
2702
//initPluginDelay(MusEGlobal::plugins.find("pandelay", "pandelay"));
2704
memcpy(&delayfloat, &data[NUM_DELAY_BPM], sizeof(float));
2705
setDelayBPM(delayfloat);
2706
char dataDelayBPM[sizeof(float)+1];
2707
dataDelayBPM[0] = SYSEX_DELAYBPM;
2708
memcpy(&dataDelayBPM[1], &delayfloat, sizeof(float));
2709
MusECore::MidiPlayEvent evSysexDelayBPM(0, 0, MusECore::ME_SYSEX,
2710
(const unsigned char*)dataDelayBPM,
2712
_gui->writeEvent(evSysexDelayBPM);
2713
memcpy(&delayfloat, &data[NUM_DELAY_BEATRATIO], sizeof(float));
2714
setDelayBeatRatio(delayfloat);
2715
char dataDelayBeatRatio[sizeof(float)+1];
2716
dataDelayBeatRatio[0] = SYSEX_DELAYBEATRATIO;
2717
memcpy(&dataDelayBeatRatio[1], &delayfloat, sizeof(float));
2718
MusECore::MidiPlayEvent evSysexDelayBeatRatio(0, 0, MusECore::ME_SYSEX,
2719
(const unsigned char*)dataDelayBeatRatio,
2721
_gui->writeEvent(evSysexDelayBeatRatio);
2722
memcpy(&delayfloat, &data[NUM_DELAY_FEEDBACK], sizeof(float));
2723
setDelayFeedback(delayfloat);
2724
char dataDelayFeedback[sizeof(float)+1];
2725
dataDelayFeedback[0] = SYSEX_DELAYFEEDBACK;
2726
memcpy(&dataDelayFeedback[1], &delayfloat, sizeof(float));
2727
MusECore::MidiPlayEvent evSysexDelayFeedback(0, 0, MusECore::ME_SYSEX,
2728
(const unsigned char*)dataDelayFeedback,
2730
_gui->writeEvent(evSysexDelayFeedback);
2731
memcpy(&delayfloat, &data[NUM_DELAY_LFO_FREQ], sizeof(float));
2732
setDelayLFOFreq(delayfloat);
2733
char dataDelayLFOFreq[sizeof(float)+1];
2734
dataDelayLFOFreq[0] = SYSEX_DELAYLFOFREQ;
2735
memcpy(&dataDelayLFOFreq[1], &delayfloat, sizeof(float));
2736
MusECore::MidiPlayEvent evSysexDelayLFOFreq(0, 0, MusECore::ME_SYSEX,
2737
(const unsigned char*)dataDelayLFOFreq,
2739
_gui->writeEvent(evSysexDelayLFOFreq);
2740
memcpy(&delayfloat, &data[NUM_DELAY_LFO_DEPTH], sizeof(float));
2741
setDelayLFODepth(delayfloat);
2742
char dataDelayLFODepth[sizeof(float)+1];
2743
dataDelayLFODepth[0] = SYSEX_DELAYLFODEPTH;
2744
memcpy(&dataDelayLFODepth[1], &delayfloat, sizeof(float));
2745
MusECore::MidiPlayEvent evSysexDelayLFODepth(0, 0, MusECore::ME_SYSEX,
2746
(const unsigned char*)dataDelayLFODepth,
2748
_gui->writeEvent(evSysexDelayLFODepth);
2750
//load the set compressed
2753
+ sizeof(float)*(int)data[NUM_REVERB_PARAM_NBR]
2754
+ sizeof(float)*(int)data[NUM_CHORUS_PARAM_NBR];
2755
QByteArray baComp = QByteArray((const char*)&data[offset], length-offset);
2757
//uncompress the set
2758
QByteArray baUncomp = qUncompress(baComp);
2760
//save the set in a temporary file and
2761
// read the XML file and create DOM tree
2762
QTemporaryFile file;
2764
file.write(baUncomp);
2765
QDomDocument domTree;
2766
file.reset(); //seek the start of the file
2767
domTree.setContent(&file);
2769
QDomNode node = domTree.documentElement();
2771
while (!node.isNull()) {
2772
QDomElement e = node.toElement();
2775
if (e.tagName() == "deicsOnzeSet") {
2776
QString version = e.attribute(QString("version"));
2777
if (version == "1.0") {
2778
for(int c = 0; c < NBRCHANNELS; c++) _preset[c]=_initialPreset;
2780
if((bool)data[NUM_SAVEONLYUSED]) {
2782
//updateSaveOnlyUsed(true);
2786
while(!_set->_categoryVector.empty())
2787
delete(*_set->_categoryVector.begin());
2788
//updateSaveOnlyUsed(false);
2790
_set->readSet(node.firstChild());
2791
//display load preset
2794
else printf("Wrong set version : %s\n",
2795
version.toLatin1().constData());
2797
node = node.nextSibling();
2799
//send sysex to the gui to load the set (actually not because it doesn't
2800
//work -the code is just zapped in the middle???-, so it is done above
2801
//int dL=2+baUncomp.size();
2804
dataSend[0]=SYSEX_LOADSET;
2805
dataSend[1]=data[NUM_SAVEONLYUSED];
2806
//for(int i=2; i<dL; i++) dataSend[i]=baUncop.at(i-2);
2807
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataSend, dL);
2808
_gui->writeEvent(evSysex);
2810
//select programs per channel
2811
for(int c = 0; c < NBRCHANNELS; c++) {
2812
int hbank=(int)data[NUM_CURRENTHBANK+c];
2813
int lbank=(int)data[NUM_CURRENTLBANK+c];
2814
int prog=(int)data[NUM_CURRENTPROG+c];
2815
programSelect(c, hbank, lbank, prog);
2816
int val=prog+(lbank<<8)+(hbank<<16);
2817
MusECore::MidiPlayEvent evProgSel(0, 0, c, MusECore::ME_CONTROLLER, MusECore::CTRL_PROGRAM, val);
2818
_gui->writeEvent(evProgSel);
2470
//if(data[3]!=SYSEX_INIT_DATA_VERSION || data[3]!=SYSEX_INIT_DATA_VERSION_2)
2471
if(data[3]!=SYSEX_INIT_DATA_VERSION)
2473
printf("Error: DeicsOnze::parseInitData: unknown sysex init data version:%d\n", data[3]);
2477
//load global parameters
2479
setMasterVol(data[NUM_MASTERVOL]);
2480
unsigned char *dataMasterVol = new unsigned char[2];
2481
dataMasterVol[0]=SYSEX_MASTERVOL;
2482
dataMasterVol[1]=(unsigned char) getMasterVol();
2483
MusECore::MidiPlayEvent
2484
evMasterVol(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataMasterVol, 2);
2485
_gui->writeEvent(evMasterVol);
2486
//channel configuration
2487
for(int c = 0; c < NBRCHANNELS; c++) {
2489
setChannelEnable(c, data[NUM_CHANNEL_ENABLE + c]);
2490
MusECore::MidiPlayEvent
2491
evChEnable(0, 0, c, MusECore::ME_CONTROLLER,
2492
CTRL_CHANNELENABLE, data[NUM_CHANNEL_ENABLE + c]);
2493
_gui->writeEvent(evChEnable);
2495
setNbrVoices(c, data[NUM_NBRVOICES + c]);
2496
MusECore::MidiPlayEvent
2497
evNbrVoices(0, 0, c,MusECore::ME_CONTROLLER,CTRL_NBRVOICES, data[NUM_NBRVOICES + c]);
2498
_gui->writeEvent(evNbrVoices);
2500
setChannelVol(c, data[NUM_CHANNEL_VOL + c]);
2501
MusECore::MidiPlayEvent
2502
evChVol(0, 0, c, MusECore::ME_CONTROLLER,
2503
CTRL_CHANNELVOLUME, data[NUM_CHANNEL_VOL + c]);
2504
_gui->writeEvent(evChVol);
2506
setChannelPan(c, data[NUM_CHANNEL_PAN + c]);
2507
MusECore::MidiPlayEvent
2508
evChPan(0, 0, c, MusECore::ME_CONTROLLER, CTRL_CHANNELPAN,
2509
data[NUM_CHANNEL_PAN + c]);
2510
_gui->writeEvent(evChPan);
2511
if(getChannelEnable(c)) applyChannelAmp(c);
2513
setChannelDetune(c, data[NUM_CHANNEL_DETUNE + c]-MAXCHANNELDETUNE);
2514
MusECore::MidiPlayEvent
2515
evChDetune(0, 0, c, MusECore::ME_CONTROLLER, CTRL_CHANNELDETUNE,
2516
data[NUM_CHANNEL_DETUNE + c]-MAXCHANNELDETUNE);
2517
_gui->writeEvent(evChDetune);
2518
//channel brightness
2519
setChannelBrightness(c,
2520
data[NUM_CHANNEL_BRIGHTNESS + 2*c]
2521
+ data[NUM_CHANNEL_BRIGHTNESS + 2*c + 1] * 256);
2522
MusECore::MidiPlayEvent
2523
evChBrightness(0, 0, c, MusECore::ME_CONTROLLER,
2524
CTRL_FINEBRIGHTNESS, getChannelBrightness(c));
2525
_gui->writeEvent(evChBrightness);
2526
//channel modulation
2527
setChannelModulation(c, data[NUM_CHANNEL_MODULATION + c]);
2528
MusECore::MidiPlayEvent
2529
evChMod(0, 0, c, MusECore::ME_CONTROLLER,
2530
MusECore::CTRL_MODULATION, data[NUM_CHANNEL_MODULATION + c]);
2531
_gui->writeEvent(evChMod);
2533
setChannelAttack(c, data[NUM_CHANNEL_ATTACK + c]);
2534
MusECore::MidiPlayEvent
2535
evChAttack(0, 0, c, MusECore::ME_CONTROLLER,
2536
MusECore::CTRL_ATTACK_TIME, data[NUM_CHANNEL_ATTACK + c]);
2537
_gui->writeEvent(evChAttack);
2539
setChannelRelease(c, data[NUM_CHANNEL_RELEASE + c]);
2540
MusECore::MidiPlayEvent
2541
evChRelease(0, 0, c, MusECore::ME_CONTROLLER,
2542
MusECore::CTRL_RELEASE_TIME, data[NUM_CHANNEL_RELEASE + c]);
2543
_gui->writeEvent(evChRelease);
2545
setChannelReverb(c, data[NUM_CHANNEL_REVERB + c]);
2546
MusECore::MidiPlayEvent
2547
evChReverb(0, 0, c, MusECore::ME_CONTROLLER,
2548
MusECore::CTRL_REVERB_SEND, data[NUM_CHANNEL_REVERB + c]);
2549
_gui->writeEvent(evChReverb);
2551
setChannelChorus(c, data[NUM_CHANNEL_CHORUS + c]);
2552
MusECore::MidiPlayEvent
2553
evChChorus(0, 0, c, MusECore::ME_CONTROLLER,
2554
MusECore::CTRL_CHORUS_SEND, data[NUM_CHANNEL_CHORUS + c]);
2555
_gui->writeEvent(evChChorus);
2557
setChannelDelay(c, data[NUM_CHANNEL_DELAY + c]);
2558
MusECore::MidiPlayEvent
2559
evChDelay(0, 0, c, MusECore::ME_CONTROLLER,
2560
MusECore::CTRL_VARIATION_SEND, data[NUM_CHANNEL_DELAY + c]);
2561
_gui->writeEvent(evChDelay);
2563
//load configuration
2564
_saveConfig = (bool)data[NUM_SAVECONFIG];
2565
unsigned char *dataSaveConfig = new unsigned char[2];
2566
dataSaveConfig[0]=SYSEX_SAVECONFIG;
2567
dataSaveConfig[1]=(unsigned char)_saveConfig;
2568
MusECore::MidiPlayEvent
2569
evSaveConfig(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataSaveConfig, 2);
2570
_gui->writeEvent(evSaveConfig);
2573
_saveOnlyUsed = (bool)data[NUM_SAVEONLYUSED];
2574
unsigned char *dataSaveOnlyUsed = new unsigned char[2];
2575
dataSaveOnlyUsed[0]=SYSEX_SAVEONLYUSED;
2576
dataSaveOnlyUsed[1]=(unsigned char)_saveOnlyUsed;
2577
MusECore::MidiPlayEvent
2578
evSaveOnlyUsed(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataSaveOnlyUsed, 2);
2579
_gui->writeEvent(evSaveOnlyUsed);
2581
unsigned char dataColorGui[COLORSYSEXLENGTH+1];
2582
dataColorGui[0]=SYSEX_COLORGUI;
2583
for (int i=0; i<COLORSYSEXLENGTH; i++)
2584
dataColorGui[i+1]=data[NUM_RED_TEXT+i];
2585
MusECore::MidiPlayEvent evSysexColor(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataColorGui,
2586
COLORSYSEXLENGTH+1);
2587
_gui->writeEvent(evSysexColor);
2589
unsigned char dataQuality[2];
2590
dataQuality[0]=SYSEX_QUALITY;
2591
dataQuality[1]=data[NUM_QUALITY];
2592
setQuality((Quality)data[NUM_QUALITY]);
2593
MusECore::MidiPlayEvent evQuality(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataQuality, 2);
2594
_gui->writeEvent(evQuality);
2596
unsigned char dataFilter[2];
2597
dataFilter[0]=SYSEX_FILTER;
2598
dataFilter[1]=data[NUM_FILTER];
2599
setFilter((bool)data[NUM_FILTER]);
2600
MusECore::MidiPlayEvent evFilter(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataFilter, 2);
2601
_gui->writeEvent(evFilter);
2603
unsigned char dataFontSize[2];
2604
dataFontSize[0]=SYSEX_FONTSIZE;
2605
dataFontSize[1]=data[NUM_FONTSIZE];
2606
MusECore::MidiPlayEvent evFontSize(0, 0, MusECore::ME_SYSEX, (const unsigned char*)dataFontSize, 2);
2607
_gui->writeEvent(evFontSize);
2609
unsigned char dataIsInitSet[2];
2610
dataIsInitSet[0]=SYSEX_ISINITSET;
2611
dataIsInitSet[1]=data[NUM_ISINITSET];
2612
MusECore::MidiPlayEvent evIsInitSet(0, 0, MusECore::ME_SYSEX,
2613
(const unsigned char*)dataIsInitSet, 2);
2614
_gui->writeEvent(evIsInitSet);
2615
unsigned char dataInitSetPath[1+MAXSTRLENGTHINITSETPATH];
2616
dataInitSetPath[0]=SYSEX_INITSETPATH;
2617
for(int a = 0; a < MAXSTRLENGTHINITSETPATH; a++)
2618
dataInitSetPath[a+1] = data[a+NUM_INITSETPATH];
2619
MusECore::MidiPlayEvent evInitSetPath(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataInitSetPath,
2620
1+MAXSTRLENGTHINITSETPATH);
2621
_gui->writeEvent(evInitSetPath);
2622
//load background pix
2623
unsigned char dataIsBackgroundPix[2];
2624
dataIsBackgroundPix[0]=SYSEX_ISBACKGROUNDPIX;
2625
dataIsBackgroundPix[1]=data[NUM_ISBACKGROUNDPIX];
2626
MusECore::MidiPlayEvent evIsBackgroundPix(0, 0, MusECore::ME_SYSEX,
2627
(const unsigned char*)dataIsBackgroundPix, 2);
2628
_gui->writeEvent(evIsBackgroundPix);
2629
unsigned char dataBackgroundPixPath[1+MAXSTRLENGTHBACKGROUNDPIXPATH];
2630
dataBackgroundPixPath[0]=SYSEX_BACKGROUNDPIXPATH;
2631
for(int a = 0; a < MAXSTRLENGTHBACKGROUNDPIXPATH; a++)
2632
dataBackgroundPixPath[a+1] = data[a+NUM_BACKGROUNDPIXPATH];
2633
MusECore::MidiPlayEvent evBackgroundPixPath(0, 0, MusECore::ME_SYSEX,
2634
(const unsigned char*)dataBackgroundPixPath,
2635
1+MAXSTRLENGTHBACKGROUNDPIXPATH);
2636
_gui->writeEvent(evBackgroundPixPath);
2638
else _gui->saveConfigCheckBox->setChecked(false);
2641
_global.isReverbActivated = (bool)data[NUM_IS_REVERB_ON];
2642
unsigned char *dataReverbAct = new unsigned char[2];
2643
dataReverbAct[0]=SYSEX_REVERBACTIV;
2644
dataReverbAct[1]=(unsigned char)_global.isReverbActivated;
2645
MusECore::MidiPlayEvent evReverbAct(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataReverbAct, 2);
2646
_gui->writeEvent(evReverbAct);
2647
setReverbReturn((int)data[NUM_REVERB_RETURN]);
2648
unsigned char *dataReverbRet = new unsigned char[2];
2649
dataReverbRet[0]=SYSEX_REVERBRETURN;
2650
dataReverbRet[1]=(unsigned char)getReverbReturn();
2651
MusECore::MidiPlayEvent evReverbRet(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataReverbRet, 2);
2652
_gui->writeEvent(evReverbRet);
2653
MusECore::Plugin* p;
2654
p = MusEGlobal::plugins.find((const char*)&data[NUM_REVERB_LIB],
2655
(const char*)&data[NUM_REVERB_LABEL]);
2657
initPluginReverb(p);
2658
for(int i = 0; i < (int)_pluginIReverb->plugin()->controlInPorts(); i++) {
2660
//memcpy(&val, &data[(data[3] == SYSEX_INIT_DATA_VERSION_2 ? NUM_CONFIGLENGTH : NUM_DELAY_WET_DRY_MIX) // HACK
2661
memcpy(&val, &data[NUM_CONFIGLENGTH
2662
+ sizeof(float)*i], sizeof(float));
2663
_pluginIReverb->putParam(i, val);
2666
dataBuildRev = SYSEX_BUILDGUIREVERB;
2667
MusECore::MidiPlayEvent evSysexBuildRev(0, 0, MusECore::ME_SYSEX,
2668
(const unsigned char*)&dataBuildRev, 1);
2669
_gui->writeEvent(evSysexBuildRev);
2671
else _pluginIReverb = NULL;
2673
_global.isChorusActivated = (bool)data[NUM_IS_CHORUS_ON];
2674
unsigned char *dataChorusAct = new unsigned char[2];
2675
dataChorusAct[0]=SYSEX_CHORUSACTIV;
2676
dataChorusAct[1]=(unsigned char)_global.isChorusActivated;
2677
MusECore::MidiPlayEvent evChorusAct(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataChorusAct, 2);
2678
_gui->writeEvent(evChorusAct);
2679
setChorusReturn((int)data[NUM_CHORUS_RETURN]);
2680
unsigned char *dataChorusRet = new unsigned char[2];
2681
dataChorusRet[0]=SYSEX_CHORUSRETURN;
2682
dataChorusRet[1]=(unsigned char)getChorusReturn();
2683
MusECore::MidiPlayEvent evChorusRet(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataChorusRet, 2);
2684
_gui->writeEvent(evChorusRet);
2685
p = MusEGlobal::plugins.find((const char*)&data[NUM_CHORUS_LIB],
2686
(const char*)&data[NUM_CHORUS_LABEL]);
2688
initPluginChorus(p);
2689
for(int i = 0; i < (int)_pluginIChorus->plugin()->controlInPorts(); i++) {
2691
//memcpy(&val, &data[(data[3] == SYSEX_INIT_DATA_VERSION_2 ? NUM_CONFIGLENGTH : NUM_DELAY_WET_DRY_MIX) // HACK
2692
memcpy(&val, &data[NUM_CONFIGLENGTH
2693
+ sizeof(float)*(int)data[NUM_REVERB_PARAM_NBR]
2696
_pluginIChorus->putParam(i, val);
2699
dataBuildCho = SYSEX_BUILDGUICHORUS;
2700
MusECore::MidiPlayEvent evSysexBuildCho(0, 0, MusECore::ME_SYSEX,
2701
(const unsigned char*)&dataBuildCho, 1);
2702
_gui->writeEvent(evSysexBuildCho);
2704
else _pluginIChorus = NULL;
2706
_global.isDelayActivated = (bool)data[NUM_IS_DELAY_ON];
2707
unsigned char *dataDelayAct = new unsigned char[2];
2708
dataDelayAct[0]=SYSEX_DELAYACTIV;
2709
dataDelayAct[1]=(unsigned char)_global.isDelayActivated;
2710
MusECore::MidiPlayEvent evDelayAct(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataDelayAct, 2);
2711
_gui->writeEvent(evDelayAct);
2712
setDelayReturn((int)data[NUM_DELAY_RETURN]);
2713
unsigned char *dataDelayRet = new unsigned char[2];
2714
dataDelayRet[0]=SYSEX_DELAYRETURN;
2715
dataDelayRet[1]=(unsigned char)getDelayReturn();
2716
MusECore::MidiPlayEvent evDelayRet(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataDelayRet, 2);
2717
_gui->writeEvent(evDelayRet);
2718
//initPluginDelay(MusEGlobal::plugins.find("pandelay", "pandelay"));
2720
memcpy(&delayfloat, &data[NUM_DELAY_BPM], sizeof(float));
2721
//setDelayBPM(delayfloat);
2722
if(_pluginIDelay) _pluginIDelay->putParam(0, delayfloat);
2723
char dataDelayBPM[sizeof(float)+1];
2724
dataDelayBPM[0] = SYSEX_DELAYBPM;
2725
memcpy(&dataDelayBPM[1], &delayfloat, sizeof(float));
2726
MusECore::MidiPlayEvent evSysexDelayBPM(0, 0, MusECore::ME_SYSEX,
2727
(const unsigned char*)dataDelayBPM,
2729
_gui->writeEvent(evSysexDelayBPM);
2730
memcpy(&delayfloat, &data[NUM_DELAY_BEATRATIO], sizeof(float));
2731
//setDelayBeatRatio(delayfloat);
2732
if(_pluginIDelay) _pluginIDelay->putParam(1, delayfloat);
2733
char dataDelayBeatRatio[sizeof(float)+1];
2734
dataDelayBeatRatio[0] = SYSEX_DELAYBEATRATIO;
2735
memcpy(&dataDelayBeatRatio[1], &delayfloat, sizeof(float));
2736
MusECore::MidiPlayEvent evSysexDelayBeatRatio(0, 0, MusECore::ME_SYSEX,
2737
(const unsigned char*)dataDelayBeatRatio,
2739
_gui->writeEvent(evSysexDelayBeatRatio);
2740
memcpy(&delayfloat, &data[NUM_DELAY_FEEDBACK], sizeof(float));
2741
//setDelayFeedback(delayfloat);
2742
if(_pluginIDelay) _pluginIDelay->putParam(2, delayfloat);
2743
char dataDelayFeedback[sizeof(float)+1];
2744
dataDelayFeedback[0] = SYSEX_DELAYFEEDBACK;
2745
memcpy(&dataDelayFeedback[1], &delayfloat, sizeof(float));
2746
MusECore::MidiPlayEvent evSysexDelayFeedback(0, 0, MusECore::ME_SYSEX,
2747
(const unsigned char*)dataDelayFeedback,
2749
_gui->writeEvent(evSysexDelayFeedback);
2750
memcpy(&delayfloat, &data[NUM_DELAY_LFO_FREQ], sizeof(float));
2751
//setDelayLFOFreq(delayfloat);
2752
if(_pluginIDelay) _pluginIDelay->putParam(3, delayfloat);
2753
char dataDelayLFOFreq[sizeof(float)+1];
2754
dataDelayLFOFreq[0] = SYSEX_DELAYLFOFREQ;
2755
memcpy(&dataDelayLFOFreq[1], &delayfloat, sizeof(float));
2756
MusECore::MidiPlayEvent evSysexDelayLFOFreq(0, 0, MusECore::ME_SYSEX,
2757
(const unsigned char*)dataDelayLFOFreq,
2759
_gui->writeEvent(evSysexDelayLFOFreq);
2760
memcpy(&delayfloat, &data[NUM_DELAY_LFO_DEPTH], sizeof(float));
2761
//setDelayLFODepth(delayfloat);
2762
if(_pluginIDelay) _pluginIDelay->putParam(4, delayfloat);
2763
char dataDelayLFODepth[sizeof(float)+1];
2764
dataDelayLFODepth[0] = SYSEX_DELAYLFODEPTH;
2765
memcpy(&dataDelayLFODepth[1], &delayfloat, sizeof(float));
2766
MusECore::MidiPlayEvent evSysexDelayLFODepth(0, 0, MusECore::ME_SYSEX,
2767
(const unsigned char*)dataDelayLFODepth,
2769
_gui->writeEvent(evSysexDelayLFODepth);
2771
// if(data[3] == SYSEX_INIT_DATA_VERSION_2)
2773
// memcpy(&delayfloat, &data[NUM_DELAY_WET_DRY_MIX], sizeof(float));
2774
// //setDelayLFODepth(delayfloat);
2775
// if(_pluginIDelay) _pluginIDelay->putParam(5, delayfloat);
2776
// char dataDelayWetDryMix[sizeof(float)+1];
2777
// dataDelayWetDryMix[0] = SYSEX_DELAYWETDRYMIX;
2778
// memcpy(&dataDelayWetDryMix[1], &delayfloat, sizeof(float));
2779
// MusECore::MidiPlayEvent evSysexDelayWetDryMix(0, 0, MusECore::ME_SYSEX,
2780
// (const unsigned char*)dataDelayWetDryMix,
2781
// sizeof(float)+1);
2782
// _gui->writeEvent(evSysexDelayWetDryMix);
2785
//load the set compressed
2787
//(data[3] == SYSEX_INIT_DATA_VERSION_2 ? NUM_CONFIGLENGTH : NUM_DELAY_WET_DRY_MIX) // HACK
2789
+ sizeof(float)*(int)data[NUM_REVERB_PARAM_NBR]
2790
+ sizeof(float)*(int)data[NUM_CHORUS_PARAM_NBR];
2791
QByteArray baComp = QByteArray((const char*)&data[offset], length-offset);
2793
//uncompress the set
2794
QByteArray baUncomp = qUncompress(baComp);
2796
//save the set in a temporary file and
2797
// read the XML file and create DOM tree
2798
QTemporaryFile file;
2800
file.write(baUncomp);
2801
QDomDocument domTree;
2802
file.reset(); //seek the start of the file
2803
domTree.setContent(&file);
2805
QDomNode node = domTree.documentElement();
2807
while (!node.isNull()) {
2808
QDomElement e = node.toElement();
2811
if (e.tagName() == "deicsOnzeSet") {
2812
QString version = e.attribute(QString("version"));
2813
if (version == "1.0") {
2814
for(int c = 0; c < NBRCHANNELS; c++) _preset[c]=_initialPreset;
2816
if((bool)data[NUM_SAVEONLYUSED]) {
2818
//updateSaveOnlyUsed(true);
2822
while(!_set->_categoryVector.empty())
2823
delete(*_set->_categoryVector.begin());
2824
//updateSaveOnlyUsed(false);
2826
_set->readSet(node.firstChild());
2827
//display load preset
2830
else printf("Wrong set version : %s\n",
2831
version.toLatin1().constData());
2833
node = node.nextSibling();
2835
//send sysex to the gui to load the set (actually not because it doesn't
2836
//work -the code is just zapped in the middle???-, so it is done above
2837
//int dL=2+baUncomp.size();
2840
dataSend[0]=SYSEX_LOADSET;
2841
dataSend[1]=data[NUM_SAVEONLYUSED];
2842
//for(int i=2; i<dL; i++) dataSend[i]=baUncop.at(i-2);
2843
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX,(const unsigned char*)dataSend, dL);
2844
_gui->writeEvent(evSysex);
2846
//select programs per channel
2847
for(int c = 0; c < NBRCHANNELS; c++) {
2848
int hbank=(int)data[NUM_CURRENTHBANK+c];
2849
int lbank=(int)data[NUM_CURRENTLBANK+c];
2850
int prog=(int)data[NUM_CURRENTPROG+c];
2851
programSelect(c, hbank, lbank, prog);
2852
int val=prog+(lbank<<8)+(hbank<<16);
2853
MusECore::MidiPlayEvent evProgSel(0, 0, c, MusECore::ME_CONTROLLER, MusECore::CTRL_PROGRAM, val);
2854
_gui->writeEvent(evProgSel);
2823
2858
//---------------------------------------------------------
2954
2966
case SYSEX_CHORUSACTIV:
2955
///_global.isChorusActivated = (bool)data[1];
2956
2967
_global.isChorusActivated = (bool)d[1];
2958
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
2959
2969
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
2960
2970
_gui->writeEvent(evSysex);
2963
2973
case SYSEX_CHORUSPARAM:
2964
///index = (int)data[1];
2965
///memcpy(&f, &data[2], sizeof(float));
2966
2974
index = (int)d[1];
2967
2975
memcpy(&f, &d[2], sizeof(float));
2968
setChorusParam(index, (double)f);
2976
setChorusParam(index, f);
2970
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
2971
2978
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
2972
2979
_gui->writeEvent(evSysex);
2975
2982
case SYSEX_REVERBACTIV:
2976
///_global.isReverbActivated = (bool)data[1];
2977
2983
_global.isReverbActivated = (bool)d[1];
2979
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
2980
2985
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
2981
2986
_gui->writeEvent(evSysex);
2984
2989
case SYSEX_REVERBPARAM:
2985
///index = (int)data[1];
2986
///memcpy(&f, &data[2], sizeof(float));
2987
2990
index = (int)d[1];
2988
2991
memcpy(&f, &d[2], sizeof(float));
2989
setReverbParam(index, (double)f);
2992
setReverbParam(index, f);
2991
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
2992
2994
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
2993
2995
_gui->writeEvent(evSysex);
2996
2998
case SYSEX_DELAYACTIV:
2997
///_global.isDelayActivated = (bool)data[1];
2998
2999
_global.isDelayActivated = (bool)d[1];
3000
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
3001
3001
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3002
3002
_gui->writeEvent(evSysex);
3005
3005
case SYSEX_CHORUSRETURN:
3006
///setChorusReturn((int)data[1]);
3007
3006
setChorusReturn((int)d[1]);
3009
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
3010
3008
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3011
3009
_gui->writeEvent(evSysex);
3014
3012
case SYSEX_REVERBRETURN:
3015
///setReverbReturn((int)data[1]);
3016
3013
setReverbReturn((int)d[1]);
3018
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
3019
3015
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3020
3016
_gui->writeEvent(evSysex);
3023
3019
case SYSEX_DELAYRETURN:
3024
///setDelayReturn((int)data[1]);
3025
3020
setDelayReturn((int)d[1]);
3027
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
3028
3022
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3029
3023
_gui->writeEvent(evSysex);
3032
3026
case SYSEX_SELECTREVERB:
3033
3027
MusECore::Plugin* pluginReverb;
3034
///memcpy(&pluginReverb, &data[1], sizeof(MusECore::Plugin*));
3035
3028
memcpy(&pluginReverb, &d[1], sizeof(MusECore::Plugin*));
3036
3029
initPluginReverb(pluginReverb);
3038
3031
case SYSEX_SELECTCHORUS:
3039
3032
MusECore::Plugin* pluginChorus;
3040
///memcpy(&pluginChorus, &data[1], sizeof(MusECore::Plugin*));
3041
3033
memcpy(&pluginChorus, &d[1], sizeof(MusECore::Plugin*));
3042
3034
initPluginChorus(pluginChorus);
3044
3036
case SYSEX_DELAYBPM:
3045
///memcpy(&f, &data[1], sizeof(float));
3046
3037
memcpy(&f, &d[1], sizeof(float));
3047
3038
setDelayBPM(f);
3049
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
3050
3040
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3051
3041
_gui->writeEvent(evSysex);
3054
3044
case SYSEX_DELAYBEATRATIO:
3055
///memcpy(&f, &data[1], sizeof(float));
3056
3045
memcpy(&f, &d[1], sizeof(float));
3057
3046
setDelayBeatRatio(f);
3059
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
3060
3048
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3061
3049
_gui->writeEvent(evSysex);
3064
3052
case SYSEX_DELAYFEEDBACK:
3065
///memcpy(&f, &data[1], sizeof(float));
3066
3053
memcpy(&f, &d[1], sizeof(float));
3067
3054
setDelayFeedback(f);
3069
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
3070
3056
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3071
3057
_gui->writeEvent(evSysex);
3074
3060
case SYSEX_DELAYLFOFREQ:
3075
///memcpy(&f, &data[1], sizeof(float));
3076
3061
memcpy(&f, &d[1], sizeof(float));
3077
3062
setDelayLFOFreq(f);
3079
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
3080
3064
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3081
3065
_gui->writeEvent(evSysex);
3084
3068
case SYSEX_DELAYLFODEPTH:
3085
///memcpy(&f, &data[1], sizeof(float));
3086
3069
memcpy(&f, &d[1], sizeof(float));
3087
3070
setDelayLFODepth(f);
3089
///MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, data, length);
3090
3072
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3091
3073
_gui->writeEvent(evSysex);
3076
case SYSEX_DELAYWETDRYMIX:
3077
memcpy(&f, &d[1], sizeof(float));
3080
MusECore::MidiPlayEvent evSysex(0, 0, MusECore::ME_SYSEX, d, l);
3081
_gui->writeEvent(evSysex);