Skip to main content

Framework DSP

Framework DSP is a collection of EasyEffects audio processing profiles that significantly improve the built-in speaker sound quality on Framework laptops running Linux. Developed by community member cab (GitHub: cab404), it uses impulse response (IR) calibration via HiFiScan alongside multiband compression and other DSP techniques to compensate for the acoustic limitations of small laptop speakers12.

The profiles are designed for the Framework Laptop 13 but are also reported to work well on the Framework Laptop 1634. Framework's Matt Hartley (Director of Linux) praised the project2.

Background

Framework laptop speakers, like most laptop speakers, suffer from limited frequency response due to their small size and downward-firing orientation. Traditional equalization alone cannot fully compensate for physical speaker limitations — as noted in the EasyEffects guide, the smallness of speakers is not something that can be tuned out with EQ alone1.

The project evolved from cab's earlier EasyEffects profile posted in January 20245. After community member Tim_Bosse suggested using HiFiScan for proper response curve calibration, cab built a makeshift anti-echo chamber from pillows and captured impulse responses, which led to the creation of the improved profiles2.

Profiles

Three output profiles are included1:

EEGuide+Exciter

The original profile, built following the EasyEffects guide with an added exciter plugin for enhanced high frequencies. Resonance frequencies are not fully negated, and speakers may still vibrate occasionally1.

HifiScan+EEGuide

Uses impulse response calibration captured with HiFiScan, combined with the EasyEffects guide processing chain. The IR correction was initially set at 5dB, then switched to 16dB (with 27dB also available) for better resonance suppression. The exciter was removed in favor of the convolver approach1.

Gracefu's Edits

A community-contributed refinement by gracefu that the author now uses as their daily driver1. Key improvements over the HifiScan+EEGuide profile:

  • Reduced high-pass filter cutoff frequency and increased slope for better bass passthrough
  • Bass Enhancer disabled (bass comes through well enough without it)
  • Uses the 27dB IR with added gain at the convolver output (gain placed before compressor, not limiter, to avoid clipping artifacts)
  • Multiband Compressor Band 1 makeup set to 0 dB to resolve bass distortion from the added gain
  • Result: bigger sound with louder bass and clearer treble1

Signal Processing Chain

The processing pipeline follows this order1:

  1. High-pass filter — Cuts sub-bass frequencies the speakers cannot reproduce
  2. Bass Enhancer — Harmonic enhancement for low frequencies (disabled in Gracefu's Edits)
  3. Convolver — Applies impulse response correction from HiFiScan measurements
  4. Multiband Compressor — 4-band downward compression for dynamic range control
  5. Stereo Tools — Subtle stereo widening (0.3 stereo base)
  6. Limiter — Prevents clipping with Herm Thin mode, 4ms lookahead

Installation

Requires EasyEffects with the calf and lsp-plugins dependencies installed34.

One-line install

TMP=$(mktemp -d) && \
CFG=${XDG_CONFIG_HOME:-~/.config}/easyeffects && \
mkdir -p "$CFG" && \
curl -Lo "$TMP"/fwdsp.zip https://github.com/cab404/framework-dsp/archive/refs/heads/master.zip && \
unzip -d "$TMP" "$TMP"/fwdsp.zip 'framework-dsp-master/config/*/*' && \
sed -i 's|%CFG%|'"$CFG"'|g' "$TMP"/framework-dsp-master/config/*/*.json && \
cp -rv "$TMP"/framework-dsp-master/config/* "$CFG" && \
rm -rf "$TMP"

The script downloads the profiles, replaces %CFG% placeholders with the actual config path, and copies everything to the EasyEffects configuration directory1.

Autoloading

To automatically apply a profile when the Framework speakers are active, use EasyEffects' Pipewire preset autoloading. In the EasyEffects UI, navigate to Pipewire → Presets Autoloading and select the profile for the Family 17th/19th HD Audio Controller Analog Stereo sink3.

For window manager users (e.g., Sway), EasyEffects can be started as a background service2:

easyeffects -l "Gracefu's Edits" --gapplication-service

Recognition

The project is referenced as a recommended audio improvement solution in multiple distribution wikis:

It is the second-most-starred project in the easyeffects-presets GitHub topic with 179 stars7.

Technical Details

DetailValue
LicenseWTFPL (Do What The F*ck You Want To Public License)
Stars179
Contributors2 (cab404, LukeShortCloud)
Commits21
CreatedFebruary 2024
Last updatedJanuary 2025
DependenciesEasyEffects, calf, lsp-plugins, PipeWire
Calibration toolHiFiScan
Config formatJSON (EasyEffects native)
IR corrections5dB, 16dB, 27dB variants included
ProjectDescription
EasyEffectsAudio effects pipeline for PipeWire8
HiFiScanSpeaker measurement and IR calibration tool
ceiphr/ee-framework-presetsEarlier EasyEffects presets for Framework laptops
amesb FW16 EE profileEasyEffects profile designed specifically for FW16 speakers

Footnotes

  1. cab404/framework-dsp — GitHub 2 3 4 5 6 7 8 9

  2. [GUIDE] Framework DSP — better Linux audio — Framework Community 2 3 4

  3. Framework Laptop 13 — ArchWiki — Arch Linux Wiki 2 3 4

  4. Framework Laptop 16 — ArchWiki — Arch Linux Wiki 2 3

  5. [GUIDE] Yet Another EasyEffects Profile — Framework Community

  6. HCL:FrameworkLaptop — openSUSE Wiki

  7. easyeffects-presets — GitHub Topics — GitHub

  8. wwmm/easyeffects — GitHub