Audiophiles on Linux, rejoice

https://yalneb.blogspot.com/2019/04/pulseeffects-autoeq.html
PulseEffects screenshot taken from their official git repo

Suppose your an audiophile (at least level 2) and want to fine-tune your equalizer to improve your headphones play back on Linux. You are after that super clean and real-life-like flat response where the bass sounds realistic and the mids are super crisp. How to you go about it?

Well, there are many ways. But if you combine PulseEffects, a system wide parametric equalizer with GUI for Linux, and AutoEQ/Results, a huge database of precalibrated headphones, you will be set in less than 5 minutes.


My traditional approach

Just to explain the whole process, let's take a look of how I used to go about this business in the past. Once we take a look at all the steps, and then go about the PulseEffects + AutoEQ solution, you will realize why I think it's such an amazing tool.

  1. Buy (decent) headphones and fall in love with them. You like them, they are comfortable, they have plenty of burn-in¹, yet... they still don't sound right. (¹ Until recently I though burn-in was a myth, but my latest headphones got objectively better after a few days of playback).
  2. Realize you might be on the verge of becoming an audiophile.
  3. Accept yourself as you are. You want crisp audio playback and there is nothing wrong with that.
  4. Look up your headphone's response chart on the internet. Such as the one if the following figure.
  5. Naively, try to adjust your music-player's graphic EQ to compensate for your headphones curve: raise the gain where your headphones fall off (in the figure, at about 4.1 kHz), and lower the gain to dampen the excesses (for example, around 1.5 kHz in the figure) to get a flatter response.
  6. Get frustrated because, somehow, its still not right.
  7. You wish you were a level 3 audiophile, but you still don't have the skill points to level up.
https://www.head-fi.org/threads/sennheiser-hd-4x8-and-hd-4x9-who-knows-them-better-sennheiser-or-headroom.614923/


PulseEffects + AutoEQ

Before we get started, let me say the following. It would be naive of me to think that this solution gets you to the perfect equalization settings every time and for everyone. Adjusting an equalizer is an art which I do not master but that I have come to appreciate. No tool can substitute the expertise of a professional or skilled hobbyist. But, for people like me who want to get started, I feel this might be a good first step in the right direction.

That said, I got a much nicer playback from my trusty HD 439 with these very simple steps:

  1. Install PulseEffects. Take a look at their documentation of how to do it. You should find an AUR package for ArchLinux already available, and there's also a custom package repo you can use for Ubuntu.
  2. Run PulseEffects and go to the equalizer settings, there, enable the equalizer and set it to 10 channels as shown in the picture.
  3. Go to AutoEQ/results and search your headphones.For example, let's go to the HD 439 site. Under the parametric equalization settings, you will find a table that looks similar to the following.
  4. Now, slowly apply the content of the table to each of your 10 channels. Set them their type to bell, adjust their center frequency and Q factor. Then, move the graphical slider to the desired gain level.
  5. Finally, adjust your pre-amp gain to avoid sound artifacts
  6. Rejoice with excellent sound
  7. Still wish you were a level 3 audiophile. But at least now you can do so while enjoying a slightly better sound experience.

4 comments :

  1. Just some comments:

    1. There is apparently a problem with the dependencies of PulseEffects on Arch (or at least, Manjaro). I haven't been able to get it working on my laptop (yet). If anyone knows something about it, please leave a comment :)

    2. You might want to listen to a frequency sweep to detect if some frequencies are still too loud or quiet compared to the rest. I found this one quite to my liking, https://www.youtube.com/watch?v=dU80Fagdy28

    ReplyDelete
  2. Ok! Problem solved!

    1. The optional dependencies are: calf, zam-plugins, rubberband, lsp-plugins, mda.lv2.

    2. Even after installing them, some options stay grayed out. It appears to be related to you user's gstreamer config, which can be easily removed doing: rm -rf ~/.cache/gstreamer-1.0

    3. Finally, I had to reset (probably login out/in also works)

    ReplyDelete
    Replies
    1. Hi Andres. Thanks for your article! At first EQ was greyed out, but worked after installing lsp-plugins and a restart.

      Do you know if the Flatpak would bundle these optional dependencies in, so we don't need to look for them in the repositories? I use Ubuntu 20.04 at the time of this writing.

      All the best :)

      Delete
  3. Thank you for your blog.Solve my problem.

    ReplyDelete