There have been a number of threads for the FW13 on how to improve sound quality with EQ etc, but I couldn’t find one for the Framework 16. I wanted to put it out there that some of the same tricks that worked for the 13 work decently well for the 16. I tried using Cab’s Easyeffects profile, and it seems to have drastically improved the clarity of the speakers on the 16. See this post for details, and a download for the profile: [GUIDE] Yet Another EasyEffects Profile
I’ll be following the same guide that Cab used to tweak the profile further when I get some time to tinker this weekend, so I’ll make sure to post an updated profile if I make any improvements.
Otherwise, please feel free to post any ideas or solutions you’ve found either on Windows or Linux to improve sound quality. The hardware in the Framework 16 is a big step up from the tiny speakers in the 13, and I think that they could easily match competition from Dell, or maybe even Apple with a bit more advanced processing that what is happening in the integrated codec.
EDIT:
Here are the profiles I’ve tested so far on the Framework 16:
Thanks for your hard work. I plan to use Linux, but Arch is beyond my current skill level. I’m going to use Debian Bookworm, hopefully I can use your fixes and replicate it on a Debian based OS.
This should work on any Linux distro using pipe wire for audio, which is just about all of them these days. Debian bookworm is a good one! You just need the easyeffects program, any of its dependencies like lsp plugins, and the effect profile.
I don’t have my FW16 yet, so wondering how using EE as a Flatpak would work, since it seems like it is a relatively low-level (hardware) app. Wondering because I plan on using Fedora.
I have it installed as a normal package rn, but I was using it as a flatpak on my desktop for a while, and it worked fine. It basically just inserts itself in the pipe wire signal chain, so it’s not doing anything too low level afaik. I’ll test that this weekend if I have time as well.
Okay, I had some time to mess with the profile over the weekend, and I think I was able to improve it. I was following the same guide, and trying to achieve a relatively flat response with a bit less dynamic range to improve clarity at lower volumes. If you prefer more dynamic range, or plan on using the speakers at full volume most of the time, you can push the input level down on the multiband compressor to -6 or -8 db, and you will get basically full dynamic range (or at least as much as you’re going to get through laptop speakers).
Compared to Cab’s preset (that was admittedly made for entirely different speakers), mine has a bit more punchy bass with a less muddy low end. The highs are less pronounced, but in a good way in my opinion. The mid range as a whole is just a bit more flat, and it’s easier for me to make out details in the base, low-mid, high-mid, and highs when they are all present. I did test it with a sine sweep, and there are still noticeable peaks at 250Hz and 2500Hz to my ear, but not nearly as bad as without the profile.
I will say that I’m no audio engineer, but I am a long time musician, and lover of music of many genres, so take the profile with a grain of salt, and feel free to compare it to Cab’s original profile to see what you prefer.
I’m glad you like it! I’m still experimenting since I think there are some issues with it. Specifically, there is some crackling I’ve heard with some specific content that I can’t quite fix. It could be due to the profile, of an issue with my pipe wire configuration. I’d be interested to hear if anyone else has any issues.
I was a pleb running pulseaudio and didn’t know what the difference between alsa and pulseaudio was. I’ve now learned the difference and switched to pipewire. Your preset sounds great btw.
I can post a sample this evening, but I think I found the root cause. I think it is actually due to the pipe wire quantum being set too low for wine apps specifically, and not my preset.
I’m trying both of these profiles on Ubuntu 23.10 and both completely lack any treble whatsoever, with the FW13 profile fairing slightly better. I’ve tried setting the BIOS to both Windows and Linux modes. Unless y’all are all about that bass, no treble, I assume something is misconfigured on my end. Does anyone happen to have any ideas here?
EDIT: I turned off the filter, and it sounds great now! The filter is a LPF set at 100Hz, so this makes sense. But why is this an issue for me and no one else?
Okay, just tried it… HUGE difference! Between Cab’s and Bryan Ame’s profiles, I like Bryn Ame’s profile better.
I honestly wish I didn’t try it, because now I can’t unhear it, lol. I don’t think i can go back to NOT using EE!
Can this be a service running in the background? Does it affect headphones? I guess in our case, the headphone/lineout would be a completely different sound chipset anyways. And what of Windows?
Now I wish Framework would start playing around with the sound profile to get something better sounding at a firmware level so we don’t have to worry about using 3rd party tools.
Yes, easy effects can be set to run in the background from its preferences page, and it doesn’t consume too much CPU from my experience. Maybe an extra watt of power when sound is actually playing. You can also configure it to automatically switch profiles based on which pipewire sink is active. I have mine to set to use this profile when it’s playing out of the internal sound card, and set to use a blank profile when I plug something into the headphone expansion card.
Not sure why it’s only an issue for you. The filter should be a high pass filter. The speakers on the framework 16 don’t have the range to play anything below about 90 HZ, and so I filtered out all those low frequencies to allow the speakers to use more of their power on the frequencies that they can actually reproduce well. You do lose a little bit by cutting out stuff below 100 HZ, but that’s counteracted by the basic cider in the effects chain that adds the harmonics of those base frequencies back into the mix which gives the illusion that the lower notes are being played. Try re-importing the profile, and check to make sure that the filter at the beginning of the chain is a high pass filter and not a low-pass filter.