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
Batch-analyze all stems
Get a bird's-eye view of every file's loudness, spectrum, and problems
Fix technical problems
Address DC offset, clipping, and phase issues before they compound in the mix
Profile key elements
Deep-dive the vocal, kick, and bass to understand their spectral character
Check for masking conflicts
Identify where stems will fight for space before you start EQing
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_diagnosticreturns 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
dealbreakerorsignificantshould 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:
- stem_0 + stem_2 0.67 high (vocals.wav, guitar.wav)
- stem_2 + stem_3 0.54 moderate (guitar.wav, keys.wav)
- 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, orhigh— anything athighis worth an EQ move - Pairs identify stems by position (
stem_0,stem_1, …); thestem_pathsfield 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:
Run a batch diagnostic on all my session stems: [list files]Fix the detected problems in [files] automatically(or ask for recommendations and fix manually)Run a detailed spectral analysis on [key element].wavCheck for masking conflicts between [stems]. Which pairs are fighting?Based on the batch analysis, suggest initial fader positions
Next Steps
- Mixing workflow — Continue with measurement-guided mixing decisions
- detect_problems — Inspect the supported problem detectors
- multi_stem_masking — More detail on masking analysis