Head-Fi.org › Forums › Equipment Forums › Computer Audio › How to equalize your headphones: advanced tutorial (in progress)
New Posts  All Forums:Forum Nav:

How to equalize your headphones: advanced tutorial (in progress)

post #1 of 105
Thread Starter 

I had benefitted greatly from PiccoloNamek's "how to equalize your headphones tutorial".  Unfortunately, he seems to have left head-fi and the tutorial is getting out of date.  Since reading his tutorial I've learned some new tricks to streamline the equalization process to get results faster and more repeatably.  By repeatable I mean that I can have a target frequency response curve for my ears and achieve it with different headphones, so that different headphones end up having the same (to me) ideal frequency response and I can compare the actual sound of the headphones on a level ground, without the "sound signature" and "coloration" of the different phones getting in the way of the comparison.

 

The methodology can be summed up as follows:

1. Build up a "target frequency response curve", which is basically an Equal Loudness Contour at a fixed loudness level customized to your ears ("Why must we build the target frequency response curve EQ?")

2. Run two VST parametric equalizers in series, one set to the target FR curve, and just tune the other EQ until all tones at all frequencies sound as loud to your ears, like so:

 

2pass.jpg

From *right* to left: the sine tone generator program Sinegen playing back tones at different frequencies, the 1st EQ displaying my "target frequency response curve", and the 2nd EQ displaying the EQ curve for my Philips SHE3580.

 

This methodology is the basis for me claiming victory of the $10 Philips SHE3580 over the $200 Etymotic ER-4P (for ergonomic reasons, and because they now sound equally as good to my ears), so there should be something to it ;)

 

Unlike PiccoloNamek I don't have the energy right now to write a complete guide from start to finish, so instead I'll write it step by step and write about the next step when someone replies to this thread saying that they've completed the first step, and link the resources I write back to this opening post.  I'll also elaborate on previous steps when someone comes back with questions or difficulties.

 

So without further ado, the first step: (right now I'm afraid this is strictly PC-only, use a PC emulator or something if you're using a Mac?)

However, see Equivalent to Virtual Audio Cable and VSTHost on Macs

 

