[HowTo] Improve your audio with software equalization, the easy way!

Difficulty: ★☆☆☆☆

Preface

If you’re like most users who are familiar with Microsoft Windows, you probably know you have a software equalizer as part of your driver software for your PC audio hardware or installed by you, the end-user. If you’re like some people, you actually care about it. And if you’re like some other people who gave qpaeq a try, you’ll find it’s difficult to use.

The next best thing — PulseEffects — requires an audio engineering degree before that can be used to its full potential. Worst yet, if it’s configured as a system audio equalization solution, it may crash on certain hardware and leave you with no audio, which isn’t a good thing to occur in a party setting.

If you don’t want your instance of Manjaro to sound like its audio is coming from a tin can and thought to yourself Gosh, the audio when I use Linux sure does suck, then this guide will assist in installation of an easy-to-use and nearly bulletproof solution for making PulseAudio suck a whole lot less.

The solution

From Manjaro’s official repositories, there is a software known as pulseaudio-equalizer-gtk which is available from the pulseaudio-equalizer-ladspa package. This uses the Linux Audio Developer’s Simple Plugin API for attaching an instance of Multiband EQ to PulseAudio, providing a braindead-easy, yet comprehensive solution for modifying the audio through software.

Mind, there needs to be a reasonable processor to use it without crackling, but any desktop machine made within the last decade should fulfill this requirement, so most readers need not worry.

Installation

As shown —

:heavy_dollar_sign: In xdg-terminal:

sudo pacman -S pulseaudio-equalizer-ladspa
pulseaudio-equalizer-gtk

Configuration

As this is a GTK3 application, context-sensitive display buttons do exist in the title bar.

In the title bar, there are a few buttons. Tooltips explain most, but the ability to keep configuration between sessions is hidden in the menu triggered from left-most CSD button, labelled as Keep Settings.

The drop-down menu in the middle, left of the toggle switch holds all presets available. Many of these are inspired from WinAmp’s default presets, some of them are based on profiles from other hardware. You should listen to each of them depending on the your current audio configuration and select whichever one most resembles a profile you would be satisfied with, performing tweaks and changes as necessary using the sliders below.

To enable use of the equalizer, flip the only visible switch in the titlebar. The equalizer can remain on while modifying settings, allowing for real-time adjustment until you are content.

Caveats

If you encounter an issue where you need to delete ~/.config/pulse then there also goes your equalizer settings. If your custom configuration was saved previousiy it can be chosen once again. Regardless if your preset was custom or not, all which needs to be done is re-enabling the equalizer, and selecting your preference.

You also shouldn’t use other equalizer solutions with this as what’s provided is a system-wide equalizer. This means you can eschew use of equalizers per-application once your preference is dialed in.

11 Likes

Modified the top half with a bit more introductory context and to add some variety to the sentence structure for a more enjoyable reading experience.

Just to be clear — yes there is PulseEffects. The people at Pop!_OS reminded me about this when I wrote a version of the above guide on Pop!_Planet but not only does the software crash on me, it’s also as inaccessible for mortal beings without a PhD in audio as I claim with all of its various niche settings and it seems more suited for use as a compliment to an audio solution for creating with sound using additional sound processing software and maye some virrtual cable stuff with JACK — Stratospherically beyond the scope of this guide and most people’s intentins for using an EQ.

There is also this long-standing issue about the LADSPA EQ where the GTK3 version had never been compiled to my knowledge in Ubuntu and alike, so far as I am concerned information I’ve previously written about it at Ubuntu MATE forums and Pop!_Planet are effectively outdated and obsolete in comparison to this work for anyone using a GTK3-enabled desktop.

What about QT, like Plasma?
Nothing in the guide seems to indicate that there is a difference.
(or do you just mean enabled - as in supports gtk3 libs?)

Sincere apologies in the delayed reply, when I said GTK3 I meant that in context of GTK3 CSD buttons. Additional GTK3 libraries may need to be installed on exclusively Qt-based desktops like KDE if those libraries were not already dependencies from other software.

If one wants to enable EQ preset they are happy with, automatically:

  • open PulseAudio Equalizer GUI
  • enable the EQ toggle
  • open a console
  • pulseaudio-equalizer enable-config

and on next login the selected EQ preset will be applied.

GNOME user here.

1 Like

How do I enable echo cancellation with this stuff on?

Also, why can’t I save equalizer presets?

