diff --git a/plugins/BassBooster/BassBooster.cpp b/plugins/BassBooster/BassBooster.cpp index 38a9bced3..60c31ab1a 100644 --- a/plugins/BassBooster/BassBooster.cpp +++ b/plugins/BassBooster/BassBooster.cpp @@ -49,6 +49,7 @@ Plugin::Descriptor PLUGIN_EXPORT bassbooster_plugin_descriptor = BassBoosterEffect::BassBoosterEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : Effect( &bassbooster_plugin_descriptor, parent, key ), + m_frequencyChangeNeeded( false ), m_bbFX( DspEffectLibrary::FastBassBoost( 70.0f, 1.0f, 2.8f ) ), m_bbControls( this ) { @@ -74,7 +75,11 @@ bool BassBoosterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames return( false ); } // check out changed controls - if( m_bbControls.m_freqModel.isValueChanged() ) { changeFrequency(); } + if( m_frequencyChangeNeeded || m_bbControls.m_freqModel.isValueChanged() ) + { + changeFrequency(); + m_frequencyChangeNeeded = false; + } if( m_bbControls.m_gainModel.isValueChanged() ) { changeGain(); } if( m_bbControls.m_ratioModel.isValueChanged() ) { changeRatio(); } diff --git a/plugins/BassBooster/BassBooster.h b/plugins/BassBooster/BassBooster.h index ad7c6c457..160328e93 100644 --- a/plugins/BassBooster/BassBooster.h +++ b/plugins/BassBooster/BassBooster.h @@ -44,11 +44,14 @@ public: } -private: +protected: void changeFrequency(); void changeGain(); void changeRatio(); + bool m_frequencyChangeNeeded; + +private: DspEffectLibrary::MonoToStereoAdaptor m_bbFX; BassBoosterControls m_bbControls; diff --git a/plugins/BassBooster/BassBoosterControls.cpp b/plugins/BassBooster/BassBoosterControls.cpp index 13fd8463f..0fe16a505 100644 --- a/plugins/BassBooster/BassBoosterControls.cpp +++ b/plugins/BassBooster/BassBoosterControls.cpp @@ -43,7 +43,7 @@ BassBoosterControls::BassBoosterControls( BassBoosterEffect* effect ) : void BassBoosterControls::changeFrequency() { - m_effect->changeFrequency(); + m_effect->m_frequencyChangeNeeded = true; }