Re: [LAD] Mixing audio: Noiseless volume changes

From: Charles Z Henry <czhenry@email-addr-hidden>
Date: Wed Mar 20 2013 - 01:12:21 EET

On Tue, Mar 19, 2013 at 5:57 PM, Fons Adriaensen <fons@email-addr-hiddenwrote:

> 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@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Wed Mar 20 04:15:02 2013

This archive was generated by hypermail 2.1.8 : Wed Mar 20 2013 - 04:15:02 EET