And it seems like this implementation is quite flawed as the sounds becomes choppy and distorted after you tweak it, tweaking things into the negatives (e.g. so that your highest setting is 0) is a workaround for this though, but system-wide equalizers on linux have always been a bit of a disappointment no matter how I’ve tried, if it’s not distorted sound then it’s just latency, if it’s not latency it’s just some other performance issue or major bug.

I’m honestly quite surprised by how hard it is to find a good systemwide equalizer on linux, although on windows the situation is replaced by being convoluted, good systemwide equalizers aren’t hard to find there, it’s just that every one of them is always limited to this or that hardware vendor, it’s ridiculous.

The pulseaudio equalizer ladsp package worked for me in Kde Plasma. I installed it as described at the top of this post. Thanks for this tutorial! I am really happy with it, because especially youtube videos can be of horrendous sound quality, but with this system wide pulseaudio equalizer installed, even the worst sounding youtube can be tweaked easily.

There is a very brief crackle when I adjust the volume in Vlc, but this is only a very minor issue for me.

If I dont want to use Pulseaudio equalizer, it can easily be toggled off, with 1 simple button in the title bar. For now I keep it turned on all the time :slight_smile:

Making my own custom preset permanent was quite easy as well, after I had entered the “enable config” terminal command that is described at the top of this tutorial. And any new custom preset sticks with 1 press of a button as well. Practicality and simplicity are very good.

I should mention, I’m using an Intel processor and chipset on my current, and currently sad excuse of a computer. I’ve received no problems there. As for other issues people are encountering, it may be a chipset issue where the hardware simply doesn’t want to work well with the equalizer, or some odd PulseAudio settings which require some fairly bespoke changes I have no information for.

If you do encounter an issue, since this software is from the Manjaro community repository you can file any problems you encounter here and hope for a response. Also, this software needs a new maintainer to carry the torch, so if anybody wants to try maintaining the software then lend your body to the cause of great audio for all so us brainlets can not think so hard about how to make Linux sound good.

Saving presets had me stumped for a while.

You have to click into preset name ‘text box’, then type a new name before ‘save icon’ becomes clickable. Also, a user defined setting has to be deleted before that name can be used with different settings. Non user defined settings can not be deleted.

:rofl: well you ain’t wrong there, also it’s called EasyEffects now and only works on pipewire, pulseeffects still exists for pulse but as PulseEffects Legacy.

I don’t see why qpaeq would be harder to use than pulseaudio-equalizer-gtk though. They’re both just simple equalizers.

I do have a little (big) tip though.

Pulse/EasyEffects may be advanced, but if all you want is an equalizer it can do that quite easily, even if perhaps it’s a bit overkill for that.

However there’s an important reason why you’d want to use Pulse/EasyEffects. It has more than just an equalizer, and it also has plugins for microphones (particularly noise reduction and echo cancellation)

For your output however it has a lot of effects I don’t really understand, + Bass Enhancer, which I understand very well, and it does something to your bass that an equalizer just can’t manage by itself.

Lastly, the hardest part of getting good sound is configuring it yourself (or learning how), even if all you use is an equalizer, most of us don’t even know which slider does what in an equalizer.

With Pulse/EasyEffects other users have already done the heavy lifting for us :slight_smile:

We can just download their presets instead of learnign how to do it on our own from scratch and mix & match until we find the perfect preset.

If you actually try it, you’ll probably never wanna go back to using just an equalizer again.

Edit: Wow, also, funniest thing, I apparently posted a comment on this tutorial about a year ago :smiley: I have since tried qpaeq, I did not have the same issues with it as I did with pulseaudio-equalizer-ladspa & pulseaudio-equalizer-gtk.

Edit 2: If anyone wants to try PulseEffects or EasyEffects, I’ll just leave this here… [HowTo] Enhance your Linux audio with EasyEffects or PulseEffects Legacy

See funny enough on my Dell N1770 with a second-generation, barrel-bottom Intel Core i3 second-generation processor qpaeq on Ubuntu was absolute garbage. People on the Ubuntu MATE forums agreed with me about that, but I have stopped maintaining that thread there since I am pretty much done with Debian systems.

If qpaeq was a great experience for you, that’s excellent — do a writ about it and share your knowledge with the rest of our community! Things might be different for me using a relatively recent AMD Ryzen 5 second-gen processor in my Lenovo S340-15API.

It’s not a matter of CPU I think, it’s more a matter of soundcard, at least in my experience. Well the CPU use never bothered me, it was artifacting in audio that did, you know, things like crackling or latency. I’m willing to sacrifice some cpu for audio quality any day.

But I did share, at least about pulse/easyeffects :slight_smile:

