AutoEq is a tool for automatically equalizing headphones.
Go to autoeq.app to get started.
This Github repository now mainly serves developers. The contributions of this project are:
Sennheiser HD 800 equalization results plotted
2023-10-29 AutoEq version 4.0.0. Improved and unified naming conventions across the project. Cleaned up obsolete files and reorganized directory structure. Completely reworked database management tools.
2022-05-14 Web application. Reorganized measurements and results.
2022-10-30 Restructured the project and published in PyPi. Source code moved under autoeq directory and
command line usage changed from python autoeq.py
to python -m autoeq
with underscores _
replaced with hyphens -
in the parameter names.
2022-09-18 Parametric eq optimizer reworked. The new optimizer supports shelf filters, has a powerful configuration system, run 10x faster, has limits for Fc, Q and gain value ranges and treats +10 kHz range as average value instead of trying to fix it precisely.
AutoEq produces settings for basically all types of equalizer apps but does not do the equalization itself. You'll need a different app for that. Go to autoeq.app and select your equalizer app of choice. Quick instructions for importing the produced settings will be shown there.
In addition to the web application, AutoEq can be used from command line (terminal). This is advanced use mainly intended for developers. The following instructions apply for command line and Python interface use.
soundfile
when installing and/or running AutoEq.sudo apt install python3-dev python3-pip python3-venv
cmd
in the start menu.git clone https://github.com/jaakkopasanen/AutoEq.git
cd AutoEq
python -m venv venv
# On Windows
venvScriptsactivate.bat
# On Linux and Mac
. venv/bin/activate
python -m pip install -U pip
python -m pip install -U -e .
python -m autoeq --help
python -m autoeq --input-file="measurements/oratory1990/data/over-ear/Sennheiser HD 800.csv" --output-dir="my_results" --target="targets/harman_over-ear_2018_wo_bass.csv" --max-gain=24 --parametric-eq --parametric-eq-config=4_PEAKING_WITH_LOW_SHELF,4_PEAKING_WITH_HIGH_SHELF --bass-boost=6 --convolution-eq --fs=48000 --bit-depth=32 --f-res=16
When coming back at a later time you'll only need to activate virtual environment again
# On Windows
cd AutoEq
venvScriptsactivate.bat
# On Linux and Mac
cd AutoEq
. venv/bin/activate
To learn more about virtual environments, read Python' venv documentation.
AutoEq is in active development and gets new measurements, results and features all the time. You can get the latest version from git
git pull
Dependencies may change from time to time, you can update to the latest with
python -m pip install -U -e .
This prints out CLI parameters if installation was successful.
python -m autoeq --help
Equalizing Sennheiser HD 650 and saving results to my_results/
:
python -m autoeq --input-file="measurements/oratory1990/data/over-ear/Sennheiser HD 650.csv" --output-dir="my_results" --target="targets/harman_over-ear_2018.csv" --convolution-eq --parametric-eq --ten-band-eq --fs=44100,48000
Add changelog entry before building and update version number in pyproject.toml!
Install build
and twine
python -m pip install build twine
Add updates to autoeq/README.md
before building!
Build PyPi package on Windows
copy /y README.md README.md.bak && copy /y autoeqREADME.md README.md && python -m build && copy /y README.md.bak README.md && del README.md.bak
Build PyPi package on Linux / MacOS
cp README.md README.md.bak && cp autoeq/README.md README.md && python -m build && cp README.md.bak README.md && rm README.md.bak
publish
python -m twine upload dist/autoeq-<VERSION>*
Remember to add Git tag!
Issues are the way to go if you are experiencing problems or have ideas or feature requests. Issues are not the correct channel for headphone requests because this project sources the measurements from other databases and a headphone missing from AutoEq means it has not been measured by any of the supported sources.
You can find me in Reddit, Audio Science Review and Head-fi if you just want to say hello.