fluidsynth
fluidsynth copied to clipboard
Remove interpolation of IIR filter coefficients
During implementation of #1342, I found the IIR filter producing strange cracks and clicks. I haven't done a deep investigation but it seems that this was caused by big and frequent changes of the cutoff frequency by fres_mod
.
I found that the clicks were produced by the code that interpolates the filter coefficients. I.e. setting if(dsp_filter_coeff_incr_count > 0)
to if(FALSE)
didn't cause any more clicks.
Without a deeper investigation of the numeric logic I don't know how to fix this. Yet, I don't think this justifies the more complex logic, and therefore I'm suggesting to remove that interpolation logic.
Attached is a ZIP with two audio samples. DF2.ogg (Direct Form 2) is the filter as implemented before this PR. DF2-nointerp.ogg is the same filter without any interpolation.