diff --git a/src/fx_delay.cpp b/src/fx_delay.cpp index 2d4d2e2..e307330 100644 --- a/src/fx_delay.cpp +++ b/src/fx_delay.cpp @@ -2,8 +2,9 @@ #include -#define MAX_DELAY_TIME 2.0f -#define MAX_FLUTTER_DELAY_TIME 0.001f +#define MAX_DELAY_TIME 1.0f +#define MAX_FLUTTER_DELAY_TIME 0.2f +#define MAX_FLUTTER_DELAY_AMOUNT 0.01f #define LPF_CUTOFF_REF 12000.0f #define HPF_CUTOFF_REF 80.0f @@ -87,21 +88,21 @@ void Delay::reset() void Delay::processSample(float32_t inL, float32_t inR, float32_t& outL, float32_t& outR) { - static const float32_t max_delay_time = MAX_DELAY_TIME * this->getSamplingRate(); float32_t jitter_delay_time = 0.0f; if(this->jitter_amount_ != 0.0f) { float32_t jitter_ratio = this->jitter_generator_.process(); if(jitter_ratio != 0.0f) { - jitter_ratio *= this->jitter_amount_; - jitter_delay_time = MAX_FLUTTER_DELAY_TIME * jitter_ratio * this->getSamplingRate(); + jitter_ratio *= this->jitter_amount_ * MAX_FLUTTER_DELAY_AMOUNT; + jitter_delay_time = MAX_FLUTTER_DELAY_TIME * jitter_ratio; + this->filter_.setCutoffChangeRatio(jitter_ratio); } } - // this->filter_.setCutoffChangeRatio(jitter_ratio); - float32_t delay_time_L = jitter_delay_time + max_delay_time * this->getLeftDelayTime(); - float32_t delay_time_R = jitter_delay_time + max_delay_time * this->getRightDelayTime(); + // const float32_t max_delay_time = MAX_DELAY_TIME * this->getSamplingRate(); + float32_t delay_time_L = (MAX_DELAY_TIME * this->getLeftDelayTime() + jitter_delay_time) * this->getSamplingRate(); + float32_t delay_time_R = (MAX_DELAY_TIME * this->getRightDelayTime() + jitter_delay_time) * this->getSamplingRate(); // Calculate write positions unsigned write_pos_L = static_cast(this->MaxSampleDelayTime + this->read_pos_L_ + delay_time_L) % this->MaxSampleDelayTime; diff --git a/src/fx_delay.h b/src/fx_delay.h index e4e5f1c..62b5ed2 100644 --- a/src/fx_delay.h +++ b/src/fx_delay.h @@ -140,7 +140,6 @@ private: SS__TEXT(ss, ' ', space, std::left, '|', "delay_time_R_"); SS__TEXT(ss, ' ', space, std::left, '|', "feedback_"); SS__TEXT(ss, ' ', space, std::left, '|', "jitter_amount_"); - SS__TEXT(ss, ' ', space, std::left, '|', "filter_"); out << "\t" << ss.str() << std::endl; SS_RESET(ss, precision, std::left); diff --git a/src/minidexed.cpp b/src/minidexed.cpp index 80f6427..1c71a06 100644 --- a/src/minidexed.cpp +++ b/src/minidexed.cpp @@ -815,7 +815,7 @@ void CMiniDexed::SetParameter (TParameter Parameter, int nValue) switch (Parameter) { case TParameter::ParameterCompressorEnable: - for (unsigned nTG = 0; nTG < CConfig::ToneGenerators; nTG++) + for (unsigned nTG = 0; nTG < CConfig::ToneGenerators; ++nTG) { assert(m_pTG[nTG]); m_pTG[nTG]->setCompressor (!!nValue); @@ -955,6 +955,18 @@ void CMiniDexed::SetParameter (TParameter Parameter, int nValue) this->mixing_console_->getDelay()->setFeedback(nValue / 99.0f); this->m_FXSpinLock.Release(); break; + case TParameter::ParameterFXDelayFlutterRate: + nValue = constrain((int)nValue, 0, 99); + this->m_FXSpinLock.Acquire(); + this->mixing_console_->getDelay()->setFlutterRate(nValue / 99.0f); + this->m_FXSpinLock.Release(); + break; + case TParameter::ParameterFXDelayFlutterAmount: + nValue = constrain((int)nValue, 0, 99); + this->m_FXSpinLock.Acquire(); + this->mixing_console_->getDelay()->setFlutterAmount(nValue / 99.0f); + this->m_FXSpinLock.Release(); + break; // AudioEffectPlateReverb parameters case TParameter::ParameterReverbEnable: @@ -1950,48 +1962,48 @@ bool CMiniDexed::DoSavePerformance (void) #endif } - m_PerformanceConfig.SetCompressorEnable (!!m_nParameter[ParameterCompressorEnable]); - m_PerformanceConfig.SetReverbEnable (!!m_nParameter[ParameterReverbEnable]); - m_PerformanceConfig.SetReverbSize (m_nParameter[ParameterReverbSize]); - m_PerformanceConfig.SetReverbHighDamp (m_nParameter[ParameterReverbHighDamp]); - m_PerformanceConfig.SetReverbLowDamp (m_nParameter[ParameterReverbLowDamp]); - m_PerformanceConfig.SetReverbLowPass (m_nParameter[ParameterReverbLowPass]); - m_PerformanceConfig.SetReverbDiffusion (m_nParameter[ParameterReverbDiffusion]); - m_PerformanceConfig.SetReverbLevel (m_nParameter[ParameterReverbLevel]); + m_PerformanceConfig.SetCompressorEnable (!!m_nParameter[TParameter::ParameterCompressorEnable]); + m_PerformanceConfig.SetReverbEnable (!!m_nParameter[TParameter::ParameterReverbEnable]); + m_PerformanceConfig.SetReverbSize (m_nParameter[TParameter::ParameterReverbSize]); + m_PerformanceConfig.SetReverbHighDamp (m_nParameter[TParameter::ParameterReverbHighDamp]); + m_PerformanceConfig.SetReverbLowDamp (m_nParameter[TParameter::ParameterReverbLowDamp]); + m_PerformanceConfig.SetReverbLowPass (m_nParameter[TParameter::ParameterReverbLowPass]); + m_PerformanceConfig.SetReverbDiffusion (m_nParameter[TParameter::ParameterReverbDiffusion]); + m_PerformanceConfig.SetReverbLevel (m_nParameter[TParameter::ParameterReverbLevel]); #ifdef MIXING_CONSOLE_ENABLE - this->m_PerformanceConfig.SetFXTubeEnable(!!this->m_nParameter[ParameterFXTubeEnable]); - this->m_PerformanceConfig.SetFXTubeOverdrive(this->m_nParameter[ParameterFXTubeOverdrive]); - - this->m_PerformanceConfig.SetFXChorusEnable(!!this->m_nParameter[ParameterFXChorusEnable]); - this->m_PerformanceConfig.SetFXChorusRate(this->m_nParameter[ParameterFXChorusRate]); - this->m_PerformanceConfig.SetFXChorusDepth(this->m_nParameter[ParameterFXChorusDepth]); - - this->m_PerformanceConfig.SetFXFlangerEnable(!!this->m_nParameter[ParameterFXFlangerEnable]); - this->m_PerformanceConfig.SetFXFlangerRate(this->m_nParameter[ParameterFXFlangerRate]); - this->m_PerformanceConfig.SetFXFlangerDepth(this->m_nParameter[ParameterFXFlangerDepth]); - this->m_PerformanceConfig.SetFXFlangerFeedback(this->m_nParameter[ParameterFXFlangerFeedback]); - - this->m_PerformanceConfig.SetFXOrbitoneEnable(!!this->m_nParameter[ParameterFXOrbitoneEnable]); - this->m_PerformanceConfig.SetFXOrbitoneRate(this->m_nParameter[ParameterFXOrbitoneRate]); - this->m_PerformanceConfig.SetFXOrbitoneDepth(this->m_nParameter[ParameterFXOrbitoneDepth]); - - this->m_PerformanceConfig.SetFXPhaserEnable(!!this->m_nParameter[ParameterFXPhaserEnable]); - this->m_PerformanceConfig.SetFXPhaserRate(this->m_nParameter[ParameterFXPhaserRate]); - this->m_PerformanceConfig.SetFXPhaserDepth(this->m_nParameter[ParameterFXPhaserDepth]); - this->m_PerformanceConfig.SetFXPhaserFeedback(this->m_nParameter[ParameterFXPhaserFeedback]); - this->m_PerformanceConfig.SetFXPhaserNbStages(this->m_nParameter[ParameterFXPhaserNbStages]); - - this->m_PerformanceConfig.SetFXDelayEnable(!!this->m_nParameter[ParameterFXDelayEnable]); - this->m_PerformanceConfig.SetFXDelayLeftDelayTime(this->m_nParameter[ParameterFXDelayLeftDelayTime]); - this->m_PerformanceConfig.SetFXDelayRightDelayTime(this->m_nParameter[ParameterFXDelayRightDelayTime]); - this->m_PerformanceConfig.SetFXDelayFeedback(this->m_nParameter[ParameterFXDelayFeedback]); - - this->m_PerformanceConfig.SetFXReverberatorEnable(!!this->m_nParameter[ParameterFXReverberatorEnable]); - this->m_PerformanceConfig.SetFXReverberatorInputGain(this->m_nParameter[ParameterFXReverberatorInputGain]); - this->m_PerformanceConfig.SetFXReverberatorTime(this->m_nParameter[ParameterFXReverberatorTime]); - this->m_PerformanceConfig.SetFXReverberatorDiffusion(this->m_nParameter[ParameterFXReverberatorDiffusion]); - this->m_PerformanceConfig.SetFXReverberatorLP(this->m_nParameter[ParameterFXReverberatorLP]); + this->m_PerformanceConfig.SetFXTubeEnable(!!this->m_nParameter[TParameter::ParameterFXTubeEnable]); + this->m_PerformanceConfig.SetFXTubeOverdrive(this->m_nParameter[TParameter::ParameterFXTubeOverdrive]); + + this->m_PerformanceConfig.SetFXChorusEnable(!!this->m_nParameter[TParameter::ParameterFXChorusEnable]); + this->m_PerformanceConfig.SetFXChorusRate(this->m_nParameter[TParameter::ParameterFXChorusRate]); + this->m_PerformanceConfig.SetFXChorusDepth(this->m_nParameter[TParameter::ParameterFXChorusDepth]); + + this->m_PerformanceConfig.SetFXFlangerEnable(!!this->m_nParameter[TParameter::ParameterFXFlangerEnable]); + this->m_PerformanceConfig.SetFXFlangerRate(this->m_nParameter[TParameter::ParameterFXFlangerRate]); + this->m_PerformanceConfig.SetFXFlangerDepth(this->m_nParameter[TParameter::ParameterFXFlangerDepth]); + this->m_PerformanceConfig.SetFXFlangerFeedback(this->m_nParameter[TParameter::ParameterFXFlangerFeedback]); + + this->m_PerformanceConfig.SetFXOrbitoneEnable(!!this->m_nParameter[TParameter::ParameterFXOrbitoneEnable]); + this->m_PerformanceConfig.SetFXOrbitoneRate(this->m_nParameter[TParameter::ParameterFXOrbitoneRate]); + this->m_PerformanceConfig.SetFXOrbitoneDepth(this->m_nParameter[TParameter::ParameterFXOrbitoneDepth]); + + this->m_PerformanceConfig.SetFXPhaserEnable(!!this->m_nParameter[TParameter::ParameterFXPhaserEnable]); + this->m_PerformanceConfig.SetFXPhaserRate(this->m_nParameter[TParameter::ParameterFXPhaserRate]); + this->m_PerformanceConfig.SetFXPhaserDepth(this->m_nParameter[TParameter::ParameterFXPhaserDepth]); + this->m_PerformanceConfig.SetFXPhaserFeedback(this->m_nParameter[TParameter::ParameterFXPhaserFeedback]); + this->m_PerformanceConfig.SetFXPhaserNbStages(this->m_nParameter[TParameter::ParameterFXPhaserNbStages]); + + this->m_PerformanceConfig.SetFXDelayEnable(!!this->m_nParameter[TParameter::ParameterFXDelayEnable]); + this->m_PerformanceConfig.SetFXDelayLeftDelayTime(this->m_nParameter[TParameter::ParameterFXDelayLeftDelayTime]); + this->m_PerformanceConfig.SetFXDelayRightDelayTime(this->m_nParameter[TParameter::ParameterFXDelayRightDelayTime]); + this->m_PerformanceConfig.SetFXDelayFeedback(this->m_nParameter[TParameter::ParameterFXDelayFeedback]); + + this->m_PerformanceConfig.SetFXReverberatorEnable(!!this->m_nParameter[TParameter::ParameterFXReverberatorEnable]); + this->m_PerformanceConfig.SetFXReverberatorInputGain(this->m_nParameter[TParameter::ParameterFXReverberatorInputGain]); + this->m_PerformanceConfig.SetFXReverberatorTime(this->m_nParameter[TParameter::ParameterFXReverberatorTime]); + this->m_PerformanceConfig.SetFXReverberatorDiffusion(this->m_nParameter[TParameter::ParameterFXReverberatorDiffusion]); + this->m_PerformanceConfig.SetFXReverberatorLP(this->m_nParameter[TParameter::ParameterFXReverberatorLP]); this->m_PerformanceConfig.SetFXSendLevel(MixerOutput::FX_Tube, MixerOutput::FX_Chorus, this->m_nParameter[TParameter::ParameterFXTube_ChorusSend]); this->m_PerformanceConfig.SetFXSendLevel(MixerOutput::FX_Tube, MixerOutput::FX_Flanger, this->m_nParameter[TParameter::ParameterFXTube_FlangerSend]); @@ -2429,12 +2441,13 @@ void CMiniDexed::LoadPerformanceParameters(void) } setMonoMode(m_PerformanceConfig.GetMonoMode(nTG) ? 1 : 0, nTG); -#ifdef MIXING_CONSOLE_ENABLE + this->SetParameter(TParameter::ParameterCompressorEnable, this->m_PerformanceConfig.GetCompressorEnable()); +#if defined(MIXING_CONSOLE_ENABLE) for(size_t fx = 0; fx < MixerOutput::kFXCount; ++fx) { this->setMixingConsoleSendLevel(nTG, static_cast(fx), this->m_PerformanceConfig.GetTGSendLevel(nTG, static_cast(fx))); } -#else +#elif defined(PLATE_REVERB_ENABLE) SetReverbSend (m_PerformanceConfig.GetReverbSend (nTG), nTG); #endif diff --git a/src/test/test_fx_mixing_console.cpp b/src/test/test_fx_mixing_console.cpp index 41cb772..e29aeaf 100644 --- a/src/test/test_fx_mixing_console.cpp +++ b/src/test/test_fx_mixing_console.cpp @@ -56,8 +56,8 @@ void setupMixingConsoleFX(Mixer* mixer) mixer->getDelay()->setLeftDelayTime(0.15f); mixer->getDelay()->setLeftDelayTime(0.20f); mixer->getDelay()->setFeedback(0.7f); - mixer->getDelay()->setFlutterRate(0.2f); - mixer->getDelay()->setFlutterAmount(0.5f); + mixer->getDelay()->setFlutterRate(0.35f); + mixer->getDelay()->setFlutterAmount(0.75f); mixer->getPlateReverb()->setMute(false); mixer->getPlateReverb()->set_bypass(false); @@ -106,7 +106,7 @@ void setupMixingConsoleFX(Mixer* mixer, int scenarioId, size_t channel) } else { - mixer->setReturnLevel(previousActivatedFX, static_cast(i), 1.0f); + mixer->setFXSendLevel(previousActivatedFX, static_cast(i), 1.0f); } previousActivatedFX = static_cast(i); } @@ -119,7 +119,7 @@ void setupMixingConsoleFX(Mixer* mixer, int scenarioId, size_t channel) else { mixer->setSendLevel(channel, MixerOutput::MainOutput, 0.25f); - mixer->setReturnLevel(previousActivatedFX, MixerOutput::MainOutput, 0.75f); + mixer->setFXSendLevel(previousActivatedFX, MixerOutput::MainOutput, 0.75f); } } @@ -159,11 +159,11 @@ TEST(MixingConsole, ZeroSamplesTest) mixer.setSendLevel(0, MixerOutput::FX_Delay, 1.0f); mixer.setSendLevel(0, MixerOutput::FX_PlateReverb, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::FX_Orbitone, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Orbitone, MixerOutput::MainOutput, 0.5f); - mixer.setReturnLevel(MixerOutput::FX_Orbitone, MixerOutput::FX_PlateReverb, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Delay, MixerOutput::MainOutput, 0.5f); - mixer.setReturnLevel(MixerOutput::FX_PlateReverb, MixerOutput::MainOutput, 0.5f); + mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::FX_Orbitone, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Orbitone, MixerOutput::MainOutput, 0.5f); + mixer.setFXSendLevel(MixerOutput::FX_Orbitone, MixerOutput::FX_PlateReverb, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Delay, MixerOutput::MainOutput, 0.5f); + mixer.setFXSendLevel(MixerOutput::FX_PlateReverb, MixerOutput::MainOutput, 0.5f); ASSERT_EQ(0, FULL_INSPECT((&mixer), true)); } @@ -188,7 +188,7 @@ TEST(MixingConsole, DryProcessing) for(size_t i = MixerOutput::OutputStart; i < (MixerOutput::kFXCount - 1); ++i) { - mixer.setReturnLevel(static_cast(i), MixerOutput::MainOutput, 0.0f); + mixer.setFXSendLevel(static_cast(i), MixerOutput::MainOutput, 0.0f); } mixer.setSendLevel(0, MixerOutput::MainOutput, 1.0f); @@ -226,7 +226,7 @@ TEST(MixingConsole, ReverberatorProcessing) mixer.setSendLevel(0, MixerOutput::MainOutput, 0.0f); mixer.setSendLevel(0, MixerOutput::FX_Reverberator, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 1.0f); ASSERT_EQ(0, INSPECT((&mixer), fullInspector)); float32_t in[length] = {0.1, 0.2}; @@ -272,7 +272,7 @@ TEST(MixingConsole, ReverberatorNoiseProcessing) mixer.setSendLevel(0, MixerOutput::MainOutput, 0.0f); mixer.setSendLevel(0, MixerOutput::FX_Reverberator, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 1.0f); ASSERT_EQ(0, INSPECT((&mixer), fullInspector)); float32_t in[length]; @@ -302,18 +302,18 @@ TEST(MixingConsole, StandardUsageProcessingByInjection) mixer.setSendLevel(0, MixerOutput::FX_Tube, 1.0f); mixer.setSendLevel(0, MixerOutput::FX_Phaser, 1.0f); - // mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 1.0f); + // mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 1.0f); // mixer.setSendLevel(0, MixerOutput::FX_Chorus, 1.0f); // mixer.setSendLevel(0, MixerOutput::FX_Reverberator, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::FX_Chorus, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Chorus, MixerOutput::FX_Reverberator, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Phaser, MixerOutput::FX_Delay, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::FX_Chorus, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Chorus, MixerOutput::FX_Reverberator, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Phaser, MixerOutput::FX_Delay, 1.0f); mixer.setSendLevel(0, MixerOutput::MainOutput, 0.25f); - mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 0.1f); - mixer.setReturnLevel(MixerOutput::FX_Chorus, MixerOutput::MainOutput, 0.15f); - mixer.setReturnLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.3f); - mixer.setReturnLevel(MixerOutput::FX_Delay, MixerOutput::MainOutput, 0.3f); + mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 0.1f); + mixer.setFXSendLevel(MixerOutput::FX_Chorus, MixerOutput::MainOutput, 0.15f); + mixer.setFXSendLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.3f); + mixer.setFXSendLevel(MixerOutput::FX_Delay, MixerOutput::MainOutput, 0.3f); mixer.injectInputSamples(0, inSamples[StereoChannels::Left], inSamples[StereoChannels::Right], size); mixer.process(outSamples[0], outSamples[1]); @@ -342,18 +342,18 @@ TEST(MixingConsole, StandardUsageProcessing) mixer.setSendLevel(0, MixerOutput::FX_Tube, 1.0f); mixer.setSendLevel(0, MixerOutput::FX_Phaser, 1.0f); - // mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 1.0f); + // mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 1.0f); // mixer.setSendLevel(0, MixerOutput::FX_Chorus, 1.0f); // mixer.setSendLevel(0, MixerOutput::FX_Reverberator, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::FX_Chorus, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Chorus, MixerOutput::FX_Reverberator, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Phaser, MixerOutput::FX_Delay, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::FX_Chorus, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Chorus, MixerOutput::FX_Reverberator, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Phaser, MixerOutput::FX_Delay, 1.0f); mixer.setSendLevel(0, MixerOutput::MainOutput, 0.25f); - mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 0.1f); - mixer.setReturnLevel(MixerOutput::FX_Chorus, MixerOutput::MainOutput, 0.15f); - mixer.setReturnLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.3f); - mixer.setReturnLevel(MixerOutput::FX_Delay, MixerOutput::MainOutput, 0.3f); + mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 0.1f); + mixer.setFXSendLevel(MixerOutput::FX_Chorus, MixerOutput::MainOutput, 0.15f); + mixer.setFXSendLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.3f); + mixer.setFXSendLevel(MixerOutput::FX_Delay, MixerOutput::MainOutput, 0.3f); float32_t* inS = inSamples[StereoChannels::Left]; float32_t* outS[StereoChannels::kNumChannels]; @@ -404,18 +404,18 @@ TEST(MixingConsole, StandardUsageProcessingAllMixerChannels) mixer.setSendLevel(0, MixerOutput::FX_Tube, 1.0f); mixer.setSendLevel(0, MixerOutput::FX_Phaser, 1.0f); - // mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 1.0f); + // mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 1.0f); // mixer.setSendLevel(0, MixerOutput::FX_Chorus, 1.0f); // mixer.setSendLevel(0, MixerOutput::FX_Reverberator, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::FX_Chorus, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Chorus, MixerOutput::FX_Reverberator, 1.0f); - mixer.setReturnLevel(MixerOutput::FX_Phaser, MixerOutput::FX_Delay, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::FX_Chorus, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Chorus, MixerOutput::FX_Reverberator, 1.0f); + mixer.setFXSendLevel(MixerOutput::FX_Phaser, MixerOutput::FX_Delay, 1.0f); mixer.setSendLevel(0, MixerOutput::MainOutput, 0.25f); - mixer.setReturnLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 0.1f); - mixer.setReturnLevel(MixerOutput::FX_Chorus, MixerOutput::MainOutput, 0.15f); - mixer.setReturnLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.3f); - mixer.setReturnLevel(MixerOutput::FX_Delay, MixerOutput::MainOutput, 0.3f); + mixer.setFXSendLevel(MixerOutput::FX_Tube, MixerOutput::MainOutput, 0.1f); + mixer.setFXSendLevel(MixerOutput::FX_Chorus, MixerOutput::MainOutput, 0.15f); + mixer.setFXSendLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.3f); + mixer.setFXSendLevel(MixerOutput::FX_Delay, MixerOutput::MainOutput, 0.3f); float32_t* inS = inSamples[StereoChannels::Left]; float32_t* outS[StereoChannels::kNumChannels]; @@ -467,7 +467,7 @@ TEST(MixingConsole, StandardUsageProcessingAllMixerChannels2) for(size_t i = 0; i < NB_MIXER_CHANNELS; ++i) { mixer.setSendLevel(i, static_cast(i), 1.0f); - mixer.setReturnLevel(static_cast(i), MixerOutput::MainOutput, 0.5f); + mixer.setFXSendLevel(static_cast(i), MixerOutput::MainOutput, 0.5f); mixer.setSendLevel(i, MixerOutput::MainOutput, 0.5f); } diff --git a/src/test/test_fx_mixing_console_unitary.cpp b/src/test/test_fx_mixing_console_unitary.cpp index d63e233..7f4c2b6 100644 --- a/src/test/test_fx_mixing_console_unitary.cpp +++ b/src/test/test_fx_mixing_console_unitary.cpp @@ -63,7 +63,7 @@ TEST(MixingConsole, ReverberatorShortBuffer) mixer->setSendLevel(0, MixerOutput::MainOutput, 0.4f); mixer->setSendLevel(0, MixerOutput::FX_Reverberator, 1.0f); - mixer->setReturnLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.6f); + mixer->setFXSendLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.6f); float32_t inSamples[size]; for(size_t s = 0; s < size; ++s) inSamples[s] = getRandomValue(); @@ -152,7 +152,7 @@ TEST(MixingConsole, ReverberatorSamplesBoundariesTest) mixer->setSendLevel(0, MixerOutput::MainOutput, 0.4f); mixer->setSendLevel(0, MixerOutput::FX_Reverberator, 1.0f); - mixer->setReturnLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.6f); + mixer->setFXSendLevel(MixerOutput::FX_Reverberator, MixerOutput::MainOutput, 0.6f); mixer->getReverberator()->setMute(false); mixer->getReverberator()->setInputGain(0.35); diff --git a/wiki-update/mixing-console-overview.png b/wiki-update/mixing-console-overview.png index b91ac21..1728d8b 100644 Binary files a/wiki-update/mixing-console-overview.png and b/wiki-update/mixing-console-overview.png differ