diff --git a/MicroDexed.ino b/MicroDexed.ino index c7c3d64..5a748d9 100644 --- a/MicroDexed.ino +++ b/MicroDexed.ino @@ -669,12 +669,12 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue) Serial.println(F("BANK-SELECT MSB CC")); #endif configuration.performance.bank[instance_id] = constrain((inValue << 7)&configuration.performance.bank[instance_id], 0, MAX_BANKS - 1); - load_sd_voice(configuration.performance.bank[instance_id], configuration.performance.voice[instance_id], instance_id); - if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_voice_select)) - { + /* load_sd_voice(configuration.performance.bank[instance_id], configuration.performance.voice[instance_id], instance_id); + if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_voice_select)) + { LCDML.OTHER_updateFunc(); LCDML.loop_menu(); - } + } */ break; case 1: #ifdef DEBUG @@ -731,12 +731,12 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue) Serial.println(F("BANK-SELECT LSB CC")); #endif configuration.performance.bank[instance_id] = constrain(inValue, 0, MAX_BANKS - 1); - load_sd_voice(configuration.performance.bank[instance_id], configuration.performance.voice[instance_id], instance_id); - if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_voice_select)) - { + /*load_sd_voice(configuration.performance.bank[instance_id], configuration.performance.voice[instance_id], instance_id); + if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_voice_select)) + { LCDML.OTHER_updateFunc(); LCDML.loop_menu(); - } + }*/ break; case 64: MicroDexed[instance_id]->setSustain(inValue > 63); @@ -816,10 +816,16 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue) MicroDexed[instance_id]->notesOff(); break; case 126: - MicroDexed[instance_id]->setMonoMode(true); + if (inValue > 0) + MicroDexed[instance_id]->setMonoMode(true); + else + MicroDexed[instance_id]->setMonoMode(false); break; case 127: - MicroDexed[instance_id]->setMonoMode(false); + if (inValue > 0) + MicroDexed[instance_id]->setMonoMode(true); + else + MicroDexed[instance_id]->setMonoMode(false); break; } } diff --git a/dexed.cpp b/dexed.cpp index 8ab5b85..9049849 100644 --- a/dexed.cpp +++ b/dexed.cpp @@ -753,6 +753,7 @@ void Dexed::setATController(uint8_t at_range, uint8_t at_assign, uint8_t at_mode void Dexed::setPortamentoMode(uint8_t portamento_mode, uint8_t portamento_glissando, uint8_t portamento_time) { controllers.portamento_cc = portamento_time; + controllers.portamento_enable_cc=portamento_mode>63; if (portamento_time > 0) controllers.portamento_enable_cc = true; diff --git a/doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.md b/doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.md index 0c58f6d..b9e5c40 100644 --- a/doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.md +++ b/doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.md @@ -951,16 +951,16 @@ Another way of editing voice presets is to use an editor like Edisyn. For downlo | MIDI-CC# | Target | |:--------:|:-------| -| 0 | Bank-Select MSB | -| 1 | Modulation wheel | -| 2 | Breath controller | -| 4 | Foot controller | +| 0 | Bank-Select MSB (currently unused)| +| 1 | Modulation wheel range| +| 2 | Breath controller range| +| 4 | Foot controller range| | 5 | Portamento time | | 7 | Volume | -| 10 | Panorama | +| 10 | Panorama (0-62 = left, 63-64 = middle, 65-127 = right)| | 32 | Bank-Select LSB| -| 64 | Sustain | -| 65 | Portamento mode | +| 64 | Sustain (0 to 63 = Off, 64 to 127 = On)| +| 65 | Portamento (0 to 63 = Off, 64 to 127 = On)| | 103 | Filter resonance | | 104 | Filter cutoff | | 105 | Delay time | @@ -968,9 +968,18 @@ Another way of editing voice presets is to use an editor like Edisyn. For downlo | 107 | Delay volume | | 120 | MIDI panic | | 121 | Reset controllers | -| 123 | Notes off | -| 126 | Modo mode on | -| 127 | Modo mode off | +| 123 | All notes off | +| 126 | Monophonic mode (0 = Polyphonic, >0 = On)| +| 127 | Polyphonic mode (0 = Mono, >0 = On)| + +--- +> __Hint on bank and voice selection:__ +> If you want to select a new voice preset, you can send a program change command. +> +> To change the bank there are two MIDI CCs (0 and 32), where MIDI CC 0 is currently not used. +> +> So to select a new voice preset you either have to send a program change command (then the bank is not changed) or change with MIDI-CC 32 the bank number followed by a program change for the voice preset number. +---
diff --git a/doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.pdf b/doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.pdf index 4c7a2df..d8f6137 100644 Binary files a/doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.pdf and b/doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.pdf differ