[LAD] Mixing audio: Noiseless volume changes

Charles Z Henry czhenry at gmail.com
Tue Mar 19 22:26:27 UTC 2013


On Tue, Mar 19, 2013 at 2:15 PM, Tim Goetze <tim at quitte.de> wrote:

> [Fons Adriaensen]
> >Exactly the same with the form I proposed, w, a, b need to be computed
> >just once, not for every gain change. In fact only w depends on the
> >sample rate, a and b are fixed constants.
>
> Ah yes, sorry, I see that now.
>
> If that extra operation comes around to bite hard enough, I'll be sure
> to chain two 1st-order lowpass filters.
>

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 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.  Your problem might be that you're trying to ramp the volume too
fast.  Adding a filter just slows down the response anyway.

I think you should figure out a different shape of ramp that doesn't have
discontinuities in the first derivative, such as:

0.5-0.5*cos(pi*n/N)
where N is the number of samples in the ramp

If simple guesses like that are not good enough, you'll have to figure out
how to make a bandlimited step function that cuts out the problematic
frequencies.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-dev/attachments/20130319/7bbede9b/attachment.html>


More information about the Linux-audio-dev mailing list