ferraus master plan
The exact chain master would apply, every parameter resolved, editable
Synopsis
ferraus master plan <input> [options] [-o <output>]
What it does
Plans the master without writing audio: the planner simulates the chain on this mix and records every stage with all of its parameters resolved, as JSON ({"version":1, "target":..., "stages":[{"op":"multiband","args":{...}}, ...]}). Edit any value and run it with 'master <mix> --plan plan.json'. Stage args are ordinary command parameters (see 'ferraus schema <op>'); 'stage' and 'why' fields are informational. -o writes the plan file.
Examples
See the proposed chain and edit any value
ferraus master plan mix.wav --target streaming --json > plan.json
Plan a CD master for a rock mix and save it
ferraus master plan mix.wav --target cd --genre rock -o plan.json
A gentle plan with no color or stereo stage
ferraus master plan mix.wav --intensity light --warmth 0% --no-widen -o plan.json
Options
| Flag | Type | Default | Meaning |
|---|---|---|---|
--target | streaming | apple | youtube | club | cd | broadcast | podcast | custom | streaming | Delivery target: streaming -14 LUFS/-1 dBTP, apple -16/-1, youtube -14/-1, club -8/-0.3, cd -10/-0.3 (16-bit 44.1 kHz), broadcast -23/-1 (EBU R128), podcast -16 stereo or -19 mono/-1, custom (--lufs, --true-peak) |
--lufs | gain | — | Integrated loudness for --target custom (e.g. -12LUFS); overrides a named target's loudness |
--true-peak | gain | — | True-peak ceiling for --target custom (e.g. -1dBTP, default -1dBTP); overrides a named target's ceiling |
--standard | ebu | atsc | ebu | Broadcast standard for --target broadcast: ebu (-23 LUFS, -1 dBTP) or atsc (-24 LKFS, -2 dBTP) |
--reference | path | — | Reference track whose tonal balance the corrective EQ moves toward (replaces the genre curve) |
--match-amount | percent | 50% | How much of the measured tonal difference the corrective EQ corrects (each band is capped at 4 dB) |
--genre | auto | pop | hiphop | edm | rock | acoustic | classical | jazz | podcast | auto | Genre for the tonal curve and dynamics targets; auto guesses from tempo, spectral tilt, low-end share, and crest factor |
--intensity | light | medium | heavy | medium | How hard to push: bounds limiter gain reduction (light 2 dB, medium 4 dB, heavy 6 dB) and sets compression ratios; an input that already looks mastered defaults to light |
--width | percent | 100% | Stereo width of the side signal (100% unchanged); never narrower than mono bass or wider than broadband correlation 0.3 allows |
--bass-mono | frequency | 120Hz | Side signal below this frequency is collapsed to mono |
--warmth | percent | 15% | Tape saturation and exciter amount (0% skips the color stage) |
--no-eq | flag | — | Skip the corrective EQ |
--no-widen | flag | — | Skip the stereo stage |
--trim-silence | text | -70dB | Trim head and tail silence below this level (dBFS), or 'off' |
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 |
| 5 | Model not cached and downloads disabled |
| 6 | Model download or verification failed |
| 8 | Cancelled |
| 10 | Network error |
| 70 | Internal error (bug) |
Common mistakes
- Forgetting that outputs are never overwritten: pass
--overwriteor a new-opath when re-running. - Percentages accept
80%or the fraction0.8; a bare80means 80x, not 80%. - Gains need a unit when not in dB:
0.5xis a factor,-6and-6dBare decibels.
For models
- MCP tool:
ferraus_master_plan - Schema:
ferraus schema master plan - Pipeline:
{ op: master plan, args: { ... } }(flag names with_instead of-) - fx stage: no
{"command": "master plan", "defaults": {"target": "streaming", "standard": "ebu", "match_amount": "50%", "genre": "auto", "intensity": "medium", "width": "100%", "bass_mono": "120Hz", "warmth": "15%", "trim_silence": "-70dB"}}