[gst-devel] equalizer audio

sabine donzé sabine.donze at gmail.com
Wed Jan 28 15:12:02 CET 2009


Hello,

I'm using the equalizer-nbands plugin from gst-plugins-good_0.10.7.
However, if I configure the frequency for one or for each band, the observed
cutoff frequency is not the same than the defined frequency.

For example:

gst-launch filesrc location=toto.mp3 ! ffdemux_mp3 ! mfw_mp3decoder !
equalizer-nbands num-bands=4 band0::gain=-21 band0::frequency=947
band0::bandwidth=100 ! alsasink

I should have a cutting frequency at 957Hz for band0.
In logfile, I observe that gain, frequency and bandwidth have been correctly
changed. But in setup_filter function, frequency is not at defined value:

0:00:00.516575000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:494:gst_iir_equalizer_compute_frequencies: band[ 0] =
'66.234133'
0:00:00.517031000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:494:gst_iir_equalizer_compute_frequencies: band[ 1] =
'372.461899'
0:00:00.517357000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:494:gst_iir_equalizer_compute_frequencies: band[ 2] =
'2094.507176'
0:00:00.517678000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:494:gst_iir_equalizer_compute_frequencies: band[ 3] =
'11778.279410'
0:00:00.518174000  1477 0x14018 LOG              equalizer
gstiirequalizer.c:290:gst_iir_equalizer_child_proxy_get_children_count: we
have 4 children
0:00:00.518600000  1477 0x14018 LOG              equalizer
gstiirequalizer.c:281:gst_iir_equalizer_child_proxy_get_child_by_index:
return child[0] 'band0'
0:00:00.519124000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:136:gst_iir_equalizer_band_set_property:<band0> gain =
0.000000 -> -21.000000

0:00:00.519571000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:146:gst_iir_equalizer_band_set_property:<band0> changed
gain = -21.000000
0:00:00.520126000  1477 0x14018 LOG              equalizer
gstiirequalizer.c:290:gst_iir_equalizer_child_proxy_get_children_count: we
have 4 children
0:00:00.520444000  1477 0x14018 LOG              equalizer
gstiirequalizer.c:281:gst_iir_equalizer_child_proxy_get_child_by_index:
return child[0] 'band0'
0:00:00.520852000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:154:gst_iir_equalizer_band_set_property:<band0> freq =
66.234133 -> 947.000000
0:00:00.521334000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:164:gst_iir_equalizer_band_set_property:<band0> changed
freq = 947.000000
0:00:00.521767000  1477 0x14018 LOG              equalizer
gstiirequalizer.c:290:gst_iir_equalizer_child_proxy_get_children_count: we
have 4 children
0:00:00.522071000  1477 0x14018 LOG              equalizer
gstiirequalizer.c:281:gst_iir_equalizer_child_proxy_get_child_by_index:
return child[0] 'band0'
0:00:00.522568000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:172:gst_iir_equalizer_band_set_property:<band0> width =
92.468265 -> 100.000000
0:00:00.523032000  1477 0x14018 DEBUG            equalizer
gstiirequalizer.c:182:gst_iir_equalizer_band_set_property:<band0> changed
width = 100.000000
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.996510000  1477 0x2e7d0 DEBUG            equalizer
gstiirequalizer.c:451:gst_iir_equalizer_compute_frequencies: bands 4 -> 4
0:00:00.997166000  1477 0x2e7d0 DEBUG            equalizer
gstiirequalizer.c:494:gst_iir_equalizer_compute_frequencies: band[ 0] =
'66.234133'
0:00:00.997577000  1477 0x2e7d0 DEBUG            equalizer
gstiirequalizer.c:494:gst_iir_equalizer_compute_frequencies: band[ 1] =
'372.461899'
0:00:00.997921000  1477 0x2e7d0 DEBUG            equalizer
gstiirequalizer.c:494:gst_iir_equalizer_compute_frequencies: band[ 2] =
'2094.507176'
0:00:00.998256000  1477 0x2e7d0 DEBUG            equalizer
gstiirequalizer.c:494:gst_iir_equalizer_compute_frequencies: band[ 3] =
'11778.279410'
0:00:00.998887000  1477 0x2e7d0 INFO             equalizer
gstiirequalizer.c:438:setup_filter: gain =     -21, , bandwidth=  92.468,
frequency =  66.234, a0 = 0.98034,
0:00:00.999431000  1477 0x2e7d0 INFO             equalizer
gstiirequalizer.c:438:setup_filter: gain =       0, , bandwidth=  519.99,
frequency =  372.46, a0 =       1, a1
0:00:01.000021000  1477 0x2e7d0 INFO             equalizer
gstiirequalizer.c:438:setup_filter: gain =       0, , bandwidth=  2924.1,
frequency =  2094.5, a0 =       1, a1
0:00:01.000526000  1477 0x2e7d0 INFO             equalizer
gstiirequalizer.c:438:setup_filter: gain =       0, , bandwidth=   16443,
frequency =   11778, a0 =       1, a1


Moreover, cutoff frequency observed at the end of audio chain is around
200Hz

I've also tried to define all bands, but cutting frequencies observed are
not coherent with defined frequencies.

Moreover, according to configurations, we can have a difference of 6dB
between right way and left way.

How does this plugin work? How configure it so as to have a cutting
frequency at 947Hz?
How to have the same output for right way and left way, or how to configure
the difference between right way and left way?

Thanks for your help
Sabine
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090128/ccb39281/attachment.htm>


More information about the gstreamer-devel mailing list