[gst-devel] equalizer audio
Stefan Kost
ensonic at hora-obscura.de
Mon Oct 5 22:15:15 CEST 2009
Stefan Kost schrieb:
> sabine donzé schrieb:
>> Hello,
>>
>> I've effectively an equalization thanks to your modifications on the
>> plugin.
>> The equalization is well working on a mono file. But I've some
>> problems with stereo files.
>>
>> In stereo, I always have to define a frequency at 4kHz so as to have a
>> cutting-frequency at 8kHz.
>> Moreover, I observe a difference between left channel and right
>> channel. If I define the frequency at 4khz and a bandwidth of 2kHz,
>> left channel has a cutting frequency at 7kHz and right channel has a
>> cutting frequency at 9kHz.
>> We also have a difference of 3dB after the equalized band.
>>
>> You can see in attachment the observed results, obtained with the
>> following command line:
>>
>> gst-launch filesrc=test.mp3 ! ffdemux_mp3 ! mfw_mp3decoder !
>> equalizer-nbands num-bands=1 band0::gain=-10 band0::freq=4000
>> band0::bandwidth=2000 ! alsasink
>>
>> First graph is obtained width a mono file, and second graph is
>> obtained with a stereo file.
>>
>> Do you have some explanation? Why the defined frequency is not the
>> same that the observed cutting frequency, and why have I a difference
>> between right channel and left channel?
>>
>> Thanks for your help,
>> Sabine
>>
>> 2009/2/3 Stefan Kost <ensonic at hora-obscura.de
>> <mailto:ensonic at hora-obscura.de>>
>>
>> sabine donzé schrieb:
>> > 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
>> >
>> >
>> I filed a bug at
>> http://bugzilla.gnome.org/show_bug.cgi?id=570343
>> Will look at it over the next days.
>>
>> Stefan
>>
>> > 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
>>
>
> Sorry for looon delay. I have had a quick look and filed
> https://bugzilla.gnome.org/show_bug.cgi?id=597397 now. I'll have a look
> at the code in the coming days. In the future it would be good if you
> can just file the bugs instead.
>
> Stefan
and fixed :)
Stefan
More information about the gstreamer-devel
mailing list