add hold mode

pull/791/head
Gergo Koteles 3 months ago
parent 04bb1c283f
commit 58affd3b4b
  1. 5
      src/mididevice.cpp
  2. 9
      src/minidexed.cpp
  3. 1
      src/minidexed.h

@ -47,6 +47,7 @@ LOGMODULE ("mididevice");
#define MIDI_CC_BANK_SUSTAIN 64
#define MIDI_CC_PORTAMENTO 65
#define MIDI_CC_SOSTENUTO 66
#define MIDI_CC_HOLD2 69
#define MIDI_CC_RESONANCE 71
#define MIDI_CC_FREQUENCY_CUTOFF 74
#define MIDI_CC_REVERB_LEVEL 91
@ -425,6 +426,10 @@ void CMIDIDevice::MIDIMessageHandler (const u8 *pMessage, size_t nLength, unsign
m_pSynthesizer->setPortamentoMode (pMessage[2] >= 64, nTG);
break;
case MIDI_CC_HOLD2:
m_pSynthesizer->setHoldMode (pMessage[2] >= 64, nTG);
break;
case MIDI_CC_RESONANCE:
m_pSynthesizer->SetResonance (maplong (pMessage[2], 0, 127, 0, 99), nTG);
break;

@ -839,6 +839,15 @@ void CMiniDexed::setSostenuto(bool sostenuto, unsigned nTG)
m_pTG[nTG]->setSostenuto (sostenuto);
}
void CMiniDexed::setHoldMode(bool holdmode, unsigned nTG)
{
assert (nTG < CConfig::AllToneGenerators);
if (nTG >= m_nToneGenerators) return; // Not an active TG
assert (m_pTG[nTG]);
m_pTG[nTG]->setHold (holdmode);
}
void CMiniDexed::panic(uint8_t value, unsigned nTG)
{
assert (nTG < CConfig::AllToneGenerators);

@ -85,6 +85,7 @@ public:
void setSustain (bool sustain, unsigned nTG);
void setSostenuto (bool sostenuto, unsigned nTG);
void setHoldMode(bool holdmode, unsigned nTG);
void panic (uint8_t value, unsigned nTG);
void notesOff (uint8_t value, unsigned nTG);
void setModWheel (uint8_t value, unsigned nTG);

Loading…
Cancel
Save