reset OPMask after voice load

If you change a voice, Dexed enables all operator.
Do the same in MiniDexed.
pull/870/head
Gergo Koteles 2 months ago
parent 0667f1b57a
commit e89b27f114
  1. 15
      src/minidexed.cpp
  2. 1
      src/minidexed.h

@ -657,6 +657,7 @@ void CMiniDexed::ProgramChange (unsigned nProgram, unsigned nTG)
assert (m_pTG[nTG]);
m_pTG[nTG]->loadVoiceParameters (Buffer);
setOPMask(0b111111, nTG);
if (m_pConfig->GetMIDIAutoVoiceDumpOnPC())
{
@ -1183,14 +1184,13 @@ void CMiniDexed::SetVoiceParameter (uint8_t uchOffset, uint8_t uchValue, unsigne
{
if (uchValue)
{
m_uchOPMask[nTG] |= 1 << nOP;
setOPMask(m_uchOPMask[nTG] | 1 << nOP, nTG);
}
else
{
m_uchOPMask[nTG] &= ~(1 << nOP);
setOPMask(m_uchOPMask[nTG] & ~(1 << nOP), nTG);
}
m_pTG[nTG]->setOPAll (m_uchOPMask[nTG]);
return;
}
@ -1791,6 +1791,8 @@ void CMiniDexed::loadVoiceParameters(const uint8_t* data, uint8_t nTG)
m_pTG[nTG]->loadVoiceParameters(&voice[6]);
m_pTG[nTG]->doRefreshVoice();
setOPMask(0b111111, nTG);
m_UI.ParameterChanged ();
}
@ -1847,6 +1849,12 @@ void CMiniDexed::getSysExVoiceDump(uint8_t* dest, uint8_t nTG)
dest[162] = 0xF7; // SysEx end
}
void CMiniDexed::setOPMask(uint8_t uchOPMask, uint8_t nTG)
{
m_uchOPMask[nTG] = uchOPMask;
m_pTG[nTG]->setOPAll (m_uchOPMask[nTG]);
}
void CMiniDexed::setMasterVolume(float32_t vol)
{
if (vol < 0.0)
@ -2021,6 +2029,7 @@ void CMiniDexed::LoadPerformanceParameters(void)
{
uint8_t* tVoiceData = m_PerformanceConfig.GetVoiceDataFromTxt(nTG);
m_pTG[nTG]->loadVoiceParameters(tVoiceData);
setOPMask(0b111111, nTG);
}
setMonoMode(m_PerformanceConfig.GetMonoMode(nTG) ? 1 : 0, nTG);
SetReverbSend (m_PerformanceConfig.GetReverbSend (nTG), nTG);

@ -122,6 +122,7 @@ public:
void loadVoiceParameters(const uint8_t* data, uint8_t nTG);
void setVoiceDataElement(uint8_t data, uint8_t number, uint8_t nTG);
void getSysExVoiceDump(uint8_t* dest, uint8_t nTG);
void setOPMask(uint8_t uchOPMask, uint8_t nTG);
void setModController (unsigned controller, unsigned parameter, uint8_t value, uint8_t nTG);
unsigned getModController (unsigned controller, unsigned parameter, uint8_t nTG);

Loading…
Cancel
Save