Skip to content

Pre-mix Diagnostics

A systematic workflow for analyzing your raw recordings before you start mixing. You’ll identify technical problems, understand your material’s characteristics, and develop a mixing plan based on actual measurements.

When to use this

  • Starting a new mix session with unfamiliar material
  • Receiving stems from a client or collaborator
  • Before opening your DAW — understand what you’re working with

Workflow Overview

1

Batch-analyze all stems

Get a bird's-eye view of every file's loudness, spectrum, and problems

2

Fix technical problems

Address DC offset, clipping, and phase issues before they compound in the mix

3

Profile key elements

Deep-dive the vocal, kick, and bass to understand their spectral character

4

Check for masking conflicts

Identify where stems will fight for space before you start EQing

5

Establish gain staging

Set relative levels based on measurements, not guesswork


Step 1: Batch-analyze all stems

Why: Before touching individual tracks, you want to know what you’re dealing with across the entire session — relative levels, any obvious problems, and the general character of each element.

Prompt:

Run a batch diagnostic on all my session stems: vocals.wav, drums.wav, bass.wav, guitar-L.wav, guitar-R.wav, keys.wav, strings.wav

Illustrative summary:

Batch Diagnostic: 7 files

vocals.wav Loudness: -18.4 LUFS | Peak: -3.2 dB | Centroid: 2,847 Hz Problems: significant sibilance at 6.8 kHz

drums.wav Loudness: -12.1 LUFS | Peak: -0.4 dB | Centroid: 1,423 Hz Problems: None

bass.wav Loudness: -16.7 LUFS | Peak: -2.8 dB | Centroid: 185 Hz Problems: moderate mud 200-350 Hz

guitar-L.wav Loudness: -19.2 LUFS | Peak: -5.1 dB | Centroid: 2,102 Hz Problems: None

guitar-R.wav Loudness: -19.0 LUFS | Peak: -5.3 dB | Centroid: 2,098 Hz Problems: None

keys.wav Loudness: -20.3 LUFS | Peak: -6.1 dB | Centroid: 3,102 Hz Problems: None

strings.wav Loudness: -22.1 LUFS | Peak: -8.4 dB | Centroid: 1,890 Hz Problems: minor DC offset +0.002

What to look for:

  • batch_diagnostic returns one full diagnostic per stem and a stem count. It does not compare stems against each other, so the loudness spread above is something you or your assistant reads off the per-file numbers
  • A large loudness range between stems (>12 LUFS) suggests inconsistent recording levels
  • Anything at dealbreaker or significant should be fixed before mixing
  • Note the spectral centroids — they tell you the “brightness center” of each element

Note

If the stems don’t all share a sample rate, batch_diagnostic flags it as a dealbreaker on every stem in the batch, not just the odd one out. Resample before you go further.


Step 2: Fix technical problems

Why: Technical issues compound in a mix. DC offset eats headroom, sibilance gets harsher with compression, and phase problems cause unpredictable cancellation. Fix at the source.

Based on Step 1’s results, you’ve got two options: ask for recommendations and fix manually in your DAW, or use fix_audio to apply corrections automatically.

Option A: Get recommendations and fix manually

Prompt:

What should I do about the sibilance in vocals.wav, the mud in bass.wav, and the DC offset in strings.wav? Give me specific fixes.

Your AI assistant will recommend specific processing for each issue:

  • Sibilance in vocals: De-esser targeting 6-8 kHz, threshold set to catch only the harsh peaks
  • Mud in bass: High-pass at 30 Hz + gentle 2 dB cut at 250-350 Hz with wide Q
  • DC offset in strings: Apply DC offset removal (zero-cost fix, no sonic impact)

Option B: Auto-fix with fix_audio

Prompt:

Fix the detected problems in vocals.wav, bass.wav, and strings.wav automatically

fix_audio applies corrective EQ and filtering based on what detect_problems found. Corrected files are written into Phantom’s output directory (~/.phantom/output by default, or wherever you point PHANTOM_OUTPUT_DIR), never over your originals. Requires the processing extra (uv tool install "phantom-audio[processing]" --python 3.13 --force).

Pro tip

Fix problems on the source files (or at the top of your plugin chain) before any other processing. If you EQ after a de-esser, you won’t reintroduce the problem.


Step 3: Profile key elements

Why: Your vocal, kick, and bass define the mix’s foundation. Understanding their spectral character tells you where they naturally sit and where conflicts will arise.

Prompt:

Run a detailed spectral analysis on vocals.wav — I want to know where the energy is concentrated and where the character lives

Illustrative summary:

Spectral Analysis: vocals.wav Centroid: 2,847 Hz Rolloff: 8.2 kHz (85th percentile) Flatness: 0.0012 Contrast: [0.61, 0.70, 0.65, 0.59]

Octave Band Energy: 31_hz: -48.6 dB 62_hz: -42.1 dB 125_hz: -28.9 dB 250_hz: -18.3 dB 500_hz: -14.5 dB 1000_hz: -12.7 dB 2000_hz: -13.9 dB 4000_hz: -16.4 dB 8000_hz: -22.8 dB 16000_hz: -31.2 dB

What to look for:

  • Where is the vocal’s energy concentrated? (Here: 500 Hz - 2 kHz)
  • How bright is it? (Centroid 2.8 kHz = moderately bright)
  • Is there energy where it shouldn’t be? (Low end at -18 dB — consider high-passing)

Repeat for kick and bass to understand the full low-end picture.


Step 4: Check for masking conflicts

Why: Before you start making EQ moves, know which stems are competing. Masking analysis tells you exactly where to carve instead of guessing.

Prompt:

Check for masking conflicts between all my main stems — vocals, guitar, keys, and bass. Which pairs are fighting?

Illustrative summary:

Multi-stem Masking Analysis: 4 stems, 6 pairs

Pairs ranked by severity:

  1. stem_0 + stem_2 0.67 high (vocals.wav, guitar.wav)
  2. stem_2 + stem_3 0.54 moderate (guitar.wav, keys.wav)
  3. stem_1 + stem_2 0.41 moderate (bass.wav, guitar.wav)

Each pair carries a per-octave band breakdown.

What to look for:

  • Pairs come back sorted worst-first, so the top of the list is where to start
  • Each band is labelled none, low, moderate, or high — anything at high is worth an EQ move
  • Pairs identify stems by position (stem_0, stem_1, …); the stem_paths field maps those back to filenames

Pro tip

Write down the masking results before opening your EQ. It’s your surgical plan. Instead of sweeping randomly for problems, you know exactly which frequencies to cut on which tracks.


Step 5: Establish gain staging

Why: Starting with roughly balanced levels (based on measurements, not just ear) gives you a better foundation. You’ll make finer adjustments by ear, but measurements prevent large imbalances.

Prompt:

Based on the batch analysis, suggest initial fader positions to get all stems roughly balanced before I start mixing

Your AI assistant will recommend relative gain adjustments based on the loudness data from Step 1. For example:

  • Drums are 6 LUFS louder than vocals — pull drums down or bring vocals up
  • Strings are 10 LUFS quieter than drums — typical for background elements, but verify intent

Quick Reference

All prompts from this workflow, ready to copy:

  1. Run a batch diagnostic on all my session stems: [list files]
  2. Fix the detected problems in [files] automatically (or ask for recommendations and fix manually)
  3. Run a detailed spectral analysis on [key element].wav
  4. Check for masking conflicts between [stems]. Which pairs are fighting?
  5. Based on the batch analysis, suggest initial fader positions

Next Steps