diff --git a/plugins/CrossoverEQ/CrossoverEQ.cpp b/plugins/CrossoverEQ/CrossoverEQ.cpp index 8ba9efc3bc2..325c73d864a 100644 --- a/plugins/CrossoverEQ/CrossoverEQ.cpp +++ b/plugins/CrossoverEQ/CrossoverEQ.cpp @@ -95,23 +95,17 @@ bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames if( m_needsUpdate || m_controls.m_xover12.isValueChanged() ) { m_lp1.setLowpass( m_controls.m_xover12.value() ); - m_lp1.clearHistory(); m_hp2.setHighpass( m_controls.m_xover12.value() ); - m_hp2.clearHistory(); } if( m_needsUpdate || m_controls.m_xover23.isValueChanged() ) { m_lp2.setLowpass( m_controls.m_xover23.value() ); - m_lp2.clearHistory(); m_hp3.setHighpass( m_controls.m_xover23.value() ); - m_hp3.clearHistory(); } if( m_needsUpdate || m_controls.m_xover34.isValueChanged() ) { m_lp3.setLowpass( m_controls.m_xover34.value() ); - m_lp3.clearHistory(); m_hp4.setHighpass( m_controls.m_xover34.value() ); - m_hp4.clearHistory(); } // gain values update @@ -206,6 +200,16 @@ bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames return isRunning(); } +void CrossoverEQEffect::clearFilterHistories() +{ + m_lp1.clearHistory(); + m_lp2.clearHistory(); + m_lp3.clearHistory(); + m_hp2.clearHistory(); + m_hp3.clearHistory(); + m_hp4.clearHistory(); +} + extern "C" { diff --git a/plugins/CrossoverEQ/CrossoverEQ.h b/plugins/CrossoverEQ/CrossoverEQ.h index 6dde55f4306..36d619c3b22 100644 --- a/plugins/CrossoverEQ/CrossoverEQ.h +++ b/plugins/CrossoverEQ/CrossoverEQ.h @@ -44,6 +44,8 @@ class CrossoverEQEffect : public Effect { return &m_controls; } + + void clearFilterHistories(); private: CrossoverEQControls m_controls; diff --git a/plugins/CrossoverEQ/CrossoverEQControls.cpp b/plugins/CrossoverEQ/CrossoverEQControls.cpp index ee2a05a857e..e8a1634f0f0 100644 --- a/plugins/CrossoverEQ/CrossoverEQControls.cpp +++ b/plugins/CrossoverEQ/CrossoverEQControls.cpp @@ -86,6 +86,7 @@ void CrossoverEQControls::loadSettings( const QDomElement & elem ) m_mute4.loadSettings( elem, "mute4" ); m_effect->m_needsUpdate = true; + m_effect->clearFilterHistories(); } void CrossoverEQControls::xover12Changed()