Revert "Implementationg proposition for:"

This reverts commit a69e97f61d.
pull/409/head
abscisys 2 years ago
parent 11b38851af
commit 5317265624
  1. 422
      src/minidexed.cpp
  2. 11
      src/minidexed.h
  3. 41
      src/performanceconfig.cpp
  4. 13
      src/performanceconfig.h
  5. 50
      src/uimenu.cpp
  6. 15
      src/uimenu.h

@ -37,9 +37,6 @@ CMiniDexed::CMiniDexed (CConfig *pConfig, CInterruptSystem *pInterrupt,
CMultiCoreSupport (CMemorySystem::Get ()), CMultiCoreSupport (CMemorySystem::Get ()),
#endif #endif
m_pConfig (pConfig), m_pConfig (pConfig),
m_bSavePerformanceNewFile (false),
m_bSetNewPerformance (false),
m_bDeletePerformance (false),
m_UI (this, pGPIOManager, pI2CMaster, pConfig), m_UI (this, pGPIOManager, pI2CMaster, pConfig),
m_PerformanceConfig (pFileSystem), m_PerformanceConfig (pFileSystem),
m_PCKeyboard (this, pConfig, &m_UI), m_PCKeyboard (this, pConfig, &m_UI),
@ -54,8 +51,10 @@ CMiniDexed::CMiniDexed (CConfig *pConfig, CInterruptSystem *pInterrupt,
1000000U * pConfig->GetChunkSize ()/2 / pConfig->GetSampleRate ()), 1000000U * pConfig->GetChunkSize ()/2 / pConfig->GetSampleRate ()),
m_bProfileEnabled (m_pConfig->GetProfileEnabled ()), m_bProfileEnabled (m_pConfig->GetProfileEnabled ()),
m_bSavePerformance (false), m_bSavePerformance (false),
m_bLoadPerformanceBusy(false), m_bSavePerformanceNewFile (false),
m_bSaveAsDefault(false) m_bSetNewPerformance (false),
m_bDeletePerformance (false),
m_bLoadPerformanceBusy(false)
{ {
assert (m_pConfig); assert (m_pConfig);
@ -158,12 +157,6 @@ CMiniDexed::CMiniDexed (CConfig *pConfig, CInterruptSystem *pInterrupt,
// END setup reverb // END setup reverb
SetParameter (ParameterCompressorEnable, 1); SetParameter (ParameterCompressorEnable, 1);
// BEGIN Unison
SetParameter (ParameterUnisonEnable, 0);
SetParameter (ParameterUnisonPanSpread, 60);
SetParameter (ParameterUnisonDetuneSpread, 12);
// END Unison
}; };
bool CMiniDexed::Initialize (void) bool CMiniDexed::Initialize (void)
@ -419,9 +412,8 @@ void CMiniDexed::SetPan (unsigned nPan, unsigned nTG)
assert (nTG < CConfig::ToneGenerators); assert (nTG < CConfig::ToneGenerators);
m_nPan[nTG] = nPan; m_nPan[nTG] = nPan;
float normPan = mapfloat(nPan,0,127,0.0f,1.0f); tg_mixer->pan(nTG,mapfloat(nPan,0,127,0.0f,1.0f));
tg_mixer->pan(nTG,normPan); reverb_send_mixer->pan(nTG,mapfloat(nPan,0,127,0.0f,1.0f));
reverb_send_mixer->pan(nTG,normPan);
m_UI.ParameterChanged (); m_UI.ParameterChanged ();
} }
@ -694,57 +686,6 @@ void CMiniDexed::SetParameter (TParameter Parameter, int nValue)
m_ReverbSpinLock.Release (); m_ReverbSpinLock.Release ();
break; break;
#ifdef ARM_ALLOW_MULTI_CORE
/* Unison START */
case ParameterUnisonEnable:
assert (CConfig::ToneGenerators > 1);
nValue=constrain((int)nValue,0,1);
if (!!nValue) {
for (unsigned nTG = 0; nTG < CConfig::ToneGenerators; nTG++)
{
SetTGParameter(TGParameterMIDIChannel, GetTGParameter(TGParameterMIDIChannel, 0), nTG);
SetTGParameter(TGParameterVoiceBank, GetTGParameter(TGParameterVoiceBank, 0), nTG);
SetTGParameter(TGParameterProgram, GetTGParameter(TGParameterProgram, 0), nTG);
SetTGParameter(TGParameterVolume, GetTGParameter(TGParameterVolume, 0), nTG);
}
// setting unison panning and detuning
SetParameter (ParameterUnisonPanSpread, m_nParameter[ParameterUnisonPanSpread]);
SetParameter (ParameterUnisonDetuneSpread, m_nParameter[ParameterUnisonDetuneSpread]);
}
break;
case ParameterUnisonPanSpread:
assert (CConfig::ToneGenerators > 1);
nValue=constrain((int)nValue,0,63);
if (!!GetParameter(ParameterUnisonEnable))
{
int step = 2 * nValue / (CConfig::ToneGenerators - 1);
int pan = 64 - nValue;
for (unsigned nTG = 0; nTG < CConfig::ToneGenerators; nTG++)
{
SetTGParameter(TGParameterPan, constrain((int)pan,0,127), nTG);
pan += step;
}
}
break;
case ParameterUnisonDetuneSpread:
assert (CConfig::ToneGenerators > 1);
nValue=constrain((int)nValue,0,99);
if (!!GetParameter(ParameterUnisonEnable))
{
int step = 2 * nValue / (CConfig::ToneGenerators - 1);
int detune = -nValue;
for (unsigned nTG = 0; nTG < CConfig::ToneGenerators; nTG++)
{
SetTGParameter(TGParameterMasterTune, constrain((int)detune,-99,99), nTG);
detune += step;
}
}
break;
/* Unison END */
#endif
default: default:
assert (0); assert (0);
break; break;
@ -759,247 +700,173 @@ int CMiniDexed::GetParameter (TParameter Parameter)
void CMiniDexed::SetTGParameter (TTGParameter Parameter, int nValue, unsigned nTG) void CMiniDexed::SetTGParameter (TTGParameter Parameter, int nValue, unsigned nTG)
{ {
if (nTG < CConfig::ToneGenerators) assert (nTG < CConfig::ToneGenerators);
{
assert (nTG < CConfig::ToneGenerators);
switch (Parameter)
{
case TGParameterVoiceBank: BankSelectLSB (nValue, nTG); break;
case TGParameterProgram: ProgramChange (nValue, nTG); break;
case TGParameterVolume: SetVolume (nValue, nTG); break;
case TGParameterPan: SetPan (nValue, nTG); break;
case TGParameterMasterTune: SetMasterTune (nValue, nTG); break;
case TGParameterCutoff: SetCutoff (nValue, nTG); break;
case TGParameterResonance: SetResonance (nValue, nTG); break;
case TGParameterPitchBendRange: setPitchbendRange (nValue, nTG); break;
case TGParameterPitchBendStep: setPitchbendStep (nValue, nTG); break;
case TGParameterPortamentoMode: setPortamentoMode (nValue, nTG); break;
case TGParameterPortamentoGlissando: setPortamentoGlissando (nValue, nTG); break;
case TGParameterPortamentoTime: setPortamentoTime (nValue, nTG); break;
case TGParameterMonoMode: setMonoMode (nValue , nTG); break;
case TGParameterMWRange: setModController(0, 0, nValue, nTG); break;
case TGParameterMWPitch: setModController(0, 1, nValue, nTG); break;
case TGParameterMWAmplitude: setModController(0, 2, nValue, nTG); break;
case TGParameterMWEGBias: setModController(0, 3, nValue, nTG); break;
case TGParameterFCRange: setModController(1, 0, nValue, nTG); break;
case TGParameterFCPitch: setModController(1, 1, nValue, nTG); break;
case TGParameterFCAmplitude: setModController(1, 2, nValue, nTG); break;
case TGParameterFCEGBias: setModController(1, 3, nValue, nTG); break;
case TGParameterBCRange: setModController(2, 0, nValue, nTG); break;
case TGParameterBCPitch: setModController(2, 1, nValue, nTG); break;
case TGParameterBCAmplitude: setModController(2, 2, nValue, nTG); break;
case TGParameterBCEGBias: setModController(2, 3, nValue, nTG); break;
case TGParameterATRange: setModController(3, 0, nValue, nTG); break;
case TGParameterATPitch: setModController(3, 1, nValue, nTG); break;
case TGParameterATAmplitude: setModController(3, 2, nValue, nTG); break;
case TGParameterATEGBias: setModController(3, 3, nValue, nTG); break;
case TGParameterMIDIChannel:
assert (0 <= nValue && nValue <= 255);
SetMIDIChannel ((uint8_t) nValue, nTG);
break;
case TGParameterReverbSend: SetReverbSend (nValue, nTG); break;
default:
assert (0);
break;
}
#ifdef ARM_ALLOW_MULTI_CORE
/* ALL TG START */
} else if (nTG == ALL_TG_ID) { switch (Parameter)
for (unsigned i = 0; i < CConfig::ToneGenerators; i++) {
{ case TGParameterVoiceBank: BankSelectLSB (nValue, nTG); break;
SetTGParameter(Parameter, nValue, i); case TGParameterProgram: ProgramChange (nValue, nTG); break;
} case TGParameterVolume: SetVolume (nValue, nTG); break;
case TGParameterPan: SetPan (nValue, nTG); break;
case TGParameterMasterTune: SetMasterTune (nValue, nTG); break;
case TGParameterCutoff: SetCutoff (nValue, nTG); break;
case TGParameterResonance: SetResonance (nValue, nTG); break;
case TGParameterPitchBendRange: setPitchbendRange (nValue, nTG); break;
case TGParameterPitchBendStep: setPitchbendStep (nValue, nTG); break;
case TGParameterPortamentoMode: setPortamentoMode (nValue, nTG); break;
case TGParameterPortamentoGlissando: setPortamentoGlissando (nValue, nTG); break;
case TGParameterPortamentoTime: setPortamentoTime (nValue, nTG); break;
case TGParameterMonoMode: setMonoMode (nValue , nTG); break;
case TGParameterMWRange: setModController(0, 0, nValue, nTG); break;
case TGParameterMWPitch: setModController(0, 1, nValue, nTG); break;
case TGParameterMWAmplitude: setModController(0, 2, nValue, nTG); break;
case TGParameterMWEGBias: setModController(0, 3, nValue, nTG); break;
case TGParameterFCRange: setModController(1, 0, nValue, nTG); break;
case TGParameterFCPitch: setModController(1, 1, nValue, nTG); break;
case TGParameterFCAmplitude: setModController(1, 2, nValue, nTG); break;
case TGParameterFCEGBias: setModController(1, 3, nValue, nTG); break;
case TGParameterBCRange: setModController(2, 0, nValue, nTG); break;
case TGParameterBCPitch: setModController(2, 1, nValue, nTG); break;
case TGParameterBCAmplitude: setModController(2, 2, nValue, nTG); break;
case TGParameterBCEGBias: setModController(2, 3, nValue, nTG); break;
case TGParameterATRange: setModController(3, 0, nValue, nTG); break;
case TGParameterATPitch: setModController(3, 1, nValue, nTG); break;
case TGParameterATAmplitude: setModController(3, 2, nValue, nTG); break;
case TGParameterATEGBias: setModController(3, 3, nValue, nTG); break;
case TGParameterMIDIChannel:
assert (0 <= nValue && nValue <= 255);
SetMIDIChannel ((uint8_t) nValue, nTG);
break;
/* ALL TG END */ case TGParameterReverbSend: SetReverbSend (nValue, nTG); break;
#endif
default:
assert (0);
break;
} }
} }
int CMiniDexed::GetTGParameter (TTGParameter Parameter, unsigned nTG) int CMiniDexed::GetTGParameter (TTGParameter Parameter, unsigned nTG)
{ {
if (nTG < CConfig::ToneGenerators) assert (nTG < CConfig::ToneGenerators);
{
assert (nTG < CConfig::ToneGenerators);
switch (Parameter)
{
case TGParameterVoiceBank: return m_nVoiceBankID[nTG];
case TGParameterProgram: return m_nProgram[nTG];
case TGParameterVolume: return m_nVolume[nTG];
case TGParameterPan: return m_nPan[nTG];
case TGParameterMasterTune: return m_nMasterTune[nTG];
case TGParameterCutoff: return m_nCutoff[nTG];
case TGParameterResonance: return m_nResonance[nTG];
case TGParameterMIDIChannel: return m_nMIDIChannel[nTG];
case TGParameterReverbSend: return m_nReverbSend[nTG];
case TGParameterPitchBendRange: return m_nPitchBendRange[nTG];
case TGParameterPitchBendStep: return m_nPitchBendStep[nTG];
case TGParameterPortamentoMode: return m_nPortamentoMode[nTG];
case TGParameterPortamentoGlissando: return m_nPortamentoGlissando[nTG];
case TGParameterPortamentoTime: return m_nPortamentoTime[nTG];
case TGParameterMonoMode: return m_bMonoMode[nTG] ? 1 : 0;
case TGParameterMWRange: return getModController(0, 0, nTG);
case TGParameterMWPitch: return getModController(0, 1, nTG);
case TGParameterMWAmplitude: return getModController(0, 2, nTG);
case TGParameterMWEGBias: return getModController(0, 3, nTG);
case TGParameterFCRange: return getModController(1, 0, nTG);
case TGParameterFCPitch: return getModController(1, 1, nTG);
case TGParameterFCAmplitude: return getModController(1, 2, nTG);
case TGParameterFCEGBias: return getModController(1, 3, nTG);
case TGParameterBCRange: return getModController(2, 0, nTG);
case TGParameterBCPitch: return getModController(2, 1, nTG);
case TGParameterBCAmplitude: return getModController(2, 2, nTG);
case TGParameterBCEGBias: return getModController(2, 3, nTG);
case TGParameterATRange: return getModController(3, 0, nTG);
case TGParameterATPitch: return getModController(3, 1, nTG);
case TGParameterATAmplitude: return getModController(3, 2, nTG);
case TGParameterATEGBias: return getModController(3, 3, nTG);
default:
assert (0);
return 0;
}
#ifdef ARM_ALLOW_MULTI_CORE
/* ALL TG START */
} else if (nTG == ALL_TG_ID) {
return GetTGParameter(Parameter, 0);
/* ALL TG END */
#endif
switch (Parameter)
{
case TGParameterVoiceBank: return m_nVoiceBankID[nTG];
case TGParameterProgram: return m_nProgram[nTG];
case TGParameterVolume: return m_nVolume[nTG];
case TGParameterPan: return m_nPan[nTG];
case TGParameterMasterTune: return m_nMasterTune[nTG];
case TGParameterCutoff: return m_nCutoff[nTG];
case TGParameterResonance: return m_nResonance[nTG];
case TGParameterMIDIChannel: return m_nMIDIChannel[nTG];
case TGParameterReverbSend: return m_nReverbSend[nTG];
case TGParameterPitchBendRange: return m_nPitchBendRange[nTG];
case TGParameterPitchBendStep: return m_nPitchBendStep[nTG];
case TGParameterPortamentoMode: return m_nPortamentoMode[nTG];
case TGParameterPortamentoGlissando: return m_nPortamentoGlissando[nTG];
case TGParameterPortamentoTime: return m_nPortamentoTime[nTG];
case TGParameterMonoMode: return m_bMonoMode[nTG] ? 1 : 0;
case TGParameterMWRange: return getModController(0, 0, nTG);
case TGParameterMWPitch: return getModController(0, 1, nTG);
case TGParameterMWAmplitude: return getModController(0, 2, nTG);
case TGParameterMWEGBias: return getModController(0, 3, nTG);
case TGParameterFCRange: return getModController(1, 0, nTG);
case TGParameterFCPitch: return getModController(1, 1, nTG);
case TGParameterFCAmplitude: return getModController(1, 2, nTG);
case TGParameterFCEGBias: return getModController(1, 3, nTG);
case TGParameterBCRange: return getModController(2, 0, nTG);
case TGParameterBCPitch: return getModController(2, 1, nTG);
case TGParameterBCAmplitude: return getModController(2, 2, nTG);
case TGParameterBCEGBias: return getModController(2, 3, nTG);
case TGParameterATRange: return getModController(3, 0, nTG);
case TGParameterATPitch: return getModController(3, 1, nTG);
case TGParameterATAmplitude: return getModController(3, 2, nTG);
case TGParameterATEGBias: return getModController(3, 3, nTG);
default:
assert (0);
return 0;
} }
return 0;
} }
void CMiniDexed::SetVoiceParameter (uint8_t uchOffset, uint8_t uchValue, unsigned nOP, unsigned nTG) void CMiniDexed::SetVoiceParameter (uint8_t uchOffset, uint8_t uchValue, unsigned nOP, unsigned nTG)
{ {
if (nTG < CConfig::ToneGenerators) assert (nTG < CConfig::ToneGenerators);
{ assert (m_pTG[nTG]);
assert (nTG < CConfig::ToneGenerators); assert (nOP <= 6);
assert (m_pTG[nTG]);
assert (nOP <= 6);
if (nOP < 6) if (nOP < 6)
{
if (uchOffset == DEXED_OP_ENABLE)
{ {
if (uchOffset == DEXED_OP_ENABLE) if (uchValue)
{ {
if (uchValue) m_uchOPMask[nTG] |= 1 << nOP;
{ }
m_uchOPMask[nTG] |= 1 << nOP; else
} {
else m_uchOPMask[nTG] &= ~(1 << nOP);
{
m_uchOPMask[nTG] &= ~(1 << nOP);
}
m_pTG[nTG]->setOPAll (m_uchOPMask[nTG]);
return;
} }
nOP = 5 - nOP; // OPs are in reverse order m_pTG[nTG]->setOPAll (m_uchOPMask[nTG]);
}
uchOffset += nOP * 21;
assert (uchOffset < 156);
m_pTG[nTG]->setVoiceDataElement (uchOffset, uchValue);
#ifdef ARM_ALLOW_MULTI_CORE
/* ALL TG START */
} else if (nTG == ALL_TG_ID) { return;
for (unsigned i = 0; i < CConfig::ToneGenerators; i++)
{
SetVoiceParameter(uchOffset, uchValue, nOP, i);
} }
/* ALL TG END */ nOP = 5 - nOP; // OPs are in reverse order
#endif
} }
uchOffset += nOP * 21;
assert (uchOffset < 156);
m_pTG[nTG]->setVoiceDataElement (uchOffset, uchValue);
} }
uint8_t CMiniDexed::GetVoiceParameter (uint8_t uchOffset, unsigned nOP, unsigned nTG) uint8_t CMiniDexed::GetVoiceParameter (uint8_t uchOffset, unsigned nOP, unsigned nTG)
{ {
if (nTG < CConfig::ToneGenerators) assert (nTG < CConfig::ToneGenerators);
{ assert (m_pTG[nTG]);
assert (nTG < CConfig::ToneGenerators); assert (nOP <= 6);
assert (m_pTG[nTG]);
assert (nOP <= 6);
if (nOP < 6) if (nOP < 6)
{
if (uchOffset == DEXED_OP_ENABLE)
{ {
if (uchOffset == DEXED_OP_ENABLE) return !!(m_uchOPMask[nTG] & (1 << nOP));
{
return !!(m_uchOPMask[nTG] & (1 << nOP));
}
nOP = 5 - nOP; // OPs are in reverse order
} }
uchOffset += nOP * 21; nOP = 5 - nOP; // OPs are in reverse order
assert (uchOffset < 156);
return m_pTG[nTG]->getVoiceDataElement (uchOffset);
#ifdef ARM_ALLOW_MULTI_CORE
/* ALL TG START */
} else if (nTG == ALL_TG_ID) {
return GetVoiceParameter (uchOffset, nOP, 0);
/* ALL TG END */
#endif
} }
return 0; uchOffset += nOP * 21;
assert (uchOffset < 156);
return m_pTG[nTG]->getVoiceDataElement (uchOffset);
} }
std::string CMiniDexed::GetVoiceName (unsigned nTG) std::string CMiniDexed::GetVoiceName (unsigned nTG)
{ {
if (nTG < CConfig::ToneGenerators) char VoiceName[11];
{ memset (VoiceName, 0, sizeof VoiceName);
char VoiceName[11];
memset (VoiceName, 0, sizeof VoiceName);
assert (nTG < CConfig::ToneGenerators);
assert (m_pTG[nTG]);
m_pTG[nTG]->setName (VoiceName);
std::string Result (VoiceName);
return Result; assert (nTG < CConfig::ToneGenerators);
assert (m_pTG[nTG]);
#ifdef ARM_ALLOW_MULTI_CORE m_pTG[nTG]->setName (VoiceName);
/* ALL TG START */
} else if (nTG == ALL_TG_ID) { std::string Result (VoiceName);
return GetVoiceName (0);
/* ALL TG END */ return Result;
#endif
}
return std::string("ERROR");
} }
#ifndef ARM_ALLOW_MULTI_CORE #ifndef ARM_ALLOW_MULTI_CORE
@ -1169,10 +1036,10 @@ void CMiniDexed::ProcessSound (void)
#endif #endif
bool CMiniDexed::SavePerformance (bool bSaveAsDefault) bool CMiniDexed::SavePerformance (bool bSaveAsDeault)
{ {
m_bSavePerformance = true; m_bSavePerformance = true;
m_bSaveAsDefault=bSaveAsDefault; m_bSaveAsDeault=bSaveAsDeault;
return true; return true;
} }
@ -1223,15 +1090,7 @@ bool CMiniDexed::DoSavePerformance (void)
m_PerformanceConfig.SetReverbDiffusion (m_nParameter[ParameterReverbDiffusion]); m_PerformanceConfig.SetReverbDiffusion (m_nParameter[ParameterReverbDiffusion]);
m_PerformanceConfig.SetReverbLevel (m_nParameter[ParameterReverbLevel]); m_PerformanceConfig.SetReverbLevel (m_nParameter[ParameterReverbLevel]);
#ifdef ARM_ALLOW_MULTI_CORE if(m_bSaveAsDeault)
/* UNISON START */
m_PerformanceConfig.SetUnisonEnable (!!m_nParameter[ParameterUnisonEnable]);
m_PerformanceConfig.SetUnisonPanSpread (m_nParameter[ParameterUnisonPanSpread]);
m_PerformanceConfig.SetUnisonDetuneSpread (m_nParameter[ParameterUnisonDetuneSpread]);
/* UNISON END */
#endif
if(m_bSaveAsDefault)
{ {
m_PerformanceConfig.SetNewPerformance(0); m_PerformanceConfig.SetNewPerformance(0);
@ -1619,15 +1478,6 @@ void CMiniDexed::LoadPerformanceParameters(void)
SetParameter (ParameterReverbLowPass, m_PerformanceConfig.GetReverbLowPass ()); SetParameter (ParameterReverbLowPass, m_PerformanceConfig.GetReverbLowPass ());
SetParameter (ParameterReverbDiffusion, m_PerformanceConfig.GetReverbDiffusion ()); SetParameter (ParameterReverbDiffusion, m_PerformanceConfig.GetReverbDiffusion ());
SetParameter (ParameterReverbLevel, m_PerformanceConfig.GetReverbLevel ()); SetParameter (ParameterReverbLevel, m_PerformanceConfig.GetReverbLevel ());
#ifdef ARM_ALLOW_MULTI_CORE
/* UNISON START */
SetParameter (ParameterUnisonPanSpread, m_PerformanceConfig.GetUnisonPanSpread ());
SetParameter (ParameterUnisonDetuneSpread, m_PerformanceConfig.GetUnisonDetuneSpread ());
SetParameter (ParameterUnisonEnable, m_PerformanceConfig.GetUnisonEnable () ? 1 : 0);
/* UNISON END */
#endif
} }
std::string CMiniDexed::GetNewPerformanceDefaultName(void) std::string CMiniDexed::GetNewPerformanceDefaultName(void)

