On Tue, Mar 19, 2013 at 5:57 PM, Fons Adriaensen <f...@linuxaudio.org>wrote:
> On Tue, Mar 19, 2013 at 05:26:27PM -0500, Charles Z Henry wrote: > > > 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. > > The same thing as what ? > I was replying to Tim's comment on putting two filters in series--I guess if you've settled on Q=0.5 then it's fine. I thought you were discussing this in general. > 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). > > > > 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. > > 'Slow enough' might be too slow. A fader should still 'feel' like > it has no delay. > > > I think you should figure out a different shape of ramp that doesn't have > > discontinuities in the first derivative > > That is precisely what a second order lowpass is doing. > > > 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. > Okay--I misunderstood the application. The lowpass filter is definitely better handling all the possible inputs. If it was always a fixed time over which you need to fade in, I think you could find a good analytical function to use, or make a table that always has a predictable effect. Chuck
_______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/listinfo/linux-audio-dev