Menu

Earful_tutorial

Sergejs

Earful headphone calibration tutorial

A method to calibrate headphones for use with HRTFs (or without HRTFs) using https://distortaudio.org/earful.html by Paul K.
using only a small speaker and any basic calibration microphone.

Tutorial Status Date Written Date Last Updated
Tested Beta version for Earful version 1.0.14 or newer 2022-07-28 2022-01-21

Earful v1


Beta version - tutorial needs more testing & validation !!!

Introduction

Headphones are very hard to measure correctly because of their complex nearfield interaction with each person’s ears, hair, and ear canal. Therefore it can be easier and more reliable to use your own hearing to perceptually equalize your headphones to reference sound from a speaker. Reference speaker can be almost any small speaker because most speakers can be easily calibrated to “perfection” for one specific spot where you will listen during headphone calibration. (Note that this “perfect” speaker calibration is easy because we do not care about sound quality across the room, dynamics, time response or sound quality with real music.)

By matching headphone volume at each frequency with a calibrated flat speaker sound, the end result should be as-good-as-possible, flat sound calibration for any headphone on a specific listener. (Note that headphone re-seating consistency is a known problem, so there are practical limits to perfection).

The resulting flat, neutral frequency response from headphones is desirable for multiple applications:

  • Flat response is a great starting point to apply any slope, target curve or other EQ to get the desired sound profile.

  • Flat response will work well for use of headphones with HRTF SOFA files generated by Mesh2HRTF.

  • Flat response is the reference for professional sound mixing and production.

References