(copied from this thread; it's a bit brief, because I could see this step going totally smoothly, or like a can of worms depending on your computer setup.  Just write back if you have any questions or difficulties ok?)

 

"First you need to install Virtual Audio Cable and VSTHost on your computer

http://software.muzychenko.net/eng/vac.htm

http://www.hermannseib.com/english/vsthost.htm

 

(You can test the trial version of Virtual Audio Cable until you see that it works with VSTHost, but then you'll have to pay for the full version to make the "demo" voice go away.  Best $25 you'll ever spend on audio, though)

 

And get it working as per this review http://www.head-fi.org/products/beyerdynamic-dt-770-pro-closed-studio-headphones-250-ohms/reviews/5928 (but replace SAVIHost with VSTHost) so that you can equalize system sounds using VST plugins.  And instead of his Marvel GEQ you need a parametric EQ like Electri-Q

http://www.aixcoustic.com/index.php/posihfopit_edition/30/0/

which is what I use.  The paid version may be less buggy though:

http://www.aixcoustic.com/index.php/Electri-Q-FULL/13/0/

(I know how to work around the bugs in the free version but it may be easier to work with the paid version)

 

The Virtual Audio Cable+VSTHost combination is required to equalize sounds coming out of Sinegen, while VSTHost is required instead of SAVIHost because we will be running two equalizers in series.

 

Come back to me when you've got this setup working so you can hear system sounds (such as stuff playing on youtube or spotify) being changed when you play with Electri-Q in VSTHost, or if you have problems setting this up and we'll discuss what to do from there."

 

----

(My understanding is that some of you on this forum already have this set up the way I described it; if you write back to me here we can discuss the next steps?)

 

Troubleshooting Virtual Audio Cable and VSTHost:

Audio stutters when run through VAC and VSTHost


Edited by Joe Bloggs - 6/26/12 at 9:10am
post #2 of 105
Thread Starter 

Answer to the top question nobody asks: audio stutters when streamed through Virtual Audio Cable and VSTHost

 

There are a dozen settings in VAC and VSTHost that are claimed to be related to this: MS per int and Stream format limit in VAC, buffer size in VSTHost, priority levels for VSTHost... but none have had as great an effect on fixing things than this fix for me:

 

services.jpg

 

These two audio-related services in windows need to be manually raised to high priority for audio to play smoothly through VAC and VSTHost on any but the most bare-bones system with nothing running in the background.

 

Instructions for Windows Vista / 7

1. Open Task Manager (Ctrl-Alt-Del)

2. Go to the Processes tab

3. At the bottom, there's a button with a shield icon labelled "Show processes from all users".  Click this button and okay any security warning that pops up.  The svchost processes that host these two services will be hidden unless you take this step.

4. Go to the Services tab

5. Click on the Name column to sort services by name, this helps you to find the two audio services easily.

6. Right click on AudioEndpointBuilder, click "Go to Process"

7. You will be taken to the Processes tab where a process called svchost.exe will be highlighted.

8. You may see several identically named svchost.exe.  Right click the one that is currently highlighted, click "Set Priority", choose "High".  Confirm to change priority in the warning window that pops up.

9. Go back to the Services tab and repeat steps 6-8 for AudioSrv to raise its service host priority to high as well.

 

After I made these manual tweaks, VAC and VSTHost have been running as stutter-free as can be expected on my heavily loaded system.

post #3 of 105

Couldn't get VAC/VSThost installed on my XP based machine in the office (No Admin privilege) frown.gif

 

... will try again later on my Windows7 laptop at home. 

post #4 of 105
Thread Starter 
Look forward to hearing back from you smily_headphones1.gif
post #5 of 105
Thread Starter 

Mac users rejoice!  You can equalize system sounds using AU plugins (Mac's equivalent to VST plugins) too!

 

Using Soundflower (equivalent to Virtual Audio Cable) and AU Lab (equivalent to VSTHost)

http://www.dctrwatson.com/2011/06/os-x-system-equalizer/

 

Now to find something equivalent to Sinegen: how about this?  I don't know if you can use it for free though

http://www.macupdate.com/app/mac/12333/signalsuite

 

And an AU parametric equalizer... *throws up hands on this one* but there's sure to be *something* available...

 

I'd love to hear back from Mac users who decide to try this about their experiences...

post #6 of 105
Thread Starter 

After VAC and VSTHost have been set up

 

It is time to EQ your first set of phones.

 

Depending on what audio equipment you have and how satisfied you are with them, there are three ways of going about this.

 

In order of preference:

 

1.  You have a reference loudspeaker setup with substantially flat frequency response (and more importantly, good control of room mode problems either through room treatment or equalization): create your equal loudness contour from listening to your loudspeaker setup through Sinegen then apply to your headphones

2.  You have a good headphone setup you are relatively satisfied with in overall signature but would like to improve its technical abilities (especially if you want smoother highs): listen to your headphones through Sinegen and smooth out its frequency response (especially in the treble), then create your equal loudness contour from your EQed headphones

3.  You don't have any setup you are currently satisfied with: download a generic equal loudness contour, EQ your phones according to the contour, then tweak the sound to taste, then when you are satisfied with the sound, create your equal loudness contour from your EQed headphones <- link to instructions

 

Although (1) is the most preferred method, I don't think anybody visiting this thread would have such a reference system at his disposal, so I'm going to write about (2) first.  If I'm wrong, write me here and I'll write about (1).


Edited by Joe Bloggs - 7/12/12 at 8:53am
post #7 of 105
Thread Starter 

2.  You have a good headphone setup you are relatively satisfied with in overall signature but would like to improve its technical abilities (especially if you want smoother highs)

 

What I do here is pretty much what PiccoloNamek taught

http://www.head-fi.org/t/413900/how-to-equalize-your-headphones-a-tutorial

 

But in a much easier manner thanks to being able to apply EQ to Sinegen directly.

 

I. Software setup

1. Download and install Sinegen

http://rbytes.net/software/sinegen-review/

 

2. With VAC running, start VSTHost and configure it to have a basic In->EQ->Out signal path:

VSTHost-1.jpg

(How to do this should have been covered in setting up VAC and VSTHost to equalize system sounds, but since nobody has asked any questions here yet they haven't been covered yet... if you got this far by yourself, you already know how to do this)

 

3. Open Sinegen and select Line 1 (Virtual Audio Cable) as the output device:

Sinegen-VAC.jpg

 

And we're ready to do some testing!

post #8 of 105

I'm would just like to ask, why must we build the target response curve EQ? Is it not enough to equalise with equal volume sine waves till they sound relatively the same volume(therefore using less filters)? I will be doing this over the weekend though. 

post #9 of 105
Thread Starter 
Quote:
Originally Posted by firev1 View Post

I'm would just like to ask, why must we build the target response curve EQ? Is it not enough to equalise with equal volume sine waves till they sound relatively the same volume(therefore using less filters)? I will be doing this over the weekend though. 

 

Because we do not perceive the same volume at different frequencies to be the same loudness:

equal-loudness-contours.png

This is a graph of the relationship between actual volume (dB SPL, vertical axis of the graph) and perceived volume (phons, the red lines on the graph) at different frequencies (Hz, horizontal axis of graph).  A "phon" is defined as a sound "that sounds as loud as 1dB SPL at 1000Hz".  So, for example, looking at the red line labelled "60", you see that, averaged across many listeners, a 60dB SPL tone at 1000Hz (which by definition is 60 phons loud) sounds as loud as a 90dB SPL tone at 50Hz (so a 90dB tone at 50Hz is only 60 phons loud, not 90 phons).  What this means in practice is that if you take a pair of headphones with flat frequency response and tried to EQ it to sound as loud to the same volume tones at different frequencies, you can be expected to EQ up 50Hz by up to 30dB compared to 1000Hz when no EQ is required at all.

 

So as I said in the this post, there are three ways to go about this, in order of preference:

1.  You have a reference loudspeaker setup with substantially flat frequency response (and more importantly, good control of room mode problems either through room treatment or equalization): create your equal loudness contour from listening to your loudspeaker setup through Sinegen (i.e. apply EQ until tones at different frequencies sound as loud, obtaining a curve that looks like one of the red contours above) then apply to your headphones (i.e. with the equal loudness contour EQ running, open a new EQ and EQ until tones at different frequencies played through the headphones sound as loud; then remove the equal loudness contour EQ.  The EQ that remains is an EQ that matches your headphones' frequency response to your loudspeakers' frequency response in your room (which needs to be flat in the first place for method 1 to work)).

2.  You have a good headphone setup you are relatively satisfied with in overall signature but would like to improve its technical abilities (especially if you want smoother highs): listen to your headphones through Sinegen and smooth out its frequency response (especially in the treble), then create your equal loudness contour from your EQed headphones (i.e. assume that your earphones are close enough to flat in the first place except for spikes corresponding to ear canal resonances; EQ these out (the goal while using Sinegen in this case then is not to make all frequencies sound as loud but only to smooth the treble frequency response (eliminate sudden jumps in loudness, let gentle changes of loudness with frequency remain).

3.  You don't have any setup you are currently satisfied with: download a generic equal loudness contour, EQ your phones according to the contour, (i.e. assume for now that your ears are similar to the average of the many ears tested to create the ISO standard equal loudness contours) then tweak the sound to taste, then when you are satisfied with the sound, create your own equal loudness contour from your EQed headphones.

post #10 of 105
Quote:
Originally Posted by Joe Bloggs View Post

//

Thanks a lot that post made everything seem clearer to me. Have to try and see what happens with my SRH-840s since it ain't quite as neutral as my powered monitors setup(I had it equalised to be sufficiently flat for my room).

post #11 of 105
Thread Starter 
Quote:
Originally Posted by firev1 View Post

I'm would just like to ask, why must we build the target response curve EQ? Is it not enough to equalise with equal volume sine waves till they sound relatively the same volume(therefore using less filters)? I will be doing this over the weekend though. 

 

I'll be going on a business trip this weekend... brief instructions for you, since you say you have a calibrated speaker setup

 

1. Set Sinegen to output 1000Hz at -10dB level to Virtual Audio Cable.  Don't hit the Power button yet!

2. In VSTHost, load Electri-Q, click the "M" button to the lower right, set the Mode to Digital and Quality to Normal.

3. Choose M->Skin->Gain Range->30dB

4. Add a control point by clicking on the line, right click the point to change the band type to Basic->Gain only.  Then drag the point down to -20dB, the whole line should go down to -20dB.  (these steps are necessary to give you the digital headroom for the bass boost you need to create the equal loudness contour for the loudspeakers.

5. Hit the Power button on Sinegen and change the volume by changing the windows master volume and any amp volume controls you have until you hear the 1000Hz tone at a loudness comparable to the loudness you usually listen to music at.  Make a mental note of this loudness and a written note of all the computer settings associated with this loudness (ie Sinegen Level setting (-10dB), Electri-Q curve at 1kHz (currently -20dB), whatever the system volume is, wherever the volume knob on your amp (to your speakers) is set)

6. Now you can start going up and down the frequency scale in Sinegen and make note of the loudness changes.  You can start fiddling with Electri-Q immediately and hear the effect on the sine tones, but I prefer to leave Electri-Q alone first and adjust the Level and use the "+" (add record) and "-" (delete record) buttons to record the levels at different frequencies that correspond to the same loudness as -10dB at 1000Hz.  When I'm done I can "plot" the levels in Electri-Q and quickly make a rough equal loudness curve for the whole frequency range, like this:

http://www.head-fi.org/t/413900/how-to-equalize-your-headphones-a-tutorial/750#post_8208522

7. Some basic controls in Electri-Q: click on curve to add point, right click on point to change band type (most useful are Basic->Peak, Low Shelf, High Shelf, and Specials->Butterworth->LS/HS 24/48dB (allows a sharper low / high shelf than possible with the basic low/high shelf), double-left-click on point to change parameters: Frequency and Gain are self-explanatory, BW affects how sharply a Peak filter boosts or cuts a frequency and how sharply a low / high shelf filter transitions from the unboosted to the boosted frequencies.  As mentioned in the link above, right click on a point also gives you an option to bypass the point.  This is useful to compare the effect with and without a filter, or to do the plotting technique I write about in that link.

8. As you're adjusting the curve make sure to keep the curve centred on -20dB at 1kHz, otherwise your reference volume will change.  You can do this by moving the "Gain only" point up and down or adding a peak control point with wide bandwidth near 1kHz.

9. When you're done making your equal loudness curve, check against the contours I posted above.  The changes in volume should be gradual.  If you see sharp peaks and dips, especially in the bass frequencies, those are probably resonance modes of your loudspeaker-room combination that you haven't silenced.  Smooth those over in your EQ curve.

10. Click M->Presets->Export Preset to save your equal loudness curve.  (Remember to delete all the plot points first if you're using my plot method.  You can do this by switching to another preset then switching back (the up-down buttons at the bottom of Electri-Q next to the word "Presets".  Electri-Q doesn't remember bypassed points when you switch back to a preset.  A bug you can put to use in this case) Make a mental note of the rough shape of the curve, then switch to another preset and click M->Presets->Import Preset to load the preset you saved to a file.  Compare with the preset number currently holding the curve you just made to see if the curve saved and loaded properly.  There's a bug in the free edition where a preset may load with incorrect bandwidth for a point, causing the curve to change shape.  If this happens, find the point that has been loaded improperly, click it and press Delete on the keyboard to delete the point, and do M->->Presets->Import Preset again.  This should make the preset load properly.  If not, you may have to go back to the original Preset and export it again.

11. The end goal is an equal loudness curve such that starting at 1000Hz -10dB on Sinegen, dragging the frequency slider up and down (leaving Level at -10dB) gives you a tone sweep of even volume when piped through Electri-Q in VSTHost.

 

12. Add another Electri-Q and chain it after the current one, check that it is a flat line through 0dB, set Mode to digital and Quality to Normal, and switch output to your headphones.  Adjust the system volume / headphone amp volume until you hear 1kHz -10dB at the same loudness you heard through your speakers.

13. Repeat steps 6-9 with your headphones, making your adjustments in the second EQ.  Make sure that 1kHz on the curve of the second equalizer stays at 0dB (again using a Gain only point or a wide bandwidth peak band to adjust the curve) as you tweak the curve.

14. When you're done you should have a curve that matches your headphones' FR to the speakers' FR in the second EQ.  M->Presets->Export Preset to save the headphone compensation curve.  Again make sure that it saves and loads properly as detailed in step 10.

15. To test out your new EQ with actual music, remove the equal loudness EQ (the first EQ) from the signal chain.  Or, play music through a player that can host VST plugins itself and have it bypass VAC and VSTHost while loaded with Electri-Q and your new headphone EQ preset.  This can be useful if your VAC->VSTHost output is a bit glitchy, as mine was.

16. Tweak the EQ to taste with music.

post #12 of 105
Thread Starter 

Safety notice: DO NOT try to equalize the high frequencies beyond the point where your hearing drops off.  A head-fier almost damaged his hearing with big blasts of supersonic frequencies he couldn't hear.

post #13 of 105
Thanks, for the details, I will go over it real soon. Results I will be posting here wink.gif
post #14 of 105

Can you point out some high end headphones whose FR targets equal loudness curve?

post #15 of 105
Thread Starter 

Um, that's not it.  Loudspeakers just need to target flat response curve.  When such speakers play sine tones you will hear them like an upside down equal loudness curve, i.e. low and high frequencies softer.

 

Headphones don't need to target the equal loudness curve, they need to target a response such that the FR at the eardrum is similar to the FR at the eardrum from flat loudspeakers.  Which means either diffuse field or free field equalization.  But those are just generic curves and are a long way from the ideal FR for an individual.

 

Especially the resonance peaks at high frequencies, those are different for everybody.

New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Computer Audio
Head-Fi.org › Forums › Equipment Forums › Computer Audio › How to equalize your headphones: advanced tutorial (in progress)