Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save jtrv/47542c8be6345951802eebcf9dc7da31 to your computer and use it in GitHub Desktop.

Select an option

Save jtrv/47542c8be6345951802eebcf9dc7da31 to your computer and use it in GitHub Desktop.

EasyEffects Microphone Preset: Noise Reduction + Masculine Voice + Broadcast Sound

This is a custom input chain for easyeffects for noise reduction and a "broadcast" sound optimized for masculine voices with my mic, placement, acoustics, etc. I started with @MateusRodCosta input chain (now deprecated) based on this article from fedora magazine. Soon after I prompted LLM's to produce settings for NPR-like sound. To my surprise it worked quite well in subjective testing, that is what we have here. I also added the speech processor effect, and changed the order of the chain.

If this config breaks, check my current config file and comment if I need to update the gist.

If you know of ways to improve this configuration, please feel free to comment and make a suggestion.

NOTE: Some microphone's output mono which EasyEffects may interpret as left-only stereo, you can use Stereo Tools to fix this. Thank you to @Saiv46 for pointing this out

Overview

The config follows a logical "Broadcast" workflow: Clean -> Shape -> Control -> Protect.

1. RNNoise & DeepFilterNet (Noise Cleaning)

We are currently running two AI noise reduction plugins back-to-back at the start of our chain. We pass the audio through RNNoise first, and then through DeepFilterNet. This provides aggressive noise isolation, ensuring the background is dead silent.

2. Gate (Soft Expander)

Instead of cutting the audio to total silence, we have set a Reduction of -12.0 dB and a slow Release of 250ms. This acts as a "soft gate." It pushes the background noise down gently between sentences. This feels much more natural to the listener than the audio constantly cutting out to "digital void" silence.

3. Equalizer (Tonal Shaping)

This sculpts the actual tonality of our masculine voice profile.

Band 0 (High Pass @ 80Hz): We are cutting the ultra-low rumble (like desk bumps) that doesn't contain useful voice information.

Band 1 (Cut @ 220Hz): We are cutting -2dB here. This removes the "mud" or "boxiness" common in male voices in small rooms, making the voice sound clearer without losing body.

Band 3 (Boost @ 3500Hz): We are adding +2dB here for "intelligibility." This helps our voice cut through background music, game sounds, etc so our audience understands every word.

Band 4 (High Shelf @ 10kHz): We are adding +2dB of "Air" which gives us the crisp, expensive, "studio condenser mic" sound.

4. Compressor (Dynamic Control)

This gives us a consistent "Radio DJ" presence.

Attack (15ms): We wait 15ms before the compressor clamps down. This lets the initial "punch" of our consonants (T, K, P) pass through, keeping our speech articulate.

Ratio (3:1): For every 3dB we go over the limit, only 1dB gets through. This smooths out moments when we get excited and loud.

Makeup Gain (+3dB): Since we are squashing the peaks, we use this knob to turn our overall volume back up, making the voice sound louder and fuller.

5. De-Esser (Sibilance Control)

Because we boosted the treble in our Equalizer, our sharp "S", "T", and "Sh" sounds might get harsh. We target the 4kHz to 8kHz range to tame them and prevent ear fatigue. (The range specifically targets masculine sibilance which is lower than feminine sibilance)

6. Limiter (Safety Ceiling)

This safety net stops our audio from exceeding -1.5dB. Even if we scream into the mic, the Limiter prevents digital distortion (clipping). It ensures our stream audio is loud and competitive, but never "broken."

