Best place/means to smooth parameter changes to eliminate "zipper noise"?

Oftentimes plugin controls, such as Volume, EQ boost./cut, etc., need to be smoothed to eliminate “zipper noise” when changing the control value while audio is running.

One means I have used is to check the parameter value at the beginning of every Process() block. If the value has changed from the previous check I then interpolate to the new value over nFrames - calculating a new incremental value in each “For” loop (i/nFrames). This works but the final, new value isn’t reached until the end of the Process() block. So, I am wondering if this is how it’s typically done or if there is something more common/straightforward?

Any input appreciated!

The LogParamSmooth class [here] is what I usually use (iPlug2/Smoothers.h at master · iPlug2/iPlug2 · GitHub)

1 Like

Thank you for the reply and the link. Will check it out.