EasyEffects should be part of every Linux distribution to improve laptop speaker sound quality

47 points by hawski 20 hours ago on lobsters | 18 comments

derhuerst | 18 hours ago

FRIGN | 19 hours ago

EasyEffects is also a great way to run custom equalisers, e.g. from the AutoEq website, which I can definitely recommend for all headphone users.

Levitating | 16 hours ago

It also provides an easy interface for Linux Studio Plugins while even allowing interaction through the native UI.

izissise | 19 hours ago

Feel like it should be a one time profile loading into pipewire instead of a gtk gui

patryk | 19 hours ago

EasyEffects are Qt/Kirigami since 8.0

https://www.phoronix.com/news/EasyEffects-8.0

Damn so applying a basic EQ profile requires dragging in all of Qt and the KDE frameworks? That sucks.

accelbread | 13 hours ago

I'd uninstalled it already before then, but that would have been a blocker for me. All my apps are GTK. I'd been using it for mic audio cleanup, but I use rnnoise directly now.

viraptor | 19 hours ago

Depends how you use it. If you want to apply EQ to your headphones and mic - sure. I appreciate a switch between "conference call with terrible Bluetooth mics" and "listening to music" presets.

Sanity | 18 hours ago

So it needs to be constantly running for the profile to hold?

kaidenshi | 18 hours ago

My understanding is that it does, it's a virtual device in the PipeWire audio path.

creesch | 17 hours ago

If it is just to one time tune your laptop speakers I'd agree. I also use it for headphones and it is nice to be able to easily switch EQ profiles.

And EasyEffects offers a lot more in regards to audio filtering both on the input and output side than just EQing.

For example, my audio interface uses a stereo signal for the input but only one side has signal as it is a combined input for XLR and 1/4. Most applications handle that fine but some applications like discord do some weird stuff where with a stereo input they average the noise level for both sides into one mono signal. Which cuts the volume in half. With EasyEffects in between I let it handle the mixing in a sane way so that other people can hear me.

I also have filters for audio calls with certain people to protect my hearing and/or reduce noise coming from crappy microphones.

mordae | 15 hours ago

Yeah. Ideally one would bring laptop close to a PC with decent speakers, play sine wave sweep on the speakers at a distance the software on the laptop says is good going by 4kHz tone. Then the microphone curve would be calibrated against the big speakers we'd assume are roughly flat. Then the laptop's built-in speakers would be calibrated against the built-in speaker. None of this would need extra hardware. One could even plug the laptop to TV and use its speakers over HDMI to get at least some calibration.

None of this will be perfect nor exact, but it will be enough to compensate for the low-frequency cutoff and the self-resonance hump and that's sufficient. See the datasheet curve for a random speaker.

But honestly, you cannot do much about the low-frequency cutoff. The speakers are just too small. You can lower the overall volume to bring the mids and highs closer to the lows and that would help quality. But it will be significantly quieter.

Now, obviously, having profiles for the speakers in some DB people would contribute towards would be ideal. But that might mean having a set of well-known calibration speakers and/or microphones to bootstrap from. Those don't have to have good curves, just consistent, well-known ones. Seeding from e.g. mobile phones might work decently if someone maps their curves in a lab or against a shared reference.

kokada | 16 hours ago

I did the same with my recent Framework 13 Pro purchase, using an equalizer that I found in Reddit: https://www.reddit.com/r/framework/comments/1vbhb3y/fw_13_pro_linux_users_heres_an_easyeffects/.

It greatly improves the sound and makes the speakers good. Still not MacBook Pro levels of quality (but maybe this is not a fair comparison, my MacBook Pro is a 16" that has much more space for speakers).

cuu508 | 15 hours ago

I recently got a second hand Lenovo X1 Yoga Gen 6. Installed Ubuntu on it, and the sound is super tinny and quiet. It has top speakers (on both sides of the keyboard) and bottom speakers (on the bottom side, under the palm rest). Only the top speakers seem to emit any sound. When I found Easy Effects and ready-made presets I thought gotcha!, but the sound didn't improve. Sadly I didn't test on Windows before installing Ubuntu, perhaps the bottom speakers are physically damaged.

novedevo | 14 hours ago

Sounds like the same problem I had with my Lenovo Yoga c930. The LFE bottom speakers don't have a working driver in Linux, and without Lenovo providing support or a skilled reverse-engineer, there's little hope of future improvement. (https://bugzilla.kernel.org/show_bug.cgi?id=203409)

abhinav | 5 hours ago

I had the same issue on an old Lenovo Y50-70. The bottom speaker (which was a subwoofer I think) didn't work.

squarism | 12 hours ago

Putting EasyEffects on a NUC I had made the audio crackle and skip like when there is too much CPU load. This was with no effects loaded. So, maybe you'd have to test it a lot or try to make it transparent, robust in the face of sound cards and connections, latency-free, side-effect free. Seems tough.

viraptor | 6 hours ago

There are a few knobs you can turn in that situation, but as a plain passthru it really shouldn't be a problem. If you're interested in solving that, pipewire project is very responsive to bug reports and trying to make things "just work". But check https://wiki.archlinux.org/title/PipeWire/Troubleshooting as well.