{
"input": {
"blocklist": [],
"compressor#0": {
"attack": 15.0,
"boost-amount": 0.0,
"boost-threshold": -72.0,
"bypass": false,
"dry": -80.01,
"hpf-frequency": 10.0,
"hpf-mode": "Off",
"input-gain": 0.0,
"input-to-link": 0.0,
"input-to-sidechain": 0.0,
"knee": -6.0,
"link-to-input": 0.0,
"link-to-sidechain": 0.0,
"lpf-frequency": 20000.0,
"lpf-mode": "Off",
"makeup": 3.0,
"mode": "Downward",
"output-gain": 0.0,
"ratio": 3.0,
"release": 200.0,
"release-threshold": -40.0,
"sidechain": {
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right",
"type": "Feed-forward"
},
"sidechain-to-input": 0.0,
"sidechain-to-link": 0.0,
"stereo-split": false,
"threshold": -18.0,
"wet": 0.0
},
"deepfilternet#0": {
"attenuation-limit": 100.0,
"bypass": false,
"input-gain": 0.0,
"max-df-processing-threshold": 20.0,
"max-erb-processing-threshold": 30.0,
"min-processing-buffer": 0,
"min-processing-threshold": 5.0,
"output-gain": 0.0,
"post-filter-beta": 0.019999999552965164
},
"deesser#0": {
"bypass": false,
"detection": "RMS",
"f1-freq": 4000.0,
"f1-level": -6.0,
"f2-freq": 8000.0,
"f2-level": -6.0,
"f2-q": 1.5,
"input-gain": 0.0,
"laxity": 15,
"makeup": 0.0,
"mode": "Split",
"output-gain": 0.0,
"ratio": 3.0,
"sc-listen": false,
"threshold": -22.0
},
"equalizer#0": {
"balance": 0.1,
"bypass": false,
"input-gain": 0.0,
"left": {
"band0": {
"frequency": 80.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 0.7,
"slope": "x2",
"solo": false,
"type": "Hi-pass",
"width": 4.0
},
"band1": {
"frequency": 220.0,
"gain": -2.0,
"mode": "RLC (MT)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 350.0,
"gain": -2.0,
"mode": "BWC (MT)",
"mute": false,
"q": 1.2,
"slope": "x2",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 3500.0,
"gain": 2.0,
"mode": "BWC (BT)",
"mute": false,
"q": 0.9,
"slope": "x2",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "LRX (MT)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 5,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 80.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 0.7,
"slope": "x2",
"solo": false,
"type": "Hi-pass",
"width": 4.0
},
"band1": {
"frequency": 220.0,
"gain": -2.0,
"mode": "RLC (MT)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 350.0,
"gain": -2.0,
"mode": "BWC (MT)",
"mute": false,
"q": 1.2,
"slope": "x2",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 3500.0,
"gain": 2.0,
"mode": "BWC (BT)",
"mute": false,
"q": 0.9,
"slope": "x2",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 10000.0,
"gain": 2.0,
"mode": "LRX (MT)",
"mute": false,
"q": 0.7,
"slope": "x1",
"solo": false,
"type": "Hi-shelf",
"width": 4.0
}
},
"split-channels": false
},
"gate#0": {
"attack": 5.0,
"bypass": false,
"curve-threshold": -50.0,
"curve-zone": -2.0,
"dry": -80.01,
"hpf-frequency": 10.0,
"hpf-mode": "Off",
"hysteresis": true,
"hysteresis-threshold": -3.0,
"hysteresis-zone": -1.0,
"input-gain": 0.0,
"input-to-link": 0.0,
"input-to-sidechain": 0.0,
"link-to-input": 0.0,
"link-to-sidechain": 0.0,
"lpf-frequency": 20000.0,
"lpf-mode": "Off",
"makeup": 1.0,
"output-gain": 0.0,
"reduction": -12.0,
"release": 250.0,
"sidechain": {
"lookahead": 0.0,
"mode": "RMS",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right",
"type": "Internal"
},
"sidechain-to-input": 0.0,
"sidechain-to-link": 0.0,
"stereo-split": false,
"wet": -1.0
},
"limiter#0": {
"alr": false,
"alr-attack": 5.0,
"alr-knee": 0.0,
"alr-release": 50.0,
"attack": 2.0,
"bypass": false,
"dithering": "16bit",
"gain-boost": false,
"input-gain": 0.0,
"input-to-link": 0.0,
"input-to-sidechain": 0.0,
"link-to-input": 0.0,
"link-to-sidechain": 0.0,
"lookahead": 2.0,
"mode": "Herm Wide",
"output-gain": 0.0,
"oversampling": "None",
"release": 5.0,
"sidechain-preamp": 0.0,
"sidechain-to-input": 0.0,
"sidechain-to-link": 0.0,
"sidechain-type": "Internal",
"stereo-link": 100.0,
"threshold": -1.5
},
"plugins_order": [
"rnnoise#0",
"deepfilternet#0",
"gate#0",
"equalizer#0",
"compressor#0",
"deesser#0",
"limiter#0"
],
"rnnoise#0": {
"bypass": false,
"enable-vad": false,
"input-gain": 0.0,
"model-name": "\"\"",
"output-gain": 0.0,
"release": 20.0,
"use-standard-model": true,
"vad-thres": 30.0,
"wet": 0.0
}
}
}
@crisleo94
Copy link

I had some issues recording after applying this config, the final recording was only reproducing from the left speaker (in OBS I could see that the easyeffects source is double channel) I had to apply a new effect:
image
Stereo Tools and in the Stereo Matrix select LR>LL (Mono left channel)

@JonasAlv
Copy link

this is perfect blud

@cryptomilk
Copy link

I think this needs to be updated for easy effects 8.0

@jtrv
Copy link
Author

jtrv commented Nov 25, 2025

@cryptomilk thanks! I noticed easyeffects cleared out my config directory on the recent update but I haven't had the time to fix things. I'll take a look soon and update this gist. I'll probably add a comment on what I'm doing as well, so folks can try to configure it themselves through the UI if/when breaking changes happen.

@Saiv46
Copy link

Saiv46 commented Nov 29, 2025

@jtrv Thank you for your config! But I've encountered a problem that fifine microphone outputs mono, and EasyEffects treat it as left-only stereo. I had to add Stereo Tools to fix that.

@Hajit-Story
Copy link

Has something stopped working in easyeffects 8.0? I just haven't checked. It's the best thing I've used for sound. Thank you from the bottom of my heart for your work. I'm eagerly awaiting your update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment