Help needed on changing frequencies of equalizer

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Help needed on changing frequencies of equalizer

Yogesh Marwaha
Hi,

I have a question regarding gstreamer equalizer.

By default a 10-band equalizer supports equally distributed frequency
bands between 30 Hz and 15 kHz (29, 59, 119, 227, 474, 947, 1889,
3770, 7523, 1511) and most other applications like amarok, winamp, vlc
etc. supports frequency bands between 70 Hz and 16 kHz (70, 180, 320,
600, 1k, 3k, 6k, 12k, 14k, 16k).

GStreamer allows three properties of each band to change - gain,
(center)frequency, and bandwidth. Hence, it seems impossible to
implement frequencies like those supported by other applications
without overlapping.

Do you have any idea in this regard?

--
Yogesh M
http://sparklemedia.sourceforge.net/
http://mazedaar.wordpress.com/
http://snakeeyes.wordpress.com/

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Help needed on changing frequencies of equalizer

Maarten Bosmans
I'm not sure I quite follow you.

You can just choose either system of 10 bands and set the
centerfrequencies of the bands in the GStreamer equalizer to those
frequencies. You can then fix the bandwidth, or better yet, fix the
Q-factor of each band to a reasonable value.

In every graphic equalizer there is some overlap between the bands,
that's no problem.

Maarten


2010/1/7 Yogesh Marwaha <[hidden email]>:

> Hi,
>
> I have a question regarding gstreamer equalizer.
>
> By default a 10-band equalizer supports equally distributed frequency
> bands between 30 Hz and 15 kHz (29, 59, 119, 227, 474, 947, 1889,
> 3770, 7523, 1511) and most other applications like amarok, winamp, vlc
> etc. supports frequency bands between 70 Hz and 16 kHz (70, 180, 320,
> 600, 1k, 3k, 6k, 12k, 14k, 16k).
>
> GStreamer allows three properties of each band to change - gain,
> (center)frequency, and bandwidth. Hence, it seems impossible to
> implement frequencies like those supported by other applications
> without overlapping.
>
> Do you have any idea in this regard?
>
> --
> Yogesh M
> http://sparklemedia.sourceforge.net/
> http://mazedaar.wordpress.com/
> http://snakeeyes.wordpress.com/
>
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Help needed on changing frequencies of equalizer

Yogesh Marwaha
2010/1/7 Maarten Bosmans <[hidden email]>:

> I'm not sure I quite follow you.
>
> You can just choose either system of 10 bands and set the
> centerfrequencies of the bands in the GStreamer equalizer to those
> frequencies. You can then fix the bandwidth, or better yet, fix the
> Q-factor of each band to a reasonable value.
>
> In every graphic equalizer there is some overlap between the bands,
> that's no problem.
>
> Maarten
It is centerfrequency which is troubling me. Take, for example,
upper frequency bands of winamp's equalizer (70, 180, 320,
600, 1k, 3k, 6k, 12k, 14k, 16k). For the top-most band (16k),
I would use a bandwidth of 2000, which means 15000 - 17000,
then, what about those above 17000? To cover up all frequencies
I will have to use a bandwidth of 8000 with centerfrequency of
16000 (12000 - 2000).
I could not find any documentation about Q-factor of band. What
is it? Any details about that?

Regards,

>
>
> 2010/1/7 Yogesh Marwaha <[hidden email]>:
>> Hi,
>>
>> I have a question regarding gstreamer equalizer.
>>
>> By default a 10-band equalizer supports equally distributed frequency
>> bands between 30 Hz and 15 kHz (29, 59, 119, 227, 474, 947, 1889,
>> 3770, 7523, 1511) and most other applications like amarok, winamp, vlc
>> etc. supports frequency bands between 70 Hz and 16 kHz (70, 180, 320,
>> 600, 1k, 3k, 6k, 12k, 14k, 16k).
>>
>> GStreamer allows three properties of each band to change - gain,
>> (center)frequency, and bandwidth. Hence, it seems impossible to
>> implement frequencies like those supported by other applications
>> without overlapping.
>>
>> Do you have any idea in this regard?
>>
>> --
>> Yogesh M
>> http://sparklemedia.sourceforge.net/
>> http://mazedaar.wordpress.com/
>> http://snakeeyes.wordpress.com/
>>
>> ------------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Verizon Developer Community
>> Take advantage of Verizon's best-in-class app development support
>> A streamlined, 14 day to market process makes app distribution fast and easy
>> Join now and get one step closer to millions of Verizon customers
>> http://p.sf.net/sfu/verizon-dev2dev
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>



