|
|
@ -1531,8 +1531,6 @@ void CMiniDexed::ProcessSound (void) |
|
|
|
// BEGIN adding send fx 1
|
|
|
|
// BEGIN adding send fx 1
|
|
|
|
float32_t SendFXOutputBuffer[2][nFrames]; |
|
|
|
float32_t SendFXOutputBuffer[2][nFrames]; |
|
|
|
float32_t SendFXMixBuffer[2][nFrames]; |
|
|
|
float32_t SendFXMixBuffer[2][nFrames]; |
|
|
|
arm_fill_f32(0.0f, SendFXOutputBuffer[indexL], nFrames); |
|
|
|
|
|
|
|
arm_fill_f32(0.0f, SendFXOutputBuffer[indexR], nFrames); |
|
|
|
|
|
|
|
arm_fill_f32(0.0f, SendFXMixBuffer[indexR], nFrames); |
|
|
|
arm_fill_f32(0.0f, SendFXMixBuffer[indexR], nFrames); |
|
|
|
arm_fill_f32(0.0f, SendFXMixBuffer[indexL], nFrames); |
|
|
|
arm_fill_f32(0.0f, SendFXMixBuffer[indexL], nFrames); |
|
|
|
|
|
|
|
|
|
|
@ -1542,14 +1540,12 @@ void CMiniDexed::ProcessSound (void) |
|
|
|
m_SendFX1SpinLock.Release (); |
|
|
|
m_SendFX1SpinLock.Release (); |
|
|
|
|
|
|
|
|
|
|
|
// send to FX 2
|
|
|
|
// send to FX 2
|
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexL], m_SendFX1SendFXLevel, SendFXMixBuffer[indexL], nFrames); |
|
|
|
|
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexR], m_SendFX1SendFXLevel, SendFXMixBuffer[indexR], nFrames); |
|
|
|
|
|
|
|
send_fx2_mixer->doAddMix(CConfig::SendFX2MixerChannels - 1, SendFXMixBuffer[indexL], SendFXMixBuffer[indexR]); |
|
|
|
send_fx2_mixer->doAddMix(CConfig::SendFX2MixerChannels - 1, SendFXMixBuffer[indexL], SendFXMixBuffer[indexR]); |
|
|
|
|
|
|
|
|
|
|
|
// scale down and add left reverb buffer by reverb level
|
|
|
|
// scale down and add left send fx buffer by send fx level
|
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexL], m_SendFX1Level, SendFXOutputBuffer[indexL], nFrames); |
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexL], m_SendFX1Level, SendFXOutputBuffer[indexL], nFrames); |
|
|
|
arm_add_f32(SampleBuffer[indexL], SendFXOutputBuffer[indexL], SampleBuffer[indexL], nFrames); |
|
|
|
arm_add_f32(SampleBuffer[indexL], SendFXOutputBuffer[indexL], SampleBuffer[indexL], nFrames); |
|
|
|
// scale down and add right reverb buffer by reverb level
|
|
|
|
// scale down and add right send fx buffer by send fx level
|
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexR], m_SendFX1Level, SendFXOutputBuffer[indexR], nFrames); |
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexR], m_SendFX1Level, SendFXOutputBuffer[indexR], nFrames); |
|
|
|
arm_add_f32(SampleBuffer[indexR], SendFXOutputBuffer[indexR], SampleBuffer[indexR], nFrames); |
|
|
|
arm_add_f32(SampleBuffer[indexR], SendFXOutputBuffer[indexR], SampleBuffer[indexR], nFrames); |
|
|
|
// END adding send fx 1
|
|
|
|
// END adding send fx 1
|
|
|
@ -1561,10 +1557,10 @@ void CMiniDexed::ProcessSound (void) |
|
|
|
m_SendFX2->process(SendFXMixBuffer[indexL], SendFXMixBuffer[indexR], SendFXOutputBuffer[indexL], SendFXOutputBuffer[indexR], nFrames); |
|
|
|
m_SendFX2->process(SendFXMixBuffer[indexL], SendFXMixBuffer[indexR], SendFXOutputBuffer[indexL], SendFXOutputBuffer[indexR], nFrames); |
|
|
|
m_SendFX2SpinLock.Release (); |
|
|
|
m_SendFX2SpinLock.Release (); |
|
|
|
|
|
|
|
|
|
|
|
// scale down and add left reverb buffer by reverb level
|
|
|
|
// scale down and add left send fx buffer by send fx level
|
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexL], m_SendFX2Level, SendFXOutputBuffer[indexL], nFrames); |
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexL], m_SendFX2Level, SendFXOutputBuffer[indexL], nFrames); |
|
|
|
arm_add_f32(SampleBuffer[indexL], SendFXOutputBuffer[indexL], SampleBuffer[indexL], nFrames); |
|
|
|
arm_add_f32(SampleBuffer[indexL], SendFXOutputBuffer[indexL], SampleBuffer[indexL], nFrames); |
|
|
|
// scale down and add right reverb buffer by reverb level
|
|
|
|
// scale down and add right send fx buffer by send fx level
|
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexR], m_SendFX2Level, SendFXOutputBuffer[indexR], nFrames); |
|
|
|
arm_scale_f32(SendFXOutputBuffer[indexR], m_SendFX2Level, SendFXOutputBuffer[indexR], nFrames); |
|
|
|
arm_add_f32(SampleBuffer[indexR], SendFXOutputBuffer[indexR], SampleBuffer[indexR], nFrames); |
|
|
|
arm_add_f32(SampleBuffer[indexR], SendFXOutputBuffer[indexR], SampleBuffer[indexR], nFrames); |
|
|
|
// END adding send fx 2
|
|
|
|
// END adding send fx 2
|
|
|
@ -1903,23 +1899,32 @@ bool CMiniDexed::DoSavePerformance (void) |
|
|
|
m_PerformanceConfig.SetAftertouchRange (m_nAftertouchRange[nTG], nTG); |
|
|
|
m_PerformanceConfig.SetAftertouchRange (m_nAftertouchRange[nTG], nTG); |
|
|
|
m_PerformanceConfig.SetAftertouchTarget (m_nAftertouchTarget[nTG], nTG); |
|
|
|
m_PerformanceConfig.SetAftertouchTarget (m_nAftertouchTarget[nTG], nTG); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_PerformanceConfig.SetSendFX1Send (m_nSendFX1[nTG], nTG); |
|
|
|
m_PerformanceConfig.SetReverbSend (m_nSendFX2[nTG], nTG); |
|
|
|
m_PerformanceConfig.SetReverbSend (m_nSendFX2[nTG], nTG); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
m_PerformanceConfig.SetCompressorEnable (!!m_nParameter[ParameterCompressorEnable]); |
|
|
|
m_PerformanceConfig.SetCompressorEnable (!!m_nParameter[ParameterCompressorEnable]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_PerformanceConfig.SetSendFX1 (m_SendFX1->getId()); |
|
|
|
|
|
|
|
std::vector<unsigned> pParamsSendFX1 = m_SendFX1->getParameters(); |
|
|
|
|
|
|
|
m_PerformanceConfig.SetSendFX1Params (pParamsSendFX1); |
|
|
|
|
|
|
|
pParamsSendFX1.clear(); |
|
|
|
|
|
|
|
pParamsSendFX1.shrink_to_fit(); |
|
|
|
|
|
|
|
m_PerformanceConfig.SetSendFX1Level (roundf(m_SendFX1Level * 100)); |
|
|
|
|
|
|
|
m_PerformanceConfig.SetSendFX1SendLevel (roundf(m_SendFX1SendFXLevel * 100)); |
|
|
|
|
|
|
|
|
|
|
|
m_PerformanceConfig.SetSendFX2 (m_SendFX2->getId()); |
|
|
|
m_PerformanceConfig.SetSendFX2 (m_SendFX2->getId()); |
|
|
|
std::vector<unsigned> pParams = m_SendFX2->getParameters(); |
|
|
|
std::vector<unsigned> pParamsSendFX2 = m_SendFX2->getParameters(); |
|
|
|
m_PerformanceConfig.SetSendFX2Params (pParams); |
|
|
|
m_PerformanceConfig.SetSendFX2Params (pParamsSendFX2); |
|
|
|
pParams.clear(); |
|
|
|
pParamsSendFX2.clear(); |
|
|
|
pParams.shrink_to_fit(); |
|
|
|
pParamsSendFX2.shrink_to_fit(); |
|
|
|
m_PerformanceConfig.SetSendFX2Level (roundf(m_SendFX2Level * 100)); |
|
|
|
m_PerformanceConfig.SetSendFX2Level (roundf(m_SendFX2Level * 100)); |
|
|
|
|
|
|
|
|
|
|
|
m_PerformanceConfig.SetMasterFX (m_MasterFX->getId()); |
|
|
|
m_PerformanceConfig.SetMasterFX (m_MasterFX->getId()); |
|
|
|
std::vector<unsigned> pMasterParams = m_MasterFX->getParameters(); |
|
|
|
std::vector<unsigned> pParamsMaster = m_MasterFX->getParameters(); |
|
|
|
m_PerformanceConfig.SetMasterFXParams (pMasterParams); |
|
|
|
m_PerformanceConfig.SetMasterFXParams (pParamsMaster); |
|
|
|
pMasterParams.clear(); |
|
|
|
pParamsMaster.clear(); |
|
|
|
pMasterParams.shrink_to_fit(); |
|
|
|
pParamsMaster.shrink_to_fit(); |
|
|
|
|
|
|
|
|
|
|
|
m_PerformanceConfig.SetTempo (m_nTempo); |
|
|
|
m_PerformanceConfig.SetTempo (m_nTempo); |
|
|
|
|
|
|
|
|
|
|
@ -2392,6 +2397,7 @@ void CMiniDexed::LoadPerformanceParameters(void) |
|
|
|
m_pTG[nTG]->loadVoiceParameters(tVoiceData);
|
|
|
|
m_pTG[nTG]->loadVoiceParameters(tVoiceData);
|
|
|
|
} |
|
|
|
} |
|
|
|
setMonoMode(m_PerformanceConfig.GetMonoMode(nTG) ? 1 : 0, nTG);
|
|
|
|
setMonoMode(m_PerformanceConfig.GetMonoMode(nTG) ? 1 : 0, nTG);
|
|
|
|
|
|
|
|
SetSendFX1 (m_PerformanceConfig.GetSendFX1Send (nTG), nTG); |
|
|
|
SetReverbSend (m_PerformanceConfig.GetReverbSend (nTG), nTG); |
|
|
|
SetReverbSend (m_PerformanceConfig.GetReverbSend (nTG), nTG); |
|
|
|
|
|
|
|
|
|
|
|
setModWheelRange (m_PerformanceConfig.GetModulationWheelRange (nTG), nTG); |
|
|
|
setModWheelRange (m_PerformanceConfig.GetModulationWheelRange (nTG), nTG); |
|
|
@ -2409,18 +2415,26 @@ void CMiniDexed::LoadPerformanceParameters(void) |
|
|
|
// Effects
|
|
|
|
// Effects
|
|
|
|
SetParameter (ParameterCompressorEnable, m_PerformanceConfig.GetCompressorEnable () ? 1 : 0); |
|
|
|
SetParameter (ParameterCompressorEnable, m_PerformanceConfig.GetCompressorEnable () ? 1 : 0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setSendFX1Type(m_PerformanceConfig.GetSendFX1 ()); |
|
|
|
|
|
|
|
std::vector<unsigned> pParamsFX1 = m_PerformanceConfig.GetSendFX1Params (); |
|
|
|
|
|
|
|
m_SendFX1->setParameters(pParamsFX1); |
|
|
|
|
|
|
|
pParamsFX1.clear(); |
|
|
|
|
|
|
|
pParamsFX1.shrink_to_fit(); |
|
|
|
|
|
|
|
SetParameter (ParameterSendFX1Level, m_PerformanceConfig.GetSendFX1Level ()); |
|
|
|
|
|
|
|
SetParameter (ParameterSendFX1SendFXLevel, m_PerformanceConfig.GetSendFX1SendLevel ()); |
|
|
|
|
|
|
|
|
|
|
|
setSendFX2Type(m_PerformanceConfig.GetSendFX2 ()); |
|
|
|
setSendFX2Type(m_PerformanceConfig.GetSendFX2 ()); |
|
|
|
std::vector<unsigned> pParams = m_PerformanceConfig.GetSendFX2Params (); |
|
|
|
std::vector<unsigned> pParamsFX2 = m_PerformanceConfig.GetSendFX2Params (); |
|
|
|
m_SendFX2->setParameters(pParams); |
|
|
|
m_SendFX2->setParameters(pParamsFX2); |
|
|
|
pParams.clear(); |
|
|
|
pParamsFX2.clear(); |
|
|
|
pParams.shrink_to_fit(); |
|
|
|
pParamsFX2.shrink_to_fit(); |
|
|
|
SetParameter (ParameterSendFX2Level, m_PerformanceConfig.GetSendFX2Level ()); |
|
|
|
SetParameter (ParameterSendFX2Level, m_PerformanceConfig.GetSendFX2Level ()); |
|
|
|
|
|
|
|
|
|
|
|
setMasterFXType(m_PerformanceConfig.GetMasterFX ()); |
|
|
|
setMasterFXType(m_PerformanceConfig.GetMasterFX ()); |
|
|
|
std::vector<unsigned> pMasterParams = m_PerformanceConfig.GetMasterFXParams (); |
|
|
|
std::vector<unsigned> pParamsMaster = m_PerformanceConfig.GetMasterFXParams (); |
|
|
|
m_MasterFX->setParameters(pMasterParams); |
|
|
|
m_MasterFX->setParameters(pParamsMaster); |
|
|
|
pMasterParams.clear(); |
|
|
|
pParamsMaster.clear(); |
|
|
|
pMasterParams.shrink_to_fit(); |
|
|
|
pParamsMaster.shrink_to_fit(); |
|
|
|
|
|
|
|
|
|
|
|
SetParameter (ParameterTempo, m_PerformanceConfig.GetTempo ()); |
|
|
|
SetParameter (ParameterTempo, m_PerformanceConfig.GetTempo ()); |
|
|
|
} |
|
|
|
} |
|
|
|