[Guide / Preset] EasyEffects Microphone Profile for Built-in Mic (Clear Voice, De-Noised, No "Tin Can" Sound)

Hi everyone,

there has been fantastic community work regarding the internal speakers (e.g., community EQ profiles and the official EasyEffects presets in Framework’s linux-docs), but I noticed there isn’t really a ready-to-use, polished preset specifically for the built-in microphone (I got the 2nd gen board).

The Problem (Out of the Box)

Like many others using Linux or Windows on a Framework laptop, my experience in video calls (BBB, Teams, etc.) with the built-in mic wasn’t great:

  • Lots of background noise and fan hiss.

  • A hollow, nasal “tin can” / boxy resonance.

  • Harsh peaks and occasional digital clipping when speaking louder.

This doesn’t seem to be a Linux problem after all, as people using Windows reported similar microphone performance.

The Solution: “Framework-Mic” EasyEffects Pipeline

I am by no means an audio engineer, but with the help of AI and some trial-and-error testing, I put together an EasyEffects input pipeline that dramatically improves voice quality.

:backhand_index_pointing_right: Gist Link: EasyEffects Preset for the Framework 13 built-in Microphone (2nd gen board) · GitHub

(copy-paste the json file directly into your `~/.config/easyeffects/input/` folder).


What this profile does:

  1. High-Pass Filter (80 Hz, 18dB/oct): Cuts sub-bass rumble, desk bumps, chassis vibrations, and fan noise to some extent before they hit any other stages.

  2. DeepFilterNet (AI Noise Suppression): Removes fan noise, typing, and room ambience in real-time without making the voice sound robotic.

  3. Parametric EQ (Targeted Voice Correction):

  • +1.0 dB @ 160 Hz – Adds natural warmth and body to the voice.

  • -2.5 dB @ 650 HzEliminates the typical “talking inside a tin can / shoebox” resonance of the Framework chassis.

  • +2.0 dB @ 2.6 kHz – Enhances speech clarity and presence.

  1. Compressor: Smooths out dynamics so you stay at a consistent volume whether leaning in or sitting back.

  2. Limiter (Herm Thin, -2.5 dB): Hard ceiling to prevent sudden clipping when laughing or coughing.

The whole pipeline only adds about 25 ms of latency, which can’t be perceived by humans and will result in lip-sync audio (not counting any extra latency introduced by conferencing software).


Important Notes & Prerequisites

1. Check your Mic input level / ALSA Gain / Mic Boost first!

As reported by other users, under Linux, ALSA (or pipewire) often defaults the internal capture volume or “Mic Boost” to 100%, causing hardware-level clipping before any software filter can touch it. Software filters can’t magically cure this.

  • Open alsamixer (press F5) or check your desktop Sound Settings.

  • Make sure your base input volume level is set to around 30% – 40% to provide clean headroom for the pipeline. I found 35% to be sweet-spot.

2. Echo Cancellation:

This preset does not handle acoustic echo cancellation (AEC). Please leave echo cancellation enabled in your conferencing software (Zoom, Teams, Meet, etc.) or add a echo-cancellation stage right after the initial filter in easyeffects. In my experience, EasyEffects echo-cancellation stage does work quite well in cutting out anything played over the speakers, but will distort your voice a lot if your speaking while voice is played back. The built-in echo-cancellation in conferencing software usually works far better.
If you need to use EasyEffects echo-cancellation stage, make sure to deactivate the included noise filter and high pass filter in there, as we got this covered as separate stages already.

3. Noise-Suppression:

This preset activates an advanced neural net (DeepFilterNet) for noise-suppression. Make sure to deactivate any other noise-suppression, e.g. found in conferencing software. If two of these stages (1. in the EasyEffects pipeline, 2. in the conferencing software) are active at the same time, your voice will degrade and maybe even cut off, depending on the aggressiveness of the second stage.

The suppression-level is set to 60% on purpose, as this filters out most noise effectively, without altering your voice. If you’re in a very noisy area, you might want to increase this by 10-20 %, while accepting that this will alter your voice a little.

4. Equalizer Preset:

I’ve tuned this for my specific voice (male, tenor), which resulted in a slight db increase at about 160 Hz. I can’t say anything about any other voices, but I guess the preset will also work for other voices as well. The other two EQ bands compensate for the tin box sound and some missing highs (mic characteristic).

My methodology was: record something (speaking normally, normal volume, no background noise) via Audacity and let AI analyse the spectrogram to find the specific tuning knobs. This is not really scientific, but I’m no audio engineer.

5. Requirements:

Ensure you have easyeffects installed along with the DeepFilterNet plugin (available via most package managers as deepfilter-ladspa / ladspa-deep-filter or included in the EasyEffects Flatpak).

Please Note

This whole pipeline is only intended for the built-in mic, not for any desktop mics or headphone mics. If you want to tune your other mics, you can probably transfer the initial highpass-filter, the noise suppression, and the limiter stages as they are (simply deactivate the others). For headphones, you do not want to use a compressor stage as the distance between you and the mic will stay the same. For a desktop mic, a compressor stage might provide some value.
The EQ can’t be used for anything else than the built-in mic. But you can measure and tune your own EQ based on the devices and recordings you got.

In EasyEffects, you can activate to autoload presets for specific input devices - when the input device is selected, the corresponding preset will be loaded. This is quite handy!

1 Like

It looks like you’ve generated this text using AI tools. For some reason, AI output pasted into Discourse adds escape marks to Markdown, so formatting marks are taken literally rather than used as formatting. That said, I can see it’s inconsistent here - some formatting worked, some didn’t. If you open your post in edit mode, see where \ backslashes have been added; they can probably just be removed.

Thanks for the heads up. I’ve fixed it in the markdown source view.

1 Like