Skip to content

Mastering Prep

A workflow for preparing your mix for mastering, or for self-mastering with measurement guidance. You’ll compare against references, match to genre targets, and run final quality checks.

When to use this

  • Your mix is finished and you’re preparing to master (or send to a mastering engineer)
  • You’re self-mastering and want objective guidance
  • You want to verify your master is competitive with commercial releases

Workflow Overview

1

Compare to genre profile

See how your mix stacks up against typical loudness, spectrum, and dynamics for your genre

2

A/B against a reference track

Compare your mix to a specific commercial release you admire

3

Let Matchering close the gap

Apply the reference match automatically and see what it changed

4

Apply processing and verify

Make changes based on recommendations, then measure to confirm improvement

5

Final quality check

Catch any remaining problems before the master goes out


Step 1: Compare to genre profile

Why: Before reaching for a reference track, check how your mix compares to genre norms. This gives you context for whether deviations are intentional artistic choices or unintentional oversights.

Prompt:

Compare my mix to a pop profile — how does it measure up in loudness, spectrum, and dynamics?

Illustrative summary:

Profile Comparison: mix-final.wav vs Pop profile

Loudness: Yours: -15.1 LUFS Target: -10.0 to -7.0 LUFS below_target Peak: -2.3 dBTP Target: -1.0 dBTP max on_target

Spectrum (10 octave bands, dB vs target): 125 Hz: +0.4 on_target 250 Hz: +0.8 on_target 1 kHz: +0.3 on_target 4 kHz: -1.4 slightly_below 8 kHz: -2.6 below_target 16 kHz: -2.9 below_target

Dynamics: Range: 8.1 LU Target: 5-8 LU OK (edge) Crest: 10.2 dB Target: 6.0-10.0 dB on_target

Stereo: Width: 0.74 Target: 0.7-1.2 (wide) on_target Mono below: 100 Hz bass correlation 0.99 on_target

What to look for:

  • Each line carries a rating: on_target, slightly_above / slightly_below, above_target / below_target, or significantly_above / significantly_below
  • below_target means the file is quieter than this profile; decide whether that target fits your song before adding gain or limiting
  • If several high bands read low, listen for the difference before deciding whether a shelf EQ is useful
  • Ratings are measured against the genre profile, not against taste. A deliberate choice can read as off-target and still be right

Step 2: A/B against a reference track

Why: Built-in genre profiles are starting points. A specific reference track you admire gives you a concrete target for the sonic character you want.

Prompt:

Compare my mix at mix-final.wav against reference-track.wav — show me the detailed differences in spectrum, loudness, and width

Illustrative summary:

Reference Comparison Your file: mix-final.wav Reference: reference-track.wav

Loudness: Yours: -15.1 LUFS Reference: -12.4 LUFS Difference: -2.7 LUFS (yours is quieter)

Spectrum (dB vs reference, per octave band): 31 Hz: -0.3 62 Hz: +0.5 125 Hz: +0.8 250 Hz: +1.1 500 Hz: +0.4 1 kHz: 0.0 2 kHz: -0.5 4 kHz: -0.9 8 kHz: -1.6 16 kHz: -2.1

Dynamics: Crest: 10.2 dB Reference: 7.1 dB Difference: Yours is more dynamic (+3.1 dB crest)

Stereo: Width: 0.68 Reference: 0.78 Difference: Yours is narrower (-0.10)

What to look for:

  • The mix is 2.7 LU quieter; level-match playback before deciding whether more limiting would help
  • The reference is brighter (+2.1 dB in highs) and more forward (+0.9 dB high-mid)
  • Reference is wider (0.78 vs 0.68) and more compressed (crest 7.1 vs 10.2)

Step 3: Let Matchering close the gap

Why: match_to_reference doesn’t hand you a list of moves to make. It runs Matchering against the reference, writes a matched file, and reports what changed. Use it when you want the transform applied for you, and use Step 2’s comparison when you’d rather make the moves yourself.

Prompt:

Match my mix to the reference track and write the result, then tell me what it changed

Illustrative summary:

Match to Reference: mix-final.wav -> reference-track.wav

Loudness (before -> after): Integrated: -15.1 -> -12.5 LUFS (change +2.6) True peak: -2.3 -> -1.0 dBTP (change +1.3)

Spectral change (before -> after, dB): 250 Hz: +1.1 -> +0.3 (-0.8) 4 kHz: -0.9 -> -0.2 (+0.7) 8 kHz: -1.6 -> -0.4 (+1.2) 16 kHz: -2.1 -> -0.6 (+1.5)

Output: /Users/you/.phantom/output/mix-final_matched.wav

How to read it: the numbers describe what Matchering already did, not what you should do. Loudness and spectral balance are reported as before, after, and the difference between them. Width is adjusted as part of the same pass but isn’t reported back.

If you’d rather do it by hand, work from Step 2’s comparison instead. The reference is 2.7 LUFS louder, roughly 2 dB brighter above 8 kHz, and about 1 dB heavy at 250 Hz on your side — that is enough to build a chain from, and you keep control over how far to take each move.

Pro tip

Matchering makes one pass and applies loudness, spectral balance, and width together. There’s no parameter to run just one of them. If you only want the top end matched, do it by hand from the comparison in Step 2.


Step 4: Apply processing and verify

Why: After applying the mastering chain, measure again to confirm you moved in the right direction and didn’t introduce new problems.

You can apply the mastering chain manually in your DAW and export, or use apply_processing to apply it directly:

Prompt:

Apply the recommended mastering chain to mix-final.wav: +1.8 dB shelf at 10 kHz, -1.0 dB at 350 Hz, +0.8 dB at 4 kHz, then +2.7 dB gain, limit sample peaks and check the written true peak. Save as mastered-v1.wav

apply_processing executes the chain in order and writes the result to a new file under Phantom’s output directory (~/.phantom/output unless you set PHANTOM_OUTPUT_DIR). Requires the processing extra (uv tool install "phantom-audio[processing]" --python 3.13 --force). Your original stays untouched.

Then verify:

Prompt:

Compare my master at mastered-v1.wav against the reference — did I close the gap?

Illustrative summary:

Reference Comparison (after mastering) Your file: mastered-v1.wav Reference: reference-track.wav

Loudness: Yours: -12.8 LUFS Reference: -12.4 LUFS Difference: -0.4 LUFS (very close)

Spectrum: Band comparison: 31 Hz: -0.2 dB vs ref 62 Hz: +0.4 dB vs ref 125 Hz: +0.3 dB vs ref (was +1.1) 250 Hz: +0.2 dB vs ref (was +0.9) 500 Hz: +0.1 dB vs ref 1 kHz: 0.0 dB vs ref 2 kHz: -0.1 dB vs ref 4 kHz: -0.2 dB vs ref (was -0.8) 8 kHz: -0.4 dB vs ref (was -1.3) 16 kHz: -0.6 dB vs ref (was -1.9)

Decision point: Every band is now within a few tenths of a dB of the reference, where the top end was more than a dB dark before. The remaining -0.6 dB at 16 kHz is minor and may be intentional — your mix has a slightly warmer character. Decide if you want to push closer or accept it.


Step 5: Final quality check

Why: Before declaring the master done, run problem detection to catch anything the mastering processing might have introduced — particularly true peak violations and clipping from the limiter.

Prompt:

Run a final quality check on mastered-v1.wav — check for true peak violations, clipping, and any problems introduced by mastering

Illustrative final review:

True peak: -0.9 dBTP. Delivery brief: at or below -1.0 dBTP. Reduce gain slightly and measure the next render.

Run analyze_loudness to check the ceiling and detect_problems for its supported detectors. Use analyze_phase separately for phase checks. These tools do not return a distribution certificate or timestamps for every flagged issue.

Pro tip

Keep the original and compare at matched playback levels. A closer reference match is useful only if the processing also serves the song.


Quick Reference

  1. Compare my mix to a [genre] profile -- how does it measure up?
  2. Compare my mix against [reference] -- show me the differences
  3. Give me specific EQ, loudness, and width recommendations to match the reference
  4. Apply the recommended mastering chain to [file] and save as [output]
  5. Run a final quality check on [master] -- check for problems

Next Steps