ferraus master analyze
The measurement report an agent decides from
Synopsis
ferraus master analyze <input> [options] [-o <output>]
What it does
Measures everything master decides from: loudness (integrated, short-term and momentary maximum, loudness range, true peak, sample peak, crest factor, PLR), tonal balance per 1/3-octave band against --reference or the genre curve with the three largest deviations, dynamics (gain and limiting needed to reach --target, transient density, much louder or quieter sections), stereo (width per band, correlation broadband and below 120 Hz, side energy, mono compatibility), problems (each with a suggested fix as a runnable fx stage), and context (tempo, key, duration, sample rate, bit depth, and whether the input already looks mastered, in which case master defaults to --intensity light and says why). -o writes the report as JSON.
Examples
Read the numbers and the problem list
ferraus master analyze mix.wav --reference ref.wav --json > report.json
Compare with the hip-hop curve and the Apple target
ferraus master analyze mix.wav --genre hiphop --target apple --json
Measure against a custom -12 LUFS target and save the report
ferraus master analyze mix.wav --target custom --lufs -12LUFS --true-peak -1dBTP -o report.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 for the tonal-balance comparison |
--genre | auto | pop | hiphop | edm | rock | acoustic | classical | jazz | podcast | auto | Genre curve for the tonal-balance comparison (auto guesses) |
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. - Gains need a unit when not in dB:
0.5xis a factor,-6and-6dBare decibels.
For models
- MCP tool:
ferraus_master_analyze - Schema:
ferraus schema master analyze - Pipeline:
{ op: master analyze, args: { ... } }(flag names with_instead of-) - fx stage: no
{"command": "master analyze", "defaults": {"target": "streaming", "standard": "ebu", "genre": "auto"}}