Have a look at these G. Stoyanov and M. Kawamata, “Variable digital filters,” J.Signal Processing, vol. 1, no. 4, pp. 275–289, 1997.
J. Laroche, “On the stability of time-varying recursive filters,”Journal of the Audio Engineering Society, vol. 55, no.6, pp. 460–471, 2007. V. Välimäki and T.I. Laakso, “Suppression of transients intime-varying recursive filters for audio signals,” in Proceedingsof the 1998 IEEE International Conference on Acoustics,Speech and Signal Processing, 1998, May 1998, vol. 6,pp. 3569–3572 vol.6. A. Wishnick, “Time-varying filters for musical applications,”in Proceedings of the 17th International Conference on DigitalAudio Effects (DAFx-14), 2014, pp. 69–76. From: Paul Stoffregen <p...@pjrc.com> To: music-dsp@music.columbia.edu Sent: Tuesday, 1 March 2016, 14:56 Subject: [music-dsp] Changing Biquad filter coefficients on-the-fly, how to handle filter state? Does anyone have any suggestions or publications or references to best practices for what to do with the state variables of a biquad filter when changing the coefficients? For a bit of background, I implement a Biquad Direct Form 1 filter in this audio library. It works well. https://github.com/PaulStoffregen/Audio/blob/master/filter_biquad.cpp#L94 There's a function which allows the user to change the 5 coefficients. Lines 94 & 95 set the 4 filter state variables (which are 16 bits, packed into two 32 bit integers) to zero. I did this clear-to-zero out of an abundance of caution, for concern (maybe paranoia) that a stable filter might do something unexpected or unstable if the 4 state variables are initialized with non-zero values. The problem is people wish to change the coefficients in real time with as little audible artifact as possible between the old and new filter response. Clearing the state to zero usually results in a very noticeable click or pop sound. https://github.com/PaulStoffregen/Audio/issues/171 Am I just being overly paranoid by setting all 4 state variables to zero? If "bad things" could happen, are there any guidelines about how to manage the filter state safely, but with with as graceful a transition as possible? _______________________________________________ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
_______________________________________________ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp