Fixes for some MIDI-CC handling.

Extension with MIDI-CCs for the user manual.
pull/32/head
Holger Wirtz 4 years ago
parent 3f66e3e1b0
commit 68fa709cda
  1. 26
      MicroDexed.ino
  2. 1
      dexed.cpp
  3. 29
      doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.md
  4. BIN
      doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.pdf

@ -669,12 +669,12 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue)
Serial.println(F("BANK-SELECT MSB CC")); Serial.println(F("BANK-SELECT MSB CC"));
#endif #endif
configuration.performance.bank[instance_id] = constrain((inValue << 7)&configuration.performance.bank[instance_id], 0, MAX_BANKS - 1); 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); /* 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)) if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_voice_select))
{ {
LCDML.OTHER_updateFunc(); LCDML.OTHER_updateFunc();
LCDML.loop_menu(); LCDML.loop_menu();
} } */
break; break;
case 1: case 1:
#ifdef DEBUG #ifdef DEBUG
@ -731,12 +731,12 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue)
Serial.println(F("BANK-SELECT LSB CC")); Serial.println(F("BANK-SELECT LSB CC"));
#endif #endif
configuration.performance.bank[instance_id] = constrain(inValue, 0, MAX_BANKS - 1); 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); /*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)) if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_voice_select))
{ {
LCDML.OTHER_updateFunc(); LCDML.OTHER_updateFunc();
LCDML.loop_menu(); LCDML.loop_menu();
} }*/
break; break;
case 64: case 64:
MicroDexed[instance_id]->setSustain(inValue > 63); MicroDexed[instance_id]->setSustain(inValue > 63);
@ -816,10 +816,16 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue)
MicroDexed[instance_id]->notesOff(); MicroDexed[instance_id]->notesOff();
break; break;
case 126: case 126:
MicroDexed[instance_id]->setMonoMode(true); if (inValue > 0)
MicroDexed[instance_id]->setMonoMode(true);
else
MicroDexed[instance_id]->setMonoMode(false);
break; break;
case 127: case 127:
MicroDexed[instance_id]->setMonoMode(false); if (inValue > 0)
MicroDexed[instance_id]->setMonoMode(true);
else
MicroDexed[instance_id]->setMonoMode(false);
break; break;
} }
} }

@ -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) void Dexed::setPortamentoMode(uint8_t portamento_mode, uint8_t portamento_glissando, uint8_t portamento_time)
{ {
controllers.portamento_cc = portamento_time; controllers.portamento_cc = portamento_time;
controllers.portamento_enable_cc=portamento_mode>63;
if (portamento_time > 0) if (portamento_time > 0)
controllers.portamento_enable_cc = true; controllers.portamento_enable_cc = true;

@ -951,16 +951,16 @@ Another way of editing voice presets is to use an editor like Edisyn. For downlo
| MIDI-CC# | Target | | MIDI-CC# | Target |
|:--------:|:-------| |:--------:|:-------|
| 0 | Bank-Select MSB | | 0 | Bank-Select MSB (currently unused)|
| 1 | Modulation wheel | | 1 | Modulation wheel range|
| 2 | Breath controller | | 2 | Breath controller range|
| 4 | Foot controller | | 4 | Foot controller range|
| 5 | Portamento time | | 5 | Portamento time |
| 7 | Volume | | 7 | Volume |
| 10 | Panorama | | 10 | Panorama (0-62 = left, 63-64 = middle, 65-127 = right)|
| 32 | Bank-Select LSB| | 32 | Bank-Select LSB|
| 64 | Sustain | | 64 | Sustain (0 to 63 = Off, 64 to 127 = On)|
| 65 | Portamento mode | | 65 | Portamento (0 to 63 = Off, 64 to 127 = On)|
| 103 | Filter resonance | | 103 | Filter resonance |
| 104 | Filter cutoff | | 104 | Filter cutoff |
| 105 | Delay time | | 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 | | 107 | Delay volume |
| 120 | MIDI panic | | 120 | MIDI panic |
| 121 | Reset controllers | | 121 | Reset controllers |
| 123 | Notes off | | 123 | All notes off |
| 126 | Modo mode on | | 126 | Monophonic mode (0 = Polyphonic, >0 = On)|
| 127 | Modo mode off | | 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.
---
<div style="page-break-after: always"></div> <div style="page-break-after: always"></div>

Loading…
Cancel
Save