On 02/26/2015 11:06 PM, Fons Adriaensen wrote:
Date: Thu, 26 Feb 2015 22:04:39 +0000
From: Fons Adriaensen <fons(a)linuxaudio.org>
To: Cedric Roux <sed(a)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?
Regards,
Cédric.
[1]
http://www.musicdsp.org/files/EQ-Coefficients.pdf