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