[gst-devel] equalizer audio

Stefan Kost ensonic at hora-obscura.de
Mon Oct 5 12:29:26 CEST 2009


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

>     >
>     ------------------------------------------------------------------------
>     >
>     >
>     ------------------------------------------------------------------------------
>     > This SF.net email is sponsored by:
>     > SourcForge Community
>     > SourceForge wants to tell your story.
>     > http://p.sf.net/sfu/sf-spreadtheword
>     >
>     ------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > gstreamer-devel mailing list
>     > gstreamer-devel at lists.sourceforge.net
>     <mailto:gstreamer-devel at lists.sourceforge.net>
>     > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>     >
>
>
>     ------------------------------------------------------------------------------
>     Create and Deploy Rich Internet Apps outside the browser with
>     Adobe(R)AIR(TM)
>     software. With Adobe AIR, Ajax developers can use existing skills
>     and code to
>     build responsive, highly engaging applications that combine the
>     power of local
>     resources and data with the reach of the web. Download the Adobe
>     AIR SDK and
>     Ajax docs to start building applications
>     today-http://p.sf.net/sfu/adobe-com
>     _______________________________________________
>     gstreamer-devel mailing list
>     gstreamer-devel at lists.sourceforge.net
>     <mailto:gstreamer-devel at lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
> software. With Adobe AIR, Ajax developers can use existing skills and code to
> build responsive, highly engaging applications that combine the power of local
> resources and data with the reach of the web. Download the Adobe AIR SDK and
> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
> ------------------------------------------------------------------------
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel





More information about the gstreamer-devel mailing list