ferraus limit
True-peak brickwall limiter
Synopsis
ferraus limit <input> [options] [-o <output>]
What it does
Lookahead brickwall limiter that detects inter-sample peaks with oversampling, so the output never exceeds the ceiling when measured as true peak. The gain envelope ramps down over the lookahead window (no clicks) and recovers with the release time.
This command is also an fx stage and a pipeline op: ferraus fx in.wav -o out.wav --fx "limit:key=value".
Examples
Limit to -1 dBTP
ferraus limit mix.wav -o limited.wav
Hotter ceiling, slower release
ferraus limit master.wav --ceiling -0.3dBTP --release 100ms -o hot.wav
Leave extra headroom for lossy encoding (MP3 and AAC can add peaks)
ferraus limit podcast.wav --ceiling -2dBTP -o podcast_safe.wav
Fast sample-peak limiting with a short lookahead
ferraus limit drums.wav --ceiling -1dB --oversample 1x --lookahead 1ms -o drums_lim.wav
Options
| Flag | Type | Default | Meaning |
|---|---|---|---|
--ceiling | gain | -1dBTP | Maximum output level (true peak, dBTP) |
--release | time | 50ms | Recovery time after a peak |
--lookahead | time | 5ms | Attack ramp length (latency is compensated) |
--oversample | 1x | 2x | 4x | 8x | 4x | True-peak detection oversampling (1x = sample peak) |
--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 |
| 9 | Output verification failed (checksum, clipping guard, duration mismatch) |
| 70 | Internal error (bug) |
Common mistakes
- Forgetting that outputs are never overwritten: pass
--overwriteor a new-opath when re-running. - Beat-based times (
4b,1/4) need a tempo: pass--bpmor write4b@120. - Gains need a unit when not in dB:
0.5xis a factor,-6and-6dBare decibels.
For models
- MCP tool:
ferraus_limit - Schema:
ferraus schema limit - Pipeline:
{ op: limit, args: { ... } }(flag names with_instead of-) - fx stage: yes
{"command": "limit", "defaults": {"ceiling": "-1dBTP", "release": "50ms", "lookahead": "5ms", "oversample": "4x", "mix": "100%"}}