---
title: "Audio EQ"
description: "Equalize a voice clip: a presence bell (cut harshness in the 2-5 kHz band), a de-esser (tames sibilance around 6-8 kHz, only while it is loud), and a low shelf (body). The default preset `voice_deharsh` is the fix for harsh TTS clones (Fish, ElevenLabs): -3.5 dB wide bell at 3.5 kHz, de-ess at 7 kHz, +1.5 dB shelf at 150 Hz. `none` starts every band off. Any dial you set overrides the preset for that one value; a band with gain 0 (de-ess amount 0) is off. When bands boost, the whole clip is first turned down by the sum of the boosts, so the EQ cannot push it past full scale; follow with a loudness node if level matters. Out-of-range values are refused with the number, never clamped. Sample rate and channels are kept. Free: deterministic processing, content-addressed output."
updated: 2026-09-28
---

# Audio EQ

**Node type:** `utility:audio_eq`  
**Category:** `Editing`

## Description

Equalize a voice clip: a presence bell (cut harshness in the 2-5 kHz band), a de-esser (tames sibilance around 6-8 kHz, only while it is loud), and a low shelf (body). The default preset `voice_deharsh` is the fix for harsh TTS clones (Fish, ElevenLabs): -3.5 dB wide bell at 3.5 kHz, de-ess at 7 kHz, +1.5 dB shelf at 150 Hz. `none` starts every band off. Any dial you set overrides the preset for that one value; a band with gain 0 (de-ess amount 0) is off. When bands boost, the whole clip is first turned down by the sum of the boosts, so the EQ cannot push it past full scale; follow with a loudness node if level matters. Out-of-range values are refused with the number, never clamped. Sample rate and channels are kept. Free: deterministic processing, content-addressed output.

## Canvas ports

These appear as port handles on the left side of the node.

| ID      | Label     | Details              |
| ------- | --------- | -------------------- |
| `audio` | **Audio** | `AUDIO` _(required)_ |

## Sidebar config

These render as form fields in the right-side config panel when the node is selected.

| ID             | Label                                            | Details                                   |
| -------------- | ------------------------------------------------ | ----------------------------------------- |
| `preset`       | **Preset**                                       | `TEXT` · options: `voice_deharsh`, `none` |
| `presenceGain` | **Presence gain (dB, -12 to 6; blank = preset)** | `NUMBER`                                  |
| `presenceFreq` | **Presence frequency (Hz, 1000 to 8000)**        | `NUMBER`                                  |
| `presenceQ`    | **Presence Q (0.3 to 4; lower = wider)**         | `NUMBER`                                  |
| `deessAmount`  | **De-ess amount (0 to 1; 0 = off)**              | `NUMBER`                                  |
| `deessFreq`    | **De-ess frequency (Hz, 4000 to 10000)**         | `NUMBER`                                  |
| `lowShelfGain` | **Low shelf gain (dB, -6 to 6)**                 | `NUMBER`                                  |
| `lowShelfFreq` | **Low shelf frequency (Hz, 50 to 400)**          | `NUMBER`                                  |
| `format`       | **Format**                                       | `TEXT` · options: `mp3`, `wav`            |

## Outputs

| ID      | Label        | Type    |
| ------- | ------------ | ------- |
| `audio` | **EQ Audio** | `AUDIO` |

## What it is for

TTS voice clones (Fish, ElevenLabs) often come out harsh: the 2-5 kHz band sits
7 to 10 dB under the low end, where a natural voice sits about 15 dB under, and
the S sounds spit. Wire the voice into Audio EQ and the default preset fixes
both without a trip to an audio editor.

## The voice_deharsh preset

- **Presence**: -3.5 dB, a wide bell (Q 0.7) centred at 3.5 kHz.
- **De-ess**: a dynamic cut around 7 kHz that only engages while that band is
  loud, so it takes the edge off sibilants and leaves everything else alone.
- **Low shelf**: +1.5 dB at 150 Hz, a little body back.

Measured on real Fish clones, the preset moves the 2-5 kHz band 3 to 3.5 dB
further under the low end and trims the 6-8 kHz sibilance band by 2 to 3 dB.
Want more? Set **Presence gain** to -6.

## Settings

Every dial starts blank, which means "use the preset's value". Set one and it
overrides that value only. Pick the **none** preset to start from flat.

- **Presence gain** (dB, -12 to 6) and **frequency** (1000 to 8000 Hz), **Q**
  (0.3 to 4, lower is wider). Gain 0 (anything under 0.05 dB) turns the band
  off.
- **De-ess amount** (0 to 1; under 0.01 is off) and **frequency** (4000 to
  10000 Hz).
- **Low shelf gain** (dB, -6 to 6) and **frequency** (50 to 400 Hz).
- **Format**: mp3 (default) or wav. Sample rate and channels are kept.

Every band off is refused rather than handing back a transcode. Out-of-range
values are refused with the number, never clamped.

## Headroom

When bands boost, the whole clip is first turned down by the SUM of the boosts,
so a voice already normalized near full scale does not clip. The sum, because
two boosts that overlap (a +6 shelf and a wide +6 bell) add up past either one.
The preset boosts 1.5 dB, so its output is about 1.5 dB quieter at peak. Put **Audio Master** (or your
loudness step) after it if the level matters.

## Free, and why

Free set, no Run button, refreshes when anything downstream runs. The output is
content-addressed by the input url and the settings, so an unchanged re-run
reuses the last file.

---

_Auto-generated from the Wireflow node registry._

---

Documentation index: fetch https://www.wireflow.ai/llms.txt for the full list of Wireflow docs.
