fluidsynth icon indicating copy to clipboard operation
fluidsynth copied to clipboard

Remove interpolation of IIR filter coefficients

Open derselbst opened this issue 6 days ago • 4 comments

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.

filter-coeff-interp.zip

derselbst avatar Jun 29 '24 10:06 derselbst