@ -134,15 +134,6 @@ public:
ParameterReverbLowPass, ParameterReverbLowPass,
ParameterReverbDiffusion, ParameterReverbDiffusion,
ParameterReverbLevel, ParameterReverbLevel,
#ifdef ARM_ALLOW_MULTI_CORE
/* UNISON START */
ParameterUnisonEnable,
ParameterUnisonPanSpread,
ParameterUnisonDetuneSpread,
/* UNISON END */
#endif
ParameterUnknown ParameterUnknown
}; };
@ -306,7 +297,7 @@ private:
bool m_bDeletePerformance; bool m_bDeletePerformance;
unsigned m_nDeletePerformanceID; unsigned m_nDeletePerformanceID;
bool m_bLoadPerformanceBusy; bool m_bLoadPerformanceBusy;
bool m_bSaveAsDefault; bool m_bSaveAsDeault;
}; };
#endif #endif

@ -159,11 +159,6 @@ bool CPerformanceConfig::Load (void)
m_nReverbDiffusion = m_Properties.GetNumber ("ReverbDiffusion", 65); m_nReverbDiffusion = m_Properties.GetNumber ("ReverbDiffusion", 65);
m_nReverbLevel = m_Properties.GetNumber ("ReverbLevel", 99); m_nReverbLevel = m_Properties.GetNumber ("ReverbLevel", 99);
// Unison
m_bUnisonEnable = m_Properties.GetNumber("UnisonEnable", 0) != 0;
m_nUnisonPanSpread = m_Properties.GetNumber("UnisonPanSpread", 56);
m_nUnisonDetuneSpread = m_Properties.GetNumber("UnisonDetuneSpread", 21);
return bResult; return bResult;
} }
@ -282,10 +277,6 @@ bool CPerformanceConfig::Save (void)
m_Properties.SetNumber ("ReverbDiffusion", m_nReverbDiffusion); m_Properties.SetNumber ("ReverbDiffusion", m_nReverbDiffusion);
m_Properties.SetNumber ("ReverbLevel", m_nReverbLevel); m_Properties.SetNumber ("ReverbLevel", m_nReverbLevel);
m_Properties.SetNumber ("UnisonEnable", m_bUnisonEnable ? 1 : 0);
m_Properties.SetNumber ("UnisonPanSpread", m_nUnisonPanSpread);
m_Properties.SetNumber ("UnisonDetuneSpread", m_nUnisonDetuneSpread);
return m_Properties.Save (); return m_Properties.Save ();
} }
@ -512,38 +503,6 @@ void CPerformanceConfig::SetReverbLevel (unsigned nValue)
{ {
m_nReverbLevel = nValue; m_nReverbLevel = nValue;
} }
// Unison
bool CPerformanceConfig::GetUnisonEnable (void) const
{
return m_bUnisonEnable;
}
unsigned CPerformanceConfig::GetUnisonPanSpread (void) const
{
return m_nUnisonPanSpread;
}
unsigned CPerformanceConfig::GetUnisonDetuneSpread (void) const
{
return m_nUnisonDetuneSpread;
}
void CPerformanceConfig::SetUnisonEnable (bool bValue)
{
m_bUnisonEnable = bValue;
}
void CPerformanceConfig::SetUnisonPanSpread (unsigned nValue)
{
m_nUnisonPanSpread = nValue;
}
void CPerformanceConfig::SetUnisonDetuneSpread (unsigned nValue)
{
m_nUnisonDetuneSpread = nValue;
}
// Pitch bender and portamento: // Pitch bender and portamento:
void CPerformanceConfig::SetPitchBendRange (unsigned nValue, unsigned nTG) void CPerformanceConfig::SetPitchBendRange (unsigned nValue, unsigned nTG)
{ {

@ -117,14 +117,6 @@ public:
void SetReverbDiffusion (unsigned nValue); void SetReverbDiffusion (unsigned nValue);
void SetReverbLevel (unsigned nValue); void SetReverbLevel (unsigned nValue);
// Unison
bool GetUnisonEnable (void) const;
unsigned GetUnisonPanSpread (void) const;
unsigned GetUnisonDetuneSpread (void) const;
void SetUnisonEnable (bool bValue);
void SetUnisonPanSpread (unsigned nValue);
void SetUnisonDetuneSpread (unsigned nValue);
bool VoiceDataFilled(unsigned nTG); bool VoiceDataFilled(unsigned nTG);
bool ListPerformances(); bool ListPerformances();
//std::string m_DirName; //std::string m_DirName;
@ -191,11 +183,6 @@ private:
unsigned m_nReverbLowPass; unsigned m_nReverbLowPass;
unsigned m_nReverbDiffusion; unsigned m_nReverbDiffusion;
unsigned m_nReverbLevel; unsigned m_nReverbLevel;
// Unison
bool m_bUnisonEnable;
unsigned m_nUnisonPanSpread;
unsigned m_nUnisonDetuneSpread;
}; };
#endif #endif

