Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Foobar equalizer rewrite necessary? (Read 16451 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Foobar equalizer rewrite necessary?

Hello,

there is a problem with the foobar equalizer which most people are probably not aware of.
To quote the wiki,

Quote
The equalizer should not be used for "enhancing bass" and such. The equalizer's purpose is to correct non-linear frequency response in audio hardware. If you do not understand what that is, please do not use the equalizer.

Say, I have some pretty nonlinear equipment (in this case my headphones) and want to correct this deficiency.
Now let's see what the frequency response of that equalizer actually is:

The plot is generated from the impulse response of the EQ.

Playing this on the actual device would result in some sawtooth-like response curve which boosts small areas around the former peaks. This means it will sound weird.

If the equalizer's filter is already applied in the frequency domain, the solution would be to just interpolate it nicely between the control points (e.g. with spline or maybe sinc interpolation).


Any comments on this?

Foobar equalizer rewrite necessary?

Reply #1
I can't see your image, so I don't really know what you're talking about.

Foobar equalizer rewrite necessary?

Reply #2
Screenshot (rehosted on ImageShack):


(Nagging: It would have been smarter to save this one as PNG in the first place.)

Foobar equalizer rewrite necessary?

Reply #3
Thanks for rehosting, foosion.

(yes, indeed...)

Foobar equalizer rewrite necessary?

Reply #4
You have a point.  But...  An EQ built-in to a free media player will always be and sound shitty, or at least I have yet to see the exception.  Regardless of what kind of frequency curve it emoploys, it will still ruin that nicely mastered recording.
Download a VST wrapper (is there one?) and buy some lovely Voxengo EQs if you really need to compensate for your equipments response.

Foobar equalizer rewrite necessary?

Reply #5
You have a point.  But...  An EQ built-in to a free media player will always be and sound shitty, or at least I have yet to see the exception.  Regardless of what kind of frequency curve it emoploys, it will still ruin that nicely mastered recording.
Download a VST wrapper (is there one?) and buy some lovely Voxengo EQs if you really need to compensate for your equipments response.

Ummmm, just because foobar is free doesn't mean that its EQ has to be shitty

Actually, I'm quite sure that one can write a cool (and good) EQ in a few days.
If I did it, it would probably look / work like this:
- a simple NURBS curve editor where you can design an arbitrary (smooth) frequency response (probably based on the free Nurbs++ library)
- the ability to draw at least a source and a target curve (so that a device with the characteristics of "source" sounds like "target") - this way one can exchange equipment and sound independently
- the ability to display a background image (curve) and controls for scaling/moving it
- presets, curve inversion
- a linear-phase overlapped FFT filter at the backend (2048 or 4096 point, probably based on FFTW for maximum performance)
 
less important/optional features could be:
- import impulse files as background images
- background image fitting (Nurbs++ can already do curve fitting AFAICS)
- assigning different curves per channel

It's interesting that Voxengo's CurveEQ is so similar to this design. But
a) there is no VST wrapper for foobar (it seems)
b) it's not free

Unfortunately, I don't have a lot of time in the next 4-6 weeks (precisely: zero) due to work and studies.
So, if anyone wants to do that right now (or in the next foobar version), I wouldn't be angry

Btw: I don't use/need foobar's EQ to equalize for my headphones. I use foo_convolve with an impulse file which I generated from this curve as source (slightly modified) and this
[a href="http://img247.imageshack.us/my.php?image=flatterqt9.png" target="_blank"]

Foobar equalizer rewrite necessary?

Reply #6
Btw: I don't use/need foobar's EQ to equalize for my headphones. I use foo_convolve with an impulse file which I generated from this curve as source (slightly modified) and this
[a href="http://img247.imageshack.us/my.php?image=flatterqt9.png" target="_blank"]


Off topic, but I'm interested, how exactly did you generate the impulse file?

Foobar equalizer rewrite necessary?

Reply #7
Off topic, but I'm interested, how exactly did you generate the impulse file?

Basically, I did this:

1. Get the frequency domain filter:
- extract the (Source,Target) curves from the images, subtract Source from Target & map from decibels to ratios.
i.e. F = db2ratio(Target - Source);

2. Turn it into a FIR filter:
- start with an (odd-sized, e.g. N=20001) array, all zeros except for a 1 in the middle. This is a symmetric (linear-phase) FIR filter which just delays the signal by N/2 but does not change it otherwise.
- transform it into the frequency domain (by FFT)
- for each DFT bin i, scale it by F(freq(i))
- backtransfrom into the time domain (by iFFT) This is (still) a symmetric linear-phase FIR filter which delays the signal but also has the desired frequency response.

This should be correct and optimal because the resulting filter has exactly the right properties (namely frequency and phase response).



Foobar equalizer rewrite necessary?

Reply #10
(I'll get flamed for this, in this particular topic/forum) but if the EQ was rewritten, I would love to see support for the EQUA2 ID3v2 tag ;-)
Can't wait for a HD-AAC encoder :P

Foobar equalizer rewrite necessary?

Reply #11
Was the EQ ever rewritten?

Foobar equalizer rewrite necessary?

Reply #12
No. But we have a vst-wrapper now. foo_dsp_vst.

Foobar equalizer rewrite necessary?

Reply #13
Can you please recommend a good quality and not TOO MUCH CPU intensive freeware vst plugin?