IPB

Welcome Guest ( Log In | Register )

> foobar2000 General Forum Rules

This is NOT a tech support forum.
Tech support questions go to foobar2000 Tech Support forum instead.

See also: Hydrogenaudio Terms of Service.

 
Reply to this topicStart new topic
Foobar equalizer rewrite necessary?
pro_optimizer
post Feb 3 2007, 04:29
Post #1





Group: Developer
Posts: 99
Joined: 6-June 06
Member No.: 31515



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?

This post has been edited by pro_optimizer: Feb 5 2007, 17:46
Go to the top of the page
+Quote Post
tgoose
post Feb 3 2007, 12:40
Post #2





Group: Members
Posts: 407
Joined: 12-April 05
Member No.: 21399



I can't see your image, so I don't really know what you're talking about.
Go to the top of the page
+Quote Post
foosion
post Feb 3 2007, 12:54
Post #3





Group: FB2K Moderator (Donating)
Posts: 4474
Joined: 24-February 03
Member No.: 5153



Screenshot (rehosted on ImageShack):


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


--------------------
http://foosion.foobar2000.org/ - my components for foobar2000
Go to the top of the page
+Quote Post
pro_optimizer
post Feb 3 2007, 16:16
Post #4





Group: Developer
Posts: 99
Joined: 6-June 06
Member No.: 31515



Thanks for rehosting, foosion.

(yes, indeed...)
Go to the top of the page
+Quote Post
Funkstar De Luxe
post Feb 3 2007, 17:05
Post #5





Group: Members
Posts: 580
Joined: 4-January 03
From: Scotland
Member No.: 4415



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.


--------------------
http://www.animarecordings.com/
Go to the top of the page
+Quote Post
pro_optimizer
post Feb 5 2007, 05:21
Post #6





Group: Developer
Posts: 99
Joined: 6-June 06
Member No.: 31515



QUOTE (Funkstar De Luxe @ Feb 3 2007, 17:05) *
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 smile.gif

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 wink.gif

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

as target curve.
But it would be cool to be able to tweak the EQ without Photoshop biggrin.gif
Go to the top of the page
+Quote Post
david_dl
post Feb 5 2007, 05:41
Post #7





Group: Members
Posts: 604
Joined: 17-December 05
From: New Zealand
Member No.: 26461



QUOTE (pro_optimizer @ Feb 5 2007, 17:21) *
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

as target curve.
But it would be cool to be able to tweak the EQ without Photoshop biggrin.gif


Off topic, but I'm interested, how exactly did you generate the impulse file?
Go to the top of the page
+Quote Post
pro_optimizer
post Feb 5 2007, 16:15
Post #8





Group: Developer
Posts: 99
Joined: 6-June 06
Member No.: 31515



QUOTE (david_dl @ Feb 5 2007, 05:41) *
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).

This post has been edited by pro_optimizer: Feb 5 2007, 16:16
Go to the top of the page
+Quote Post
Matyas
post Feb 23 2007, 09:54
Post #9





Group: Members
Posts: 158
Joined: 8-August 03
From: Bratislava
Member No.: 8242



@pro_optimizer:
to not burden this discussion with off-topic stuff, please add your comments to my questions here:
http://www.hydrogenaudio.org/forums/index....showtopic=52938
Go to the top of the page
+Quote Post
Squeller
post Feb 23 2007, 10:45
Post #10





Group: Members
Posts: 2351
Joined: 28-August 02
Member No.: 3218



QUOTE (Funkstar De Luxe @ Feb 3 2007, 08:05) *
Download a VST wrapper (is there one?)
Has been demanded millions of times, but noone can/wants to write a component. I can't crying.gif
Go to the top of the page
+Quote Post
odyssey
post Feb 23 2007, 14:23
Post #11





Group: Members
Posts: 2296
Joined: 18-May 03
From: Denmark
Member No.: 6695



(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
Go to the top of the page
+Quote Post
dmckean
post Sep 18 2007, 08:50
Post #12





Group: Members
Posts: 26
Joined: 7-August 07
Member No.: 45978



Was the EQ ever rewritten?
Go to the top of the page
+Quote Post
Squeller
post Sep 18 2007, 20:28
Post #13





Group: Members
Posts: 2351
Joined: 28-August 02
Member No.: 3218



No. But we have a vst-wrapper now. foo_dsp_vst.
Go to the top of the page
+Quote Post
Matyas
post Sep 19 2007, 09:50
Post #14





Group: Members
Posts: 158
Joined: 8-August 03
From: Bratislava
Member No.: 8242



Can you please recommend a good quality and not TOO MUCH CPU intensive freeware vst plugin?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 28th November 2014 - 02:39