On Tue, Mar 19, 2013 at 05:26:27PM -0500, Charles Z Henry wrote:The same thing as what ?
> You guys are splitting hairs... kind of misses the forest for the trees.
> Here's my nit to pick: two identical 1st-order lowpass filters in series
> are only equivalent to a 2nd-order lowpass filter when the quality factor
> is 0.5. So that's not the same thing.
In this case we don't want overshoot so Q must be <= 0.5.
The form I posted actually has a little bit of feedback,
so Q is jusst above 0.5. This makes it reach its target
value in finite time, bit still with an overhsoot of less
than 1/1000 dB. The same code can do any Q value you want,
just use the righr value for the feedabck term (a).
'Slow enough' might be too slow. A fader should still 'feel' like
> The best way to avoid "zipper noise" is not to create it in the first
> place. Ramps not good enough for ya? Why not? Any "slow enough" ramp
> will do.
it has no delay.
That is precisely what a second order lowpass is doing.
> I think you should figure out a different shape of ramp that doesn't have
> discontinuities in the first derivative
> 0.5-0.5*cos(pi*n/N)
Raised cosine, indeed better than a linear ramp.
Ideally you'd want the higher derivatives to be continuous
as well. A raised hyperbolic tangent will do that, or at least
come close to the ideal in finite time.
The problem with all thoe programmed ramps is that they require
extra logic to handle the case where the requested gain changes
during the ramp. A linear filter solves that problem neatly with
much less code. And in fact *any* system that handles that case
well will be a low pass filter is some disguise.