ferraus gate

Noise gate with hysteresis and hold

Synopsis

ferraus gate <input> [options] [-o <output>]

What it does

Mutes the signal while it stays below the threshold. The gate opens at the threshold and closes 3 dB lower (hysteresis) after the hold time, so it does not chatter.

This command is also an fx stage and a pipeline op: ferraus fx in.wav -o out.wav --fx "gate:key=value".

Examples

Gate a tom mic

ferraus gate tom.wav --threshold -35dB -o tom_gated.wav

Gentle gate that only dips the background

ferraus gate vo.wav --range -12dB --release 200ms -o vo_soft.wav

Short, tight gate that cuts the spill between kick hits

ferraus gate kick.wav --threshold -30dB --hold 20ms --release 50ms -o kick_tight.wav

High-pass the detector so kick bleed does not open the gate, only snare hits do

ferraus gate snare.wav --threshold -28dB --sidechain-hpf 200Hz -o snare_gated.wav

Options

FlagTypeDefaultMeaning
--thresholdgain-40dBOpening level (closes 3 dB lower)
--attacktime1msOpening time
--holdtime50msMinimum open time after the level drops
--releasetime100msClosing time
--rangegain-80dBAttenuation when closed
--sidechain-hpffrequency0HzHigh-pass on the detector (0Hz = off)
--mixpercent100%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

CodeMeaning
0Success
1Processing failed
2Usage or parameter error
3Input missing or unreadable
4Unsupported format or codec
8Cancelled
70Internal error (bug)

Common mistakes

  • Forgetting that outputs are never overwritten: pass --overwrite or a new -o path when re-running.
  • Beat-based times (4b, 1/4) need a tempo: pass --bpm or write 4b@120.
  • Gains need a unit when not in dB: 0.5x is a factor, -6 and -6dB are decibels.

For models

  • MCP tool: ferraus_gate
  • Schema: ferraus schema gate
  • Pipeline: { op: gate, args: { ... } } (flag names with _ instead of -)
  • fx stage: yes
{"command": "gate", "defaults": {"threshold": "-40dB", "attack": "1ms", "hold": "50ms", "release": "100ms", "range": "-80dB", "sidechain_hpf": "0Hz", "mix": "100%"}}