ferraus eq

Parametric EQ (cascaded biquads or linear phase)

Synopsis

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

What it does

Each --band is type:freq:gain with optional :q=<q> and :order=<n>. Types: peak, lowshelf, highshelf, lowpass, highpass, bandpass, notch (pass and notch filters ignore the gain, which may be omitted). Bands are RBJ-cookbook biquads in series; --linear-phase instead applies the same combined magnitude response as a linear-phase FIR (no phase shift, adds pre-ringing; meant for mastering). Default Q: peak 1.0, shelves and pass filters 0.707, notch 4. order > 2 on pass filters gives Butterworth slopes (6 dB/oct per order).

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

Examples

A vocal EQ

ferraus eq vox.wav --band highpass:80Hz --band peak:3kHz:+2dB:q=1.2 --band highshelf:10kHz:+1.5dB -o vox_eq.wav

Phase-free low cut for mastering

ferraus eq mix.wav --band lowshelf:100Hz:-2dB --linear-phase -o mix_lp.wav

Two notches in an fx chain

ferraus fx take.wav -o out.wav --fx "eq:band=notch:60Hz,band=notch:120Hz"

Options

FlagTypeDefaultMeaning
--bandtext—type:freq:gain[:q=..][:order=..], e.g. peak:2.5kHz:+3dB:q=1.4 or highpass:80Hz:order=4 Repeatable.
--linear-phaseflag—Apply the response as a linear-phase FIR instead of minimum-phase biquads
--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.

For models

  • MCP tool: ferraus_eq
  • Schema: ferraus schema eq
  • Pipeline: { op: eq, args: { ... } } (flag names with _ instead of -)
  • fx stage: yes
{"command": "eq", "defaults": {"mix": "100%"}}