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

FlagTypeDefaultMeaning
--targetstreaming | apple | youtube | club | cd | broadcast | podcast | customstreamingDelivery 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)
--lufsgain—Integrated loudness for --target custom (e.g. -12LUFS); overrides a named target's loudness
--true-peakgain—True-peak ceiling for --target custom (e.g. -1dBTP, default -1dBTP); overrides a named target's ceiling
--standardebu | atscebuBroadcast standard for --target broadcast: ebu (-23 LUFS, -1 dBTP) or atsc (-24 LKFS, -2 dBTP)
--referencepath—Reference track for the tonal-balance comparison
--genreauto | pop | hiphop | edm | rock | acoustic | classical | jazz | podcastautoGenre 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

CodeMeaning
0Success
1Processing failed
2Usage or parameter error
3Input missing or unreadable
4Unsupported format or codec
5Model not cached and downloads disabled
6Model download or verification failed
8Cancelled
10Network error
70Internal error (bug)

Common mistakes

  • Forgetting that outputs are never overwritten: pass --overwrite or a new -o path when re-running.
  • Gains need a unit when not in dB: 0.5x is a factor, -6 and -6dB are 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"}}