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

Reply via email to