I’ll admit I didn’t test qpaeq for very long so maybe it had other problems I just didn’t encounter yet.

PulseEffects — requires an audio engineering degree

This is supposed to be a simplified GUI for general users to access professional audio plugins
professional users would use the audio plugins directly with very different GUI and controls
(see calf-studio-gear.org and Linux Studio Plugins Project)

I don’t see why qpaeq would be harder to use

Pulseaudio Equalizer (qpaeq) has been recommended to avoid for many years, back to archived forum, because it generally does not work well
pulseaudio-equalizer-ladspa has been discussed much more on here for many years and is favoured by many users
Pulse audio equalizer stops working - Technical Issues and Assistance - Manjaro Linux Forum
Pulseaudio Equalizer (LADSPA) - GUI - Applications - Manjaro Linux Forum

But this is based on reports from users of PulseAudio. Is the situation reversed with Pipewire?

Curiouser and Curiouser

Typo in # Installation
pulseauSio-equalizer-gtk

I’m not sure if pulseaudio-equalizer or pulseaudio-equalizer-ladspa work with pipewire, I didn’t try it.

EasyEffects however is better than PulseEffects ever was imo, when I tried to use pulseeffects back in the day I remember having a lot of issues with it, I also tried PulseEffects Legacy the other day and although it did work (The only part that didn’t work was input plugins).

But there were some other more minor issues too.

The only issue I had with EasyEffects of any note was that certain applications have periodic crackling every few minutes unless they have a big enough audio buffer when played through easyeffects (particularly chromium and electron based applications) it’s possible that it only happens on specific setups though, my soundcard has proven a bit problematic on both pipewire and pulse and it might be related.

I always had a lot of issues with pulseaudio-equalizer-ladspa, I don’t remember specifics, just that I had issues.

I imagine the reason why EasyEffects was made was so that it supports pipewire directly rather than supporting only pipewire-pulse. E.g. things played through pipewire will have effects applied no matter where it’s from unless blocklisted.

Also not sure if PulseEffects actually works with pipewire in the first place, but overall I think easyeffects is better designed and better functioning than PulseEffects was, it’s had a bit of an overhaul in some regards.

I have it installed right now and Pipewire is part of my setup. So far, no problems.

Apologies for the typo @xuniLorajnaM, thank you for finding it! :heart:

Could you be more specific? You have what installed? Is pipewire part of your setup (as in just installed but not in use) or are you actually confirmed that you are using pipewire?

If you mean you’re using pulseaudio-equalizer-ladspa on pipewire (which is what I think you mean), I would not be overtly surprised if it works, since pipewire is supposed to be able to function as a drop-in replacement to pulseaudio in the first place.

However if it is working it is quite likely it will only work with pipewire-pulse.

easyeffects however also works with pipewire-alsa (e.g. for applications that do not default to or depend on pulseaudio)

Not sure if it also works with pipewire-jack or not (I imagine since it works with pipewire-alsa it can also work with pipewire-jack, not that I can imagine anyone would actually want that)

That is what I mean I think the key difference is between easyeffects and pulseeffects.

Hello there.

I have installed pulseaudio through the way instructed however I’m finding that my music which is played with Clementine doesn’t stay equalized, every time a new song plays the song goes flat and I have to switch pulse off and on to get it to go to the preset I have it at.

Maybe if I set the enable-config to work on boot this’ll fix my problem?

Or use JamesDSP: it’s in AUR.

4 Likes

Hi all, I had this problem too, luckily I was able to fix it by setting the equalizer correctly in EE and PE. It was then that I decided to share my work on GitHub and well this is the repository: GitHub - p-chan5/EasyPulse: A set of HQ presets for EasyEffects and PulseEffects. I decided to also include a stereo effect that sounds nice on headphones.

That’s right. You will be able to understand most of the options only if you are dedicated to mixing or producing music (which I usually do in my free time) can be difficult to understand but, as with the Software Store (which in the end uses a terminal) just click on Install > enter your password > and that’s it. The same goes for my presets, you only need to load one for the magic to happen! :sparkles:

Knowing which is the most appropriate for you is difficult. However, I support both versions (the one using PulseAudio and the other using PipeWire). They both sound the same (far from the technical aspects).

EE and PE implement the LSP Equalizer, one of the best in the Linux world. Of course, though, you’ll need to understand most of your options to unlock its potential.

Well, I’m not willing to do that much, haha. What I can do is provide regular updates, that and a WIKI with documentation that can be of great help. The headphones also helped a lot. Although to be honest I created them using a sony-mdr-zx110 (pretty cheap compared to professional recording studios).