[LAD] Fw: Re: [maybe OT] question regarding the FIL equalizer

Cedric Roux sed at free.fr
Fri Feb 27 22:18:04 UTC 2015

On 02/26/2015 11:06 PM, Fons Adriaensen wrote:
> Date: Thu, 26 Feb 2015 22:04:39 +0000
> From: Fons Adriaensen <fons at linuxaudio.org>
> To: Cedric Roux <sed at free.fr>
> On Wed, Feb 25, 2015 at 11:46:37PM +0100, Cedric Roux wrote:
>> can someone explain to me what this bandwidth computation means?
> There is nothing magical about it, it's just a pragmatic
> approximation that results in the 3dB BW (for high + or -
> gain) being expressed in octaves.

Thanks for explanations Fons.

I tried gamma = = sinh(log(2)/2 * bw * w0 / sin(w0)) * sin(w0)
as found in [1].
It sets gain(bandfreqs) = gain/2 (it's not the -3dB thing).
That works except for high f0 and high bandwidth.
In the worst case it acts on all the spectrum, turning itself
into a gain control. Strange. Your formula behaves cleaner
even if not 'mathematically' exact.

Now I have a minor issue with your smoothing techniques.
They depend on the block size.
Initializing everything, setting block size to 1 sample
(why not? we're in 2015!) and printing s1 and s2 for
the processing of a few samples will result in a list of values.
Setting block size to 16, 32, 48 samples gives different
values (after a while they agree though, which is expected).

Well, it's no big deal, this is an eq, no sane person
will ever use a block size of 1 sample (or anything
below 32 samples) and for all usual block sizes (32, 64,
128, ..., 2^n) the result is the same.

So forget about it.

I would just want to know why you do:
         k = (len > 48) ? 32 : len;
why 48? why not 32? What's your intention there?


[1] http://www.musicdsp.org/files/EQ-Coefficients.pdf

More information about the Linux-audio-dev mailing list