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. 14
      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"));
#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);
/* 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);
/*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,9 +816,15 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue)
MicroDexed[instance_id]->notesOff();
break;
case 126:
if (inValue > 0)
MicroDexed[instance_id]->setMonoMode(true);
else
MicroDexed[instance_id]->setMonoMode(false);
break;
case 127:
if (inValue > 0)
MicroDexed[instance_id]->setMonoMode(true);
else
MicroDexed[instance_id]->setMonoMode(false);
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)
{
controllers.portamento_cc = portamento_time;
controllers.portamento_enable_cc=portamento_mode>63;
if (portamento_time > 0)
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 |
|:--------:|:-------|
| 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.
---
<div style="page-break-after: always"></div>

Loading…
Cancel
Save