--
Yogesh M
http://sparklemedia.sourceforge.net/
http://mazedaar.wordpress.com/
http://snakeeyes.wordpress.com/

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Help needed on changing frequencies of equalizer

Maarten Bosmans
2010/1/8 Yogesh Marwaha <[hidden email]>:
> It is centerfrequency which is troubling me. Take, for example,
> upper frequency bands of winamp's equalizer (70, 180, 320,
> 600, 1k, 3k, 6k, 12k, 14k, 16k).

In most applications it makes the most sense to view frequencies on a
logarithmic scale.
Something like 35, 70, 140, 280, 560, 1k1, 2k2, 4k4, 9k, 18k, for
example. Note how the frequency is doubled every time.

> For the top-most band (16k),
> I would use a bandwidth of 2000, which means 15000 - 17000,
> then, what about those above 17000? To cover up all frequencies
> I will have to use a bandwidth of 8000 with centerfrequency of
> 16000 (12000 - 2000).

Couple of options:
 - You could  use a shelf filter instead of a bandpass for the outer
frequencies
   (not sure how to do that in GStreamer though)
 - Make sure that the bandwidth of the outer frequencies cover the
whole audible spectrum (~ 20-20k)
 - Accept the fact that you can't equalize frequencies above 17k,
which for some applications may be entirebly reasonably and for other
it isn't.

> I could not find any documentation about Q-factor of band. What
> is it? Any details about that?

http://en.wikipedia.org/wiki/Q_factor

If you have bands with constant-Q width, the crossover frequency is
the geometric mean of the centerfrequencies, not the arithmetic mean.
So in my one-octave bands example where the bands are doubled, the
bandwidth extends between 0.71 and 1.41 times the center frequency.

By reading the source (gstiirequalizer.c) though, it seems that the
algorithm used in GStreamer uses bandwidths defined in Hz from center.
So you'd have to convert from Q to Hz and probably shift the center
frequency also.

Maarten

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Help needed on changing frequencies of equalizer

Stefan Sauer
Am 10.01.2010 00:37, schrieb Maarten Bosmans:

> 2010/1/8 Yogesh Marwaha <[hidden email]>:
>> It is centerfrequency which is troubling me. Take, for example,
>> upper frequency bands of winamp's equalizer (70, 180, 320,
>> 600, 1k, 3k, 6k, 12k, 14k, 16k).
>
> In most applications it makes the most sense to view frequencies on a
> logarithmic scale.
> Something like 35, 70, 140, 280, 560, 1k1, 2k2, 4k4, 9k, 18k, for
> example. Note how the frequency is doubled every time.
>
>> For the top-most band (16k),
>> I would use a bandwidth of 2000, which means 15000 - 17000,
>> then, what about those above 17000? To cover up all frequencies
>> I will have to use a bandwidth of 8000 with centerfrequency of
>> 16000 (12000 - 2000).
>
> Couple of options:
>  - You could  use a shelf filter instead of a bandpass for the outer
> frequencies
>    (not sure how to do that in GStreamer though)


The eq already uses shelf filters for first and last band in last
gst-plugins-good for the 3/10 band versions. In the full parametric version it
is configurable.

Stefan

>  - Make sure that the bandwidth of the outer frequencies cover the
> whole audible spectrum (~ 20-20k)
>  - Accept the fact that you can't equalize frequencies above 17k,
> which for some applications may be entirebly reasonably and for other
> it isn't.
>
>> I could not find any documentation about Q-factor of band. What
>> is it? Any details about that?
>
> http://en.wikipedia.org/wiki/Q_factor
>
> If you have bands with constant-Q width, the crossover frequency is
> the geometric mean of the centerfrequencies, not the arithmetic mean.
> So in my one-octave bands example where the bands are doubled, the
> bandwidth extends between 0.71 and 1.41 times the center frequency.
>
> By reading the source (gstiirequalizer.c) though, it seems that the
> algorithm used in GStreamer uses bandwidths defined in Hz from center.
> So you'd have to convert from Q to Hz and probably shift the center
> frequency also.
>
> Maarten
>
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev 
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Help needed on changing frequencies of equalizer

Yogesh Marwaha
I thank you all for your help in the matter; though Q-factor stuff I
am sure I still cannot take advantage of but I'll try what can I
achieve with the help of high/low shelf filters (of which I had no
idea earlier).

Regards,

--
Yogesh M
http://sparklemedia.sourceforge.net/
http://mazedaar.wordpress.com/
http://snakeeyes.wordpress.com/

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel