Skip to main content

Topic: foo_dsp_xgeq (Read 155251 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • xnor
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Heya,

here's another creation of mine, a graphic equalizer.

As of the current version it features:
  • 31 bands (1/3rd octave width)
  • boost/cut range of +-12 dB in .1 dB steps
  • master gain (can be set manually or automatically => prevents clipping for the most part)
  • minimum phase (=> no pre-echo)
  • approximates a smooth frequency response (=> no 'steps' between the bands)
  • import/export presets
  • mono and stereo mode


Since this is my first fb2k plugin that's a bit more complex this plugin should be considered experimental, use it at your own risk.
Please let me know if you encounter any bugs, thanks.

There's still room for optimizations and new features.. 

Download

Usage
1) Install the downloaded zip file using the Components preferences page.
2) Add "Graphic Equalizer" to the list of active DSPs (Playback - DSP Manager preferences page).
3) Configure it.

Screenshot:
[ Specified attachment is not available ]

Example frequency response in green (compared to built-in EQ in red):
[ Specified attachment is not available ]

Note that the boost in the lowest octaves isn't possible with the built-in EQ.
  • Last Edit: 24 January, 2012, 09:56:00 AM by xnor
"I hear it when I see it."

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
foo_dsp_xgeq
Reply #1
Does this use the Shibatch EQ?

  • romor
  • [*][*][*][*][*]
foo_dsp_xgeq
Reply #2
Thanks,
so many users lamented over this missing component

[a href="http://img52.imageshack.us/img52/7409/unledsq.png" target="_blank"][/quote]
option to 'draw on' sliders with mouse click could be fine

  • xnor
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #3
Does this use the Shibatch EQ?

Nope, it doesn't use any EQ libraries. I coded this from scratch.


option to 'draw on' sliders with mouse click could be fine

Noted on my todo list.
  • Last Edit: 08 May, 2011, 06:05:44 AM by xnor
"I hear it when I see it."

  • romor
  • [*][*][*][*][*]
foo_dsp_xgeq
Reply #4
Resulting frequency response in green (compared to built-in EQ in red)

Ah, you posted new screenshot. I'll zoom mine, just in case



Would it be possible improvement in edge slopes?
I noticed same in mudlord's low/hi pass filters

  • xnor
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #5
Would it be possible improvement in edge slopes?


I guess you mean those valleys, yes I'm still working on improving those as well as some other filter shape characteristics.

edit: I just compared the screenshot configuration from post #1 with Audition's (formerly cool edit) EQ and here my current algorithm results in a smoother frequency response!
But as you've noticed the trade-off are those valleys that result from a band configuration with larger steps. As of now you can add +0.5 dB boost before and after those +6 db bands to reduce the valleys.

Nevertheless it should work fine as it is or did you notice any stability problems or bugs?
  • Last Edit: 08 May, 2011, 02:32:39 PM by xnor
"I hear it when I see it."

  • romor
  • [*][*][*][*][*]
foo_dsp_xgeq
Reply #6
None, it's just too perfect
Same as you, I noticed that some slider configuration produces smoother overall curve then CEP/Au

It uses CPU almost like built-in eq, and same as built-in it still uses CPU even with zeroed sliders (that's I guess from foobar DSP design)

  • lvqcl
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #7
"Save/load preset" buttons (as in built-in EQ) would be nice...

  • Yegor
  • [*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #8
Quote
option to 'draw on' sliders with mouse click could be fine
What could really be fine then is a parametric EQ with an interactive frequency response display. Is there any good reason for graphic EQs to exist as a software? So my suggestion is to apply your knowledge of DSP to make even better EQ which won't be limited to a bunch of fixed sliders.

  • xnor
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #9
Sure Yegor, I could start today what do you pay me?  And you might want to read an equalizer FAQ or something like that. 
But let's stick to discussing the Graphic EQ plugin here, thanks.
  • Last Edit: 09 May, 2011, 07:14:26 AM by xnor
"I hear it when I see it."

  • Yegor
  • [*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #10
Yes, sure. What about making the window resizable? Also, try to make automatic gain a little bit more sophisticated, i.e. take some tracks, calculate average increase for each band and use the results to make the feature more effective. I mean, it's very unlikely for mid and high frequency bands to increase the overall level by their gain values. Say, I can boost the 16k band by 7 db, but there is almost no chance that this will affect the overall level by the same value.
  • Last Edit: 09 May, 2011, 11:16:11 AM by Yegor

  • xnor
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #11
Yes, sure. What about making the window resizable? Also, try to make automatic gain a little bit more sophisticated, i.e. take some tracks, calculate average increase for each band and use the results to make the feature more effective. I mean, it's very unlikely for mid and high frequency bands to increase the overall level by their gain values. Say, I can boost the 16k band by 7 db, but there is almost no chance that this will affect the overall level by the same value.

I wish this were true but even if a certain band is down 10 dB in a spectrum analyzer doesn't mean that the wave form won't clip even if you boost that band by just 1 dB.
But you're right that the chance of clipping and overall attenuation that is needed to prevent it is decreasing.

If you want to prevent clipping at any cost then you can use the auto gain feature. If you know what you're doing just disable auto and set it manually. You could process some heavily compressed tracks from your music collection with the converter to 32 bit WAVs (with the EQ in the DSP chain and gain = 0), analyze the resulting files with ReplayGain to get the peak values and then adjust your Equalizer settings according to the formula gain = -20*log10(peak).

I can also recommend to take a look at the peak meter visualization that comes with fb2k. While it's not the most accurate tool it still can show you when something is going wrong with the levels. (Of course you have to disable the advanced limiter to see the clipping.)


Btw, new version released. Grab it from the download post.
  • Last Edit: 09 May, 2011, 01:55:08 PM by xnor
"I hear it when I see it."

  • romor
  • [*][*][*][*][*]
foo_dsp_xgeq
Reply #12
Thanks for the update xnor

Impulse looks great, clicking on sliders (instead dragging the slider) now is tight - behaves as expected

  • Bob Brines
  • [*][*]
foo_dsp_xgeq
Reply #13
This plug-in looks like it has real promise. It needs one feature to be usable to me -- stored presets. Every time I change speakers, I need to change the EQ. I need loudness EQ's. Different genre need different EQ's. You get the picture. As this plug-in stands, it is extremely tedious to change the EQ.

Thanks for your efforts. Press on!

Bob

  • ustas
  • [*]
foo_dsp_xgeq
Reply #14
xnor, thank you for the good job!
I have an idea to make profiles of the equalizer depend on the genre (%genre%) of music or prescribed by a special tag in the files. By analogy with the jukeboxes settings: pop, rock, classical.

It would be good to do preprocessing for different speakers (headphones). Some thing like: setting up sound of the speakers, then add the effects of pop, rock, etc. from tags.
PEACE, Me.

  • xnor
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #15
This plug-in looks like it has real promise. It needs one feature to be usable to me -- stored presets.

You're right, it's tedious to change from one setup to another manually, but it's possible to use the DSP chain preset save/load feature to make things easier. Your thoughts on this?

Anyway it's on my growing to-do list. Thanks for the feedback everyone.
  • Last Edit: 10 May, 2011, 05:34:28 PM by xnor
"I hear it when I see it."

  • Bob Brines
  • [*][*]
foo_dsp_xgeq
Reply #16
Anyway it's on my growing to-do list. Thanks for the feedback everyone.


I'll keep checking back.When presets are installed, I'll run with this.

Bob
  • Last Edit: 10 May, 2011, 10:09:09 PM by Bob Brines

  • tribaljet
  • [*][*]
foo_dsp_xgeq
Reply #17
Congrats on your work, xnor. I'm glad that alternatives to the default EQ are being done, and working as a proper EQ 

There are more and more tools to be embedded natively in foobar, so your EQ could be quite good. Have you been posting updated on HF?

  • Chipicui
  • [*][*]
foo_dsp_xgeq
Reply #18
Thanks for your wonderful EQ! :-)
In my humble opinion the holy grail of usability would be some sort of custom tag that would store per song values of EQ settings.
I don't understand why it is not an already common feature of high end media players as foobar...
It would help to counter-act deficiencies of old/badly mastered/live/weird eq'd music, and would provide a better, more uniform listening experience.

  • xnor
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #19
I don't understand why it is not an already common feature of high end media players as foobar...


Afaik, the DSP interface is separated from other interfaces. To put it simple: the DSP interface basically just allows you to read audio samples (which is just a bunch of numbers), manipulate them and send them back to fb2k.

It may be possible to combine a DSP plugin with some other APIs that allow you to read tags of the currently playing song for example, but I haven't looked into the SDK thorough enough to be able to tell.
If I weren't so d*mn busy at the moment I'd look into it.
"I hear it when I see it."

  • ustas
  • [*]
foo_dsp_xgeq
Reply #20
I don't understand why it is not an already common feature of high end media players as foobar...


Afaik, the DSP interface is separated from other interfaces. To put it simple: the DSP interface basically just allows you to read audio samples (which is just a bunch of numbers), manipulate them and send them back to fb2k.

It may be possible to combine a DSP plugin with some other APIs that allow you to read tags of the currently playing song for example, but I haven't looked into the SDK thorough enough to be able to tell.
If I weren't so d*mn busy at the moment I'd look into it.

It will be very very good!
PEACE, Me.

  • lvqcl
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #21
It is possible to do something like this with foo_dsp_yac.

  • SASN
  • [*]
foo_dsp_xgeq
Reply #22
I tried installing the dll for this thing via Foobar's component section, but I cannot get this equalizer to show up. I am using Foobar 1.1.6 and Windows 7, non-admin account.

Should this equalizer work with Foobar version 1.1.6?

  • xnor
  • [*][*][*][*][*]
  • Developer
foo_dsp_xgeq
Reply #23
Should this equalizer work with Foobar version 1.1.6?


I just upgraded to 1.1.6 and it works fine here.
Please check that:
a) foo_dsp_xgeq is in the (installed) components list
b) Playback - DSP Manager - Graphic Equalizer is added to the active DSPs

Currently there's no other way to configure it than in the active DSPs list.
(will add this info to the first post)
  • Last Edit: 20 May, 2011, 11:06:32 AM by xnor
"I hear it when I see it."

  • SASN
  • [*]
foo_dsp_xgeq
Reply #24
Thanks! The equalizer now appear to work.

From the "components" section, I installed the EQ from some folder where the dll was located. I though maybe I had to apply some admin right for this to work but apparantly that was not necessary.

I did not know about the DSP part, no wonder I could not make it work. Since I intend to rarely change the EQ it is not a bother to have to go into the preferences.

Edit: Ah, I now see that the master gain thing work automatically, by correcting for adjustment values above 0db. Nice! I guess that is to prevent adding any extra gain that might perhaps damage the speakers.
  • Last Edit: 20 May, 2011, 02:21:13 PM by SASN