ferraus deess
Reduce sibilance
Synopsis
ferraus deess <input> [options] [-o <output>]
What it does
A band-limited detector around the sibilance frequency drives a dynamic high shelf (split: only the highs are turned down, via a phase-matched crossover) or the whole signal (wideband).
This command is also an fx stage and a pipeline op: ferraus fx in.wav -o out.wav --fx "deess:key=value".
Examples
Default de-essing
ferraus deess vox.wav -o vox_deessed.wav
Stronger wideband de-essing for a darker voice
ferraus deess vox.wav --center 5kHz --range 10dB --mode wideband -o vox_dw.wav
Narrow detector tuned higher, for a bright voice
ferraus deess vox_bright.wav --center 8kHz --bandwidth 0.5oct --threshold -24dB -o vox_deessed.wav
Light touch: at most 4 dB of reduction, blended with the dry signal
ferraus deess vox.wav --range 4dB --mix 60% -o vox_light.wav
Options
| Flag | Type | Default | Meaning |
|---|---|---|---|
--center | frequency | 6.5kHz | Detector centre frequency |
--bandwidth | text | 1oct | Detector bandwidth in octaves (e.g. 1oct, 0.5oct) |
--threshold | gain | -20dB | Detector level where reduction starts |
--range | gain | 6dB | Maximum reduction |
--mode | split | wideband | split | split: turn down only the highs; wideband: turn down everything |
--mix | percent | 100% | Dry/wet balance: 0% returns the input unchanged, 100% is fully processed |
Global options
Every command also accepts the global options (-o, --json, --dry-run, --overwrite, --progress, ...). See Global options.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Processing failed |
| 2 | Usage or parameter error |
| 3 | Input missing or unreadable |
| 4 | Unsupported format or codec |
| 8 | Cancelled |
| 70 | Internal error (bug) |
Common mistakes
- Forgetting that outputs are never overwritten: pass
--overwriteor a new-opath when re-running. - Gains need a unit when not in dB:
0.5xis a factor,-6and-6dBare decibels.
For models
- MCP tool:
ferraus_deess - Schema:
ferraus schema deess - Pipeline:
{ op: deess, args: { ... } }(flag names with_instead of-) - fx stage: yes
{"command": "deess", "defaults": {"center": "6.5kHz", "bandwidth": "1oct", "threshold": "-20dB", "range": "6dB", "mode": "split", "mix": "100%"}}