@ -52,11 +52,6 @@ const CUIMenu::TMenuItem CUIMenu::s_MainMenu[] =
{"TG8", MenuHandler, s_TGMenu, 7}, {"TG8", MenuHandler, s_TGMenu, 7},
#endif #endif
{"Effects", MenuHandler, s_EffectsMenu}, {"Effects", MenuHandler, s_EffectsMenu},
#ifdef ARM_ALLOW_MULTI_CORE
/* Unison START */
{"Unison", MenuHandler, s_UnisonMenu},
/* Unison END */
#endif
{"Performance", MenuHandler, s_PerformanceMenu}, {"Performance", MenuHandler, s_PerformanceMenu},
{0} {0}
}; };
@ -82,29 +77,6 @@ const CUIMenu::TMenuItem CUIMenu::s_TGMenu[] =
{0} {0}
}; };
#ifdef ARM_ALLOW_MULTI_CORE
/* ALL TG START */
const CUIMenu::TMenuItem CUIMenu::s_AllTGMenu[] =
{
{"Voice", EditProgramNumber},
{"Bank", EditVoiceBankNumber},
{"Volume", EditTGParameter, 0, CMiniDexed::TGParameterVolume},
{"Pan Spread", EditGlobalParameter, 0, CMiniDexed::ParameterUnisonPanSpread},
{"Reverb-Send", EditTGParameter, 0, CMiniDexed::TGParameterReverbSend},
{"Detune", EditGlobalParameter, 0, CMiniDexed::ParameterUnisonDetuneSpread},
{"Cutoff", EditTGParameter, 0, CMiniDexed::TGParameterCutoff},
{"Resonance", EditTGParameter, 0, CMiniDexed::TGParameterResonance},
{"Pitch Bend", MenuHandler, s_EditPitchBendMenu},
{"Portamento", MenuHandler, s_EditPortamentoMenu},
{"Poly/Mono", EditTGParameter, 0, CMiniDexed::TGParameterMonoMode},
{"Modulation", MenuHandler, s_ModulationMenu},
{"Channel", EditTGParameter, 0, CMiniDexed::TGParameterMIDIChannel},
{"Edit Voice", MenuHandler, s_EditVoiceMenu},
{0}
};
/* ALL TG END */
#endif
const CUIMenu::TMenuItem CUIMenu::s_EffectsMenu[] = const CUIMenu::TMenuItem CUIMenu::s_EffectsMenu[] =
{ {
{"Compress", EditGlobalParameter, 0, CMiniDexed::ParameterCompressorEnable}, {"Compress", EditGlobalParameter, 0, CMiniDexed::ParameterCompressorEnable},
@ -163,19 +135,6 @@ const CUIMenu::TMenuItem CUIMenu::s_ReverbMenu[] =
#endif #endif
#ifdef ARM_ALLOW_MULTI_CORE
/* Unison START */
const CUIMenu::TMenuItem CUIMenu::s_UnisonMenu[] =
{
{"Enable", EditGlobalParameter, 0, CMiniDexed::ParameterUnisonEnable},
{"All TG", MenuHandler, s_AllTGMenu, ALL_TG_ID},
// {"Max Pan", EditGlobalParameter, 0, CMiniDexed::ParameterUnisonPanSpread},
// {"Max Detune", EditGlobalParameter, 0, CMiniDexed::ParameterUnisonDetuneSpread},
{0}
};
/* Unison END */
#endif
// inserting menu items before "OP1" affect OPShortcutHandler() // inserting menu items before "OP1" affect OPShortcutHandler()
const CUIMenu::TMenuItem CUIMenu::s_EditVoiceMenu[] = const CUIMenu::TMenuItem CUIMenu::s_EditVoiceMenu[] =
{ {
@ -254,15 +213,6 @@ const CUIMenu::TParameter CUIMenu::s_GlobalParameter[CMiniDexed::ParameterUnknow
{0, 99, 1}, // ParameterReverbLowPass {0, 99, 1}, // ParameterReverbLowPass
{0, 99, 1}, // ParameterReverbDiffusion {0, 99, 1}, // ParameterReverbDiffusion
{0, 99, 1} // ParameterReverbLevel {0, 99, 1} // ParameterReverbLevel
#ifdef ARM_ALLOW_MULTI_CORE
,
/* UNISON START */
{0, 1, 1, ToOnOff}, // ParameterUnisonEnable
{0, 63, 1}, // ParameterUnisonPanSpread
{0, 99, 1} // ParameterUnisonDetuneSpread
/* UNISON END */
#endif
}; };
// must match CMiniDexed::TTGParameter // must match CMiniDexed::TTGParameter

@ -26,8 +26,6 @@
#include <string> #include <string>
#include <circle/timer.h> #include <circle/timer.h>
#define ALL_TG_ID 100
class CMiniDexed; class CMiniDexed;
class CUserInterface; class CUserInterface;
@ -139,11 +137,6 @@ private:
static const TMenuItem s_MenuRoot[]; static const TMenuItem s_MenuRoot[];
static const TMenuItem s_MainMenu[]; static const TMenuItem s_MainMenu[];
static const TMenuItem s_TGMenu[]; static const TMenuItem s_TGMenu[];
#ifdef ARM_ALLOW_MULTI_CORE
/* ALL TG START */
static const TMenuItem s_AllTGMenu[];
/* ALL TG END */
#endif
static const TMenuItem s_EffectsMenu[]; static const TMenuItem s_EffectsMenu[];
static const TMenuItem s_ReverbMenu[]; static const TMenuItem s_ReverbMenu[];
static const TMenuItem s_EditVoiceMenu[]; static const TMenuItem s_EditVoiceMenu[];
@ -152,13 +145,7 @@ private:
static const TMenuItem s_EditPitchBendMenu[]; static const TMenuItem s_EditPitchBendMenu[];
static const TMenuItem s_EditPortamentoMenu[]; static const TMenuItem s_EditPortamentoMenu[];
static const TMenuItem s_PerformanceMenu[]; static const TMenuItem s_PerformanceMenu[];
#ifdef ARM_ALLOW_MULTI_CORE
/* Unison START */
static const TMenuItem s_UnisonMenu[];
/* Unison END */
#endif
static const TMenuItem s_ModulationMenu[]; static const TMenuItem s_ModulationMenu[];
static const TMenuItem s_ModulationMenuParameters[]; static const TMenuItem s_ModulationMenuParameters[];

Loading…
Cancel
Save