So Ive been having some issues with zippering artifacts with my IIR filters. To preface, I have 2 low shelf and 2 high shelf filters which get adjusted at different parts in my processorChain, however none of the filters ever move their frequency just the gain.
These filters realistically won’t change too often, but when my tone slider moves I get some pretty bad zippering unless the slider is moved pretty slowly. It is my understanding that dsp::stateVariableFilter would probably be better to use, however that filter doesn’t support shelves.
I have been trying to get a SmoothValue hooked up to these filters gain parameter for a while now, but since I am using a ProcessorChain, and not iterating over the buffer manually, Im not sure how I would appropriately change the filter parameters for each new smoothed value. I can update the parameters each processBlock call, but this is only fast enough that my smoothValue ramp speed must be at 1.5 seconds to remove the zippering (far too slow).
To summarize, my question is, how can I use a smoothValue to adjust IIR filter coefficients that live inside a processorChain? And if this is not possible, what other routes could I take?