This tutorial is heavily inspired and influenced by:

  1. “DGSonicFocus” by David Griesinger is the original inspiration for this tutorial. It offers very similar method and comes with very detailed tutorials both in writing (included with the PC app) and on YouTube (https://youtu.be/D_dwY-0pToU and https://youtu.be/1VaKZr208Dc). Good to know that DGSonicFocus has VST plugin version that can also apply the EQ as soon as it is ready (if you use VST plugin based HRTF pipeline).
  2. Some forum posts that described approaches used by Smyth realizer (without details).
  3. Existing Earful description by the author of the program.
  4. AutoEq documentation by Jaakko Pasanen.

Hardware setup

Besides free software for Windows PC, this calibration procedure requires:

  1. 1 measurement microphone (any microphone that has been individually calibrated to provide flat response) and
  2. 1 or 2 small speakers. Speaker can even be a simple Bluetooth speaker, but preferably it should not-have unusual radiation pattern or severe un-equalizable direct sound reproduction issues. For example avoid speakers with only one full-range driver; speakers which do not have a front and a rear side or are designed to not-point at the listener.
  3. optional: Keyboard - it is convenient to have a keyboard in the lap when running calibration. Mouse is not necessary to be nearby all the time.

Reference speaker

  • Any speaker that connects to a Windows PC can work, but the speaker should be physically small. A single cheap Bluetooth speaker can be good enough (as demonstrated by David Gissenger), but some small (woofer < 6") studio monitor, or a bookshelf speaker is recommended. Just do not use any big 3-way tower speakers despite them sounding much better than your portable JBL Flip - the speaker needs to be compact because we need to listen to it from close distance.

  • Speaker should be close to listener - up to 1m away, at the ear height and preferably free-standing or hanging to avoid table reflections or other interaction with close-by objects. If the speaker is small-enough or coaxial it can be used even closer (0.5m). Being close, reduces influence of the ceiling, floor and wall reflections as well as generally increases direct to reverberant sound ratio.

  • Subwoofers are a waste of time. Completely unnecessary to include Subs in the test, but they certainly don't hurt if they are well integrated. (detailed calibration is not necessary at subwoofer frequencies, and even below 500Hz it is not crucial)

One or two speakers?

  1. If Earful calibration is done for headphone use with multichannel sound and HRTFs (5.1, 7.1, Ambisonics, binaural recordings, games, VR, Dolby Atmos content, movies as well as usual 2.0 stereo sound), it is enough to calibrate towards a single "Center" speaker right in front of the listener. This is a true mono source, symmetric, simple and fast to set up.

  2. For use without HRTF or if you will only listen to stereo 2-channel content, it is better to set up perfect stereo configuration - 2 speakers at +/- 30deg to the sides (Left+Right). This configuration is harder to set up, but it should work for all use-cases: with or without HRTFs.

NOTE: for especially dedicated people, you are welcome to try to perform multiple Earful calibrations for multiple speaker positions + HRTF. For example, in theory the HpTF (headphone calibration) for a single Center speaker should be the same as for Left+Right speakers (assuming the HRTF is correctly applied for the same angle as the actual speaker position). Also it is possible to place speakers at any angle, match the HRTF setting and make more calibrations. Then multiple Earful results can be analyzed for differences and potentially averaged (using REW) to get the best possible calibration.

Speaker Calibration.

  • Reference speaker must be calibrated to the single spot where the listeners ears will be - using a measurement microphone. No matter how good or bad speaker is used, the calibration is necessary and will make most speakers sound almost the same in that single listening spot for listening to test tones.

    • Special case for high quality monitors: If you don't have a measurement microphone, it can work quite well to directly use a known good speaker without EQ (ideal speakers to use are for example Neumann KH80 or Genelec the Ones series). Note that at frequencies under ~700 Hz the frequency response gets more and more corrupted by the room acoustics, so even a speaker with flawless on-axis response will not be flat at ~150 Hz. Using speaker without EQ requires both high quality speaker (speaker with known flat frequency response) and close to ideal in-room positioning - away from all obstacles and walls.
  • Speaker Calibration needs to be applied by certain software or hardware, for example:

    • free Equalizer APO can be used with filters designed in REW or rePhase. Note that it is tricky to run HeSuVi and speaker correction simultaneously, but it is possible using "Control => Device (Select Device)" modules.
    • miniDSP devices are convenient to apply filters designed in REW or rePhase. Even better if they include Dirac Live license for faster and more comprehensive EQ.
    • Other hardware EQ processors - there are many devices that allow 6+ PEQ filters per speaker.
    • Commercial software that reliably reaches user-defined target curve: for example Dirac Live, Accurate, Sonarworks, etc. Note that some calibration systems, for example Genelec GLM, perform corrections only at lower frequencies (<1 kHz) and therefore rely on the assumed flatness of the direct sound from a high quality speaker. Depending on the room and early reflections, such low-frequency-only type of calibration may not result in a good reference.

    • or any other approach that gives verifiable results.

Room

  • Most rooms should work, but ideally a room should be quiet, without significant echo and as big and open as possible to have less effect of the early sound reflections. If you do not have an anechoic chamber available, a good tip is to stand in the middle of a bigger, empty room. It is good if sidewalls are not parallel or very far to the speaker and listener - we would like the first sound reflections to miss the listener or be very weak. With good equalization, it is possible to try placing speaker in the corner and leave lots of free space behind the listener to be able to use not-so-big rooms.

HRTF setup

Start from SOFA file: If you load your HRTF, it already has the most tricky, personal frequency response details of your hearing included. Therefore Earful calibration process should be easier (If remaining equalization is still difficult it is either a sign of not so suitable headphones or issues in the HRTF itself).

To get the correct headphone output using Earful, the sound to the headphones should pass through a system-wide HRTF solution. It can be HRTF SOFA file applied in HeSuVi, or perhaps SOFA file loaded into SPARTA Binauraliser VST plugin.

HRTF is OPTIONAL: If no HRTF is used, the calibration described here will still work well for stereo content. Note that without HRTF, even Earful calibrated stereo content will not have speaker crosstalk effect. Therefore even for stereo listening HRTF speaker virtualization is the superior solution. Important - without HRTF, you should Not calibrate to a single Center speaker - use a stereo pair of 2 reference speakers.

Setup of SPARTA Binauraliser

Diffuse-field Equalization - OFF - DIffuse field EQ is only useful if there is no individual calibration, turn it off to make the setup simpler.

Two Left+Right speakers:
No special setup is needed - as long as Earful outputs sound to "Left+Right", and Sparta Binauralizer is correctly configured following a tutorial, the HRTF should already be correct for speakers placed +/- 30deg from the center.

Singe Center speaker:

  • Keep Earful to output sound to both "Left+Right" speaker, but disable the Right speaker, so that only Left speaker makes the sound.
  • Take a look at the SPARTA Binauraliser: For the 1st channel set both "Azimuth" and "Elevation" to 0 and 0 degrees. This will effectively make any system-wide sound sent to the Left speaker come out of the virtual Center speaker - exactly what we want.
  • Done.

Setup of HeSuVi

Two Left+Right speakers:
No special setup is needed - as long as Earful outputs sound to "Left+Right", and HeSuVi works, the HRTF should already be correct for speakers placed +/- 30deg from the center.

Singe Center speaker:
Because Earful can only output sound from Left or Right speaker, it is necessary to create a custom HeSuVi .wav file that places virtual Center speaker on the Left (1st) audio channel. If HeSuVi wav. file is produced using [Advanced_SOFA_to_HeSuVi_conversion], then the procedure can be as easy as making the "Azimuth" and "Elevation" changes in SPARTA Binauraliser graphical user interface. Other HeSuVi configuration methods, may require some custom command line scripting.


Earful "EQ Two Devices" calibration

Using Earful program we will listen to a single frequency at a time and adjust headphone volume so that sound is equally loud compared to the speaker. As the sounds are always identical in both speaker & headphones and there is only a short interruption between them, it is very easy to do the comparison without any training or special skills.

  1. When you first open Earful (version 1.0.14 or newer), check that audio playback works:

    • Select your headphone audio device - usually using [WASAPI] protocol, but ASIO works great and [DS] can be used as a backup.
    • Select a comfortable frequency around 300 Hz by moving "Current Point" slider and press “Play” to test audio.
    • If there are no error messages, gradually increase the volume slider (and other volume controls) to confirm that you hear the test tone.
    • Repeat the test with your speaker audio device (it must be another sound-device/audio-output in the system).
    • IF you get error messages or there is no sound from Earful, but device does reproduce sounds from other programs - go to Troubleshooting.
  2. When audio works, it is recommended to calibrate reference speaker level:

    • Keep Test Type as "Threshold".
    • select your reference speaker as the output device (just for level calibration). The reference speaker must have its flat-response calibration applied.

    • Click on "Calibrate SPL Level" - and then "Start". Carefully increase the volume slider in the Earful, in Windows or in all other places till you hear the test sounds. If something is not working, do not leave the volume maxed up as you try to turn on the speaker! Turn down the volume, fix your speaker and then raise the volume carefully.

    • (optional, recommended step) get some SPL calibration microphone in place and adjust the volume to have loud and comfortable listening level, for example 70 dBSPL. You can use REW with UMIK microphone or in worst case, even an iPhone with SPL measuring app like "NIOSH SLM". This volume should not be changed through-out the test.

      • Before you close “SPL Calibration” write down! the “Generate Sound” level that you will use.
      • Note, the SPL is adjusted NOT to compensate for equal loudness curves, instead we just want the volume to be loud and clear, without fatigue or hearing damage.
  3. Select both audio devices by switching to the “EQ Two Devices” test type. Now the pop-up will offer to choose two audio devices.

    1. Make sure that the “Reference Output Device” is assigned and has correct volume level which matches “Generate Sound” level in the “SPL Calibration” wizard.
    2. Select your headphone as the “Test Output Device”. Here it is important that this headphone output has correctly applied HRTF on it. If you use only a single central reference speaker, the HRTF must also be correctly applied for the sound coming from straight ahead and not a combination of two Left and Right speakers at 30 degree angles.
    3. Then select a frequency somewhere in the middle - between 600 and 3000 Hz and press “Play” to send audio to both headphones and the reference speakers.
    4. Here is a good time to experiment with the 4 available test signals to listen to. For example Pink Noise signals sound more music-like than pure tones, but make sure that “Noise BW” is not too broad (default value = 4,3) when making fine adjustment with many steps.
    5. Now slowly increase headphone level with system and external volume controls to roughly get headphones to the same volume as the reference speakers. If external controls are maxed-out, then start using Earful volume adjustment for the specific frequency band (in practice you may ).
  4. Final settings before doing the full calibration.

    1. Start and End frequency – the default 20-20000 Hz range is good for most cases, but it can be adjusted.

    2. Steps – Earful has an excellent ability to start with a quick overall calibration and then add more and more details to the calibration where necessary. To best take advantage of this feature you can start with number of steps at 9 to get the rough calibration in place and then increase number of steps to 17 and then to 33. Using steps of 5, 9, 17, 33, 65 every increase only adds an extra frequency step in-between already existing points, therefore we can focus only on the new points after adding more frequency steps.

    3. Start and Max volume can be adjusted, as needed or left on defaults.

    4. Volume step – here for the initial adjustment it is best to start with rougher steps of 1 dB or even more. As you get closer to the final calibration, the precision can be increased to 0.5dB or as needed.
    5. “Adjust” controls relate to relative positioning of the informative “Data Set 2” graph which can be loaded by pressing “Open” button. This is not necessary at this stage. and is more useful for comparing results of 2 calibrations.
    6. When all settings are in place, it can be good to press “Clear all” to apply all settings and reset calibration.
  5. Calibration process

    1. Start with a frequency between 1000 and 4000 Hz. Our hearing is most sensitive in this range and all speakers will be able to reproduce these frequencies. Then press the “Play” button to start.
    2. Using shortcuts:

      1. IMPORTANT! To enable keyboard shortcuts - click the mouse anywhere inside the main chart (near the orange dots)! If you will not do this, the arrow keys will do strange things.
      2. Left / Right arrows switch to another frequency step.
      3. Up / Down arrows change volume of the selected frequency by “Vol step” amount.
      4. PageUp / PageDown buttons change volume of the selected frequency step 5x faster.
      5. Spacebar button works as Play / Pause shortcut.
      6. Enter button manually switches between “Reference” and “Test Output” devices. If the button is not used, Earful automatically switches between “Reference” and “Test Output”, but as soon as Enter or numpad-Enter is depressed, Earful will wait for Enter to switch devices (this logic resets when you Pause the playback).
    3. Switching between headphones and reference sound: As most headphones block and interfere with the reference speaker sound, headphones should NOT block the ears which listen to the reference signal. Here are 2 proposed strategies:

      1. Easy, rough-method - put headphone over one-ear-only and let automatic switching between sources do its thing. This is not always ideal, but the fastest and most convenient way to get the calibration done. Note, try to keep natural seal and venting of the headphone (for ex. do not cover open-back headphone outer side). Even consider additional covering to reduce amount of direct sound from a speaker entering the ear with a headphone. Remember to change sides - use one ear on one pass and another on the next one (you ay even consider making individual EQ for each ear). Re-check tricky frequencies.

        • Ideal setup: If you calibrate IEM (ear-plug style in-ear headphone) or other isolating headphone this method can be quite accurate. It is even possible to put extra ear-protector or extra over-ear headphone on top of the in-ear headphone to further isolate "headphone-ear" from sound coming out of the reference speaker (note covering open-back or non-sealing in-ear headphones can influence headphone sound, so this setup is suitable only for closed headphones).
        • Special case: it is possible to calibrate one headphone against another by putting each headphone on each ear (especially if one of the headphones is in-ear headphone).
      2. Properly remove headphones - to remove all obstacles for reference sound and ensure proper fit of the headphones over both ears, headphones should be removedevery time you listen to reference speaker sound and re-seated back on the head every time. Here manual switching between devices is quite essential. Note this method may be quite tedious, so it may be best suited for final verification.

        • numpad Enter can be pressed by a foot to allow moving headphones with both hands – for this you need to place some extra keyboard on the floor (note that all computers support multiple keyboards at the same time).
        • With a bit of practice, it is possible to switch from headphones to reference and back within a silence period after pressing the Enter. Short interruption ensures best possible use of auditory memory without distorted perception from listening to the signal while headphones are only partially in place.
        • Note: ideally a headtracker could be configured to trigger the switch between devices when it registers a change or pitch angle by over ~70 deg (as if headphones are placed on a desk). This functionality is not currently provided, but can be implemented for a specific headtracker with quite simple programming.
    4. Important! - Correctly handle your hearing and equipment limits:

      1. Too-high frequencies - as you increase frequencies you will likely notice that your ears do not hear anything above for example 13000 Hz. This is very common and not so many adults actually hear up 20000 Hz. If this is the case, Please do NOT boost frequencies that you don't hear! First it makes no difference if you can hear up to 13kHz or up to 11kHz. Second – boosting extremes can DAMAGE you hearing and your headphones.
      2. Low-Frequencies – here you will likely not hear sound due to limits of your speaker and/or headphones. If it is difficult to calibrate headphones for example below 400Hz, it is not a problem because we can still fill-in this gap by extrapolating your calibration following one of the included equal loudness profiles in combination with being careful to not push your headphones too much (boosting bass may severely limit how loud you can listen before the headphones distort). For example most open-back headphones are not designed to reach lowest bass under 50 Hz. Finally bass is very subjective and is felt differently in headphones compared to speakers, so it may be best to finetune bass EQ to your liking without the exact Earful approach.
    5. First pass: Adjust each of the 9 step frequencies to roughly get the overall correction and a feeling how it works.

    6. Second pass: Change the number of frequency steps to 17 and make sure your Volume step is either 1.0 or 0.5 dB. (you may need to move the “Current Point” slider for changes to take effect). This will be the main calibration – check every frequency that it sounds the same as reference.

      1. Switching between headphones and reference speaker using Enter should already be more natural with practice (keyboard on the floor and foot on the Spacebar).
      2. Notice that due to hearing and equipment limits you will actually listen to much fewer than all 17 frequency steps, so it goes faster than it looks.
      3. Tip: Have your measurement microphone with SPL readout next to you to re-check any errors in the reference speaker response. This way it is easy to check how much can you trust the speaker at each frequency and how much the SPL is affected by small changes in microphone/ear placement for different frequencies
    7. Third pass – high-resolution check:

      1. Save your work! Certainly export your results to file before proceeding.
      2. Change the number of frequency steps to 33 and
      3. Focus on the newly added points. The main objective is to find if any additional adjustments are needed if you increase the resolution of the correction. For most frequencies there will be no need for more adjustments, but if you find some area that stands out relative to the reference, Earful allows to make further adjustments.
  6. Final EQ adjustments.

    1. Save your work! (better safe than sorry)
    2. If you wish, you can run a 4th pass at 65 steps to check some problematic areas. Do not forget to listen multiple times – putting headphones on and off helps to detect inconsistent frequencies that should not be boosted to avoid causing audible issues.
    3. Make sure that high frequencies above your hearing threshold are not boosted.
    4. If you notice that you have some extreme corrections for certain frequencies – consider smoothing out the correction and check if the problem is caused by a mistake in the HRTF. Notice that this headphone calibration method should be used only with your individual HRTF (simulated or measured) or some generic HRTFs – using mismatched individual HRTF from a different person may give strange results.
    5. Note that you may still want to make some adjustments after calibration if the results are not ideal. It is always possible to load results back into Earful and make more adjustments with or without reference speaker in front. Same adjustments can also be done by manually editing the results file.
    6. Save the results.
  7. Exporting Results for AutoEq.

    1. "Open" your latest result file and in the "Load data file as:" choose "Invert" and "Data Set 1" (this will over-write your correction curve with an inverted curve - effectively showing not the correction but the actual headphone response).
    2. Save the results again , but this time specify in the filename that this is "Inverted_Earful_result.csv" for your specific headphones and HRTF combination. It is important choose "Save as Type = All files (*.*)" and write file extension .csv. (AutoEq only opens .csv files which actually is the same .txt file but with different extension).
    3. Done, now you are finished with Earful.

AutoEq post processing

It is good to understand that the normal output from Earful already is a headphone correction curve, but AutoEq expects the inverse of that - actual measurement of the headphone response (this is what we saved as Inverse .csv file). The reasons to run AutoEq after Earful are:

  1. AutoEq does not just output a text file, it automatically generates headphone correction data in several formats that is compatible with convolution EQs, Equalizer APO, parametric EQs or even basic Fixed Band Equalizers. This allows for great flexibility in choice of software to apply headphone correction.

  2. AutoEq includes algorithms to smooth out the correction and make the end result more robust. It acts as a sanity check to avoid over-correction.

  3. AutoEq has extra arguments that can add additional tweaks such as bass boost, tilt and even sound_signature to make several variants of headphone correction EQ.

AutoEq step-by-step

This tutorial is updated for AutoEq v2.0+. Tested with Python3.10.

  1. Create input folder & data for AutoEq processing:

    1. Create main folder, for example C:\AutoEq_fromPIP\.
    2. Create sub-folder Headphone_EQ_Input (inside "C:\AutoEq_fromPIP" folder).
    3. Create sub-folder custom_compensation (inside "C:\AutoEq_fromPIP" folder).
    4. Create a text file called zero.csv inside "custom_compensation" folder (alternatively you can download an use this file: https://github.com/jaakkopasanen/AutoEq/blob/master/compensation/zero.csv).
    5. Copy into the "zero.csv" these 3 lines of text:
      frequency,raw
      20.00,0.0
      20000,0.0
    6. Copy your "Inverted_Earful_result.csv" result file into the "Headphone_EQ_Input" folder.
    7. note, in case you need any additional AutoEq files and folders, you can download them directly from https://github.com/jaakkopasanen/AutoEq (usually as one big "code ==> Downlod ZIP" archive).
  2. Install AutoEq in the correct Python environment using "pip install autoeq" (Python v3.10 is recommended, but earlier could work too)

    • AutoEq should probably be installed in a separate Python environment such as "python -m venv venv" in a specific folder (read more details here).
    • If you need help installing Python itself and want to use other alternatives to "venv" check Mesh2HRTF Python installation tutorial.
    • You are also welcome to follow the official AutoEq installation tutorial, BUT skip the "git clone" part! - the complete Auto Eq Git repository includes over 4GB of headphone measurement and equalization data, which is not needed at-all for our purposes.
    • Example step-by-step commands to install & run AutoEq:

      1. Open command line (cmd.exe or anaconda terminal depending on how you use Python).
      2. if you chose to use "venv" - Change to the input folder: cd C:\AutoEq_fromPIP\ (more details about "cd" for beginners).
      3. if you chose to use "venv" - either create new: python -m venv AutoEq_venv or activate existing command AutoEq_venv\Scripts\activate.bat environment.
      4. Install AutoEq v2 pip install autoeq or update to latest version: pip install --upgrade autoeq
      5. Verify that AutoEq works: python -m autoeq --help
  3. Run the AutoEq processing for headphone calibration data:

    • Main command: python -m autoeq --input-dir="C:\AutoEq_fromPIP\Headphone_EQ_Input" --output-dir="C:\AutoEq_fromPIP\my_Headphone_EQ" --compensation="C:\AutoEq_fromPIP\custom_compensation\zero.csv" --parametric-eq --parametric-eq-config=8_PEAKING_WITH_SHELVES --ten-band-eq --bass-boost=0.0 --tilt=0.0 --convolution-eq --fs=48000,44100
    • This command should be executed in command line (see example step-by-step instructions above).
    • In case the .png plot picture file shows that "Equalized" curve deviates too much from "Target", you may need to adjust --max-gain parameter or make other adjustments based on technical-challenges info.
    • NOTE: the main command and the whole calibration procedure will result in a "perfectly flat" target curve (Some extra reading can be found here: ref1, ref2, ref3). While it should sound accurate with some content, to better approximate normal in-room listening conditions it can be good to set a downward sloping target curve. One example is to use -1 dB/octave tilt to get about 10 dB difference from 20 to 20000 Hz. Use the command with tilted target: python -m autoeq --input-dir="C:\AutoEq_fromPIP\Headphone_EQ_Input" --output-dir="C:\AutoEq_fromPIP\my_Headphone_EQ_inRoomTarget" --compensation="C:\AutoEq_fromPIP\custom_compensation\zero.csv" --parametric-eq --parametric-eq-config=8_PEAKING_WITH_SHELVES --ten-band-eq --bass-boost=0.0 --tilt=-1.0 --convolution-eq --fs=48000,44100
    • Feel free to make your own tweaks by adjusting bass-boost, tilt and other parameters. See command-line-usage and the rest of AutoEq documentation for more info.
    • example of output files and command line printouts after running AutoEq.
  4. Your resulting headphone correction files will be located inside the new "my_Headphone_EQ" folder (or "my_Headphone_EQ_inRoomTarget" folder). Remember to clearly rename your correction files, specify:

    • Headphone model (maybe even specific serial number and soundcard).
    • Used HRTF, if any (which SOFA file was used during Earful calibration and through witch software).
    • Any target curve adjustments/deviations from flat.
    • Date of the calibration.
  5. Done, now you are finished with AutoEq.

obsolete - AutoEq v1 step-by-step

Before Auto Eq v2.0 (released in 2022-11) the commands were slightly different (shown here to highlight differences):

  1. Follow the official AutoEq installation tutorial. If you have previously installed Mesh2HRTF, then it will be easy to follow AutoEq tutorial as well.

    • Note that AutoEq repository includes over 4GB of headphone measurement and equalization data, which is not needed at-all for our purposes. As soon as AutoEq is installed you can delete folders /.git and /results to free up over 4GB of space.
    • Note, there exists lightweight autoeq-pkg version, but it is not always up-to-date and is tricky to use. So at the moment this tutorial does not cover this AutoEq alternative.
  2. Go to the AutoEq folder (folder with "autoeq.py" file)

  3. Add extra folders and files for Earful processing (these files will later be available as a download):
    > 1. Create folder Headphone_EQ_Input(next to "autoeq.py" file)
    > 2. Create folder custom_compensation(next to "autoeq.py" file)
    > 3. Create a text file called flat_flat.csv inside "custom_compensation" folder.
    > 4. Copy into the "flat_flat.csv" these 3 lines of text:
    frequency,raw
    20.00,0.0
    20000,0.0
  4. Copy your "Inverted_Earful_result.csv" result file into the "Headphone_EQ_Input" folder.
  5. Run the AutoEq command: python autoeq.py --input_dir="Headphone_EQ_Input/" --output_dir="my_Headphone_EQ/" --compensation="custom_compensation/flat_flat.csv" --equalize --parametric_eq --max_filters=5+5 --ten_band_eq --bass_boost=0.0 --tilt=0.0 --convolution_eq --fs=44100,48000
    > * This command should be executed in command line following the normal AutoEq instructions
    > * In case the plot shows that "Equalized" curve deviates too much from "Target", you may need to adjust --max_gain parameter or make other adjustments based on technical-challenges info.
    > * NOTE: the main command and the whole calibration procedure will result in a "perfectly flat" target curve (Some extra reading can be found here: ref1, ref2, ref3). While it should sound accurate with some content, to better approximate normal in-room listening conditions it can be good to set a downward sloping target curve. One example is to use -1 dB/octave tilt to get about 10 dB difference from 20 to 20000 Hz. Use the command: python autoeq.py --input_dir="Headphone_EQ_Input/" --output_dir="my_Headphone_EQ_inRoomTarget/" --compensation="custom_compensation/flat_flat.csv" --equalize --parametric_eq --max_filters=5+5 --ten_band_eq --bass_boost=0.0 --tilt=-1.0 --convolution_eq --fs=44100,48000
    > * Feel free to make your own tweaks by adjusting bass_boost, tilt and other parameters. See command-line-arguments and the rest of AutoEq documentation for more info.

  6. Your resulting headphone correction files will be located inside the new "my_Headphone_EQ" folder. Remember to clearly rename your correction files, specify:
    > * Headphone model (maybe even specific serial number and soundcard).
    > * Used HRTF, if any (which SOFA file was used during Earful calibration and through witch software).
    > * Any target curve adjustments/deviations from flat.
    > * Date of the calibration.

  7. Done, now you are finished with AutoEq.


Usage of the Headphone calibration

Depending on your use-case there are many different ways to apply the headphone compensation. The good news is that AutoEq provides parameters for almost any EQ that is available.

Note - Graphic Equalizers are not reliable! If you choose fixed-band graphical EQ for application of the headphone calibration, make sure that the summed filter output is what you need. It is hard to predict what will happen in most graphical EQs when nearby frequencies are boosted together (See more info).


Troubleshooting

In case your Earful audio playback does not work, you may get an error message OR the sound is simply not there.

Try this:

  1. Restart Earful - simple but often helps.
  2. Check if there are several devices with the same name - one of the duplicates may work.
  3. Device may be blocked by virtual audio device: especially virtual ASIO driver or any similar program - Re-Check that ALL your virtual audio devices are NOT configured to use the audio device that is not working in Earful (in case you intend to use the virtual audio device for calibration - then simply select it as the output).

    • For example ASIO4ALL will block your configured WDM devices as soon as Earful is started, even if you do not select ASIO as output.
  4. Device may be blocked by another process - for example using WASAPI Exclusive mode or similar. In this case restarting computer and making sure no unnecessary audio software is running is a good idea.

  5. If the device still refuses to work, check if you can use it through Asio4All or some virtual audio device. We do not care about latency and other features for the calibration. We just need a digital audio path into your sound device with all Room-EQ and HRTFs applied where applicable.
  6. Think through if you can use another device to avoid the problematic one. For example, plug in another Apple USB-C dongle or an ASIO interface that works.
  7. Report problem (Earful developer, Binaural Audio Discord, etc.)
---------------------------------------------- Part of the "HRTF Application notes" ----------------------------------------------
Back to wiki home >>> Highly recommended: Everyday use of SOFA HRTF <<< Good to know: General HRTF usage advice

Related

Wiki: Advanced_SOFA_to_HeSuVi_conversion
Wiki: Application_notes_1_General_HRTF_usage_advice
Wiki: Everyday_use_of_SOFA_HRTF
Wiki: Home
Wiki: virtual_surround_with_headtracking_tutorial