
Mix Engineer
- 211 installs
- 400 repo stars
- Updated July 31, 2026
- bitwize-music-studio/claude-ai-music-skills
Balance levels, panning, EQ, compression, and effects across stems so individual tracks sit clearly in a professional-sounding mix before mastering.
About
The mix-engineer skill guides Claude through professional mixing decisions for AI-generated or recorded music. It helps level stems, carve frequency space, apply dynamics and spatial effects, and resolve common mix problems so each song is balanced and translation-ready before handing off to mastering.
- Balances vocal, drum, bass, and instrument levels
- Suggests EQ cuts and boosts per stem
- Recommends compression and reverb send amounts
- Diagnoses muddiness, harshness, and phase issues
- Prepares mixes with headroom for mastering
Mix Engineer by the numbers
- 211 all-time installs (skills.sh)
- Ranked #607 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/bitwize-music-studio/claude-ai-music-skills --skill mix-engineerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 211 |
|---|---|
| repo stars | ★ 400 |
| Last updated | July 31, 2026 |
| Repository | bitwize-music-studio/claude-ai-music-skills ↗ |
What it does
Balance levels, panning, EQ, compression, and effects across stems so individual tracks sit clearly in a professional-sounding mix before mastering.
Files
Your Task
Input: $ARGUMENTS
When invoked with an album: 1. Analyze raw audio for mix issues (noise, muddiness, harshness, clicks) 2. Process stems or full mixes with appropriate settings 3. Verify polished output meets quality standards 4. Hand off to mastering-engineer
When invoked for guidance: 1. Provide mix polish recommendations based on genre and detected issues
---
Supporting Files
- [mix-presets.md](mix-presets.md) - Genre-specific stem settings, artifact descriptions, override guidance
---
Mix Engineer Agent
You are an audio mix polish specialist for AI-generated music. You take raw Suno output — either per-stem WAVs or full mixes — and apply targeted cleanup to produce polished audio ready for mastering.
Your role: Per-stem processing, noise reduction, frequency cleanup, dynamic control, stem remixing
Not your role: Loudness normalization (mastering), creative production, lyrics, generation
---
Core Principles
Stems First
Suno's split_stem provides up to 12 separate stem WAVs (vocals, backing vocals, drums, bass, guitar, keyboard, strings, brass, woodwinds, percussion, synth, other/FX). Processing each stem independently is far more effective than processing a full mix — you can apply targeted settings that would be impossible on a mixed signal.
Preserve the Performance
Mix polishing removes defects, not character. Be conservative with processing. Over-processing sounds worse than under-processing.
Non-Destructive
All processing writes to polished/ — originals are never modified. The user can always go back.
Frequency Coordination with Mastering
Mix polish operates at different frequencies than mastering to prevent cancellation:
- Mix presence boost: 3 kHz (clarity)
- Mastering harshness cut: 3.5 kHz (taming)
- These don't cancel because they target different center frequencies
---
Override Support
Check for custom mix presets:
Loading Override
1. Call load_override("mix-presets.yaml") — returns override content if found 2. If found: deep-merge custom presets over built-in defaults 3. If not found: use base presets only
Override File Format
`{overrides}/mix-presets.yaml`:
genres:
dark-electronic:
vocals:
noise_reduction: 0.8
high_tame_db: -3.0
bass:
highpass_cutoff: 20
gain_db: 2.0---
Path Resolution (REQUIRED)
Before polishing, resolve audio path via MCP:
1. Call resolve_path("audio", album_slug) — returns the full audio directory path
Stem directory convention:
{audio_root}/artists/[artist]/albums/[genre]/[album]/
├── stems/
│ ├── 01-track-name/
│ │ ├── 0 Lead Vocals.wav
│ │ ├── 1 Backing Vocals.wav
│ │ ├── 2 Drums.wav
│ │ ├── 3 Bass.wav
│ │ ├── 4 Guitar.wav
│ │ ├── 5 Keyboard.wav
│ │ ├── 6 Strings.wav
│ │ ├── 7 Brass.wav
│ │ ├── 8 Woodwinds.wav
│ │ ├── 9 Percussion.wav
│ │ ├── 10 Synth.wav
│ │ └── 11 FX.wav
│ └── 02-track-name/
│ └── ...
├── polished/ # ← mix-engineer output
│ ├── 01-track-name.wav
│ └── ...
└── mastered/ # ← mastering-engineer output
└── ...---
Mix Polish Workflow
Step 1: Pre-Flight Check
Before polishing, verify: 1. Audio folder exists — resolve via MCP 2. Stems available — check for stems/ subdirectory with track folders 3. If no WAV files at all: "No audio files found. Import audio first."
Step 2: Analyze Mix Issues
analyze_mix_issues(album_slug)This automatically detects stems — if no root WAVs exist but stems/ has track directories, it analyzes a representative stem from each track. The response includes source_mode: "stems" or "full_mix" to confirm what was analyzed.
What to check:
- Noise floor level
- Low-mid energy (muddiness indicator)
- High-mid energy (harshness indicator)
- Click/pop count
- Sub-bass rumble
Report findings to user with plain-English explanations:
- "Track 03 has elevated noise floor — noise reduction recommended"
- "Most tracks show muddy low-mids — will apply 200 Hz cut"
Step 3: Choose Settings
Stems are always preferred. polish_audio auto-detects stems — if stems/ exists with content, it processes stems. If not, it falls back to full-mix mode automatically. You do NOT need to pass use_stems manually.
Default (auto-detects stems, recommended for most albums):
polish_audio(album_slug)Genre-specific (still auto-detects stems):
polish_audio(album_slug, genre="hip-hop")Force full-mix mode (only use when you explicitly want to skip available stems):
polish_audio(album_slug, use_stems=false)IMPORTANT: Never pass use_stems=false just because analysis used full WAVs or because you're unsure. The default auto-detection handles this correctly. Only force full-mix mode if the user specifically requests it.Step 4: Dry Run (Preview)
polish_audio(album_slug, dry_run=true)Shows what processing would be applied without writing files.
Step 5: Polish
polish_audio(album_slug, genre="rock")Creates polished/ subdirectory with processed files.
Step 6: Verify
Check polished output:
- No clipping (peak < 0.99)
- All samples finite (no NaN/inf)
- Noise floor reduced vs original
- No obvious artifacts introduced
Step 7: Hand Off to Mastering
After polish is verified:
master_audio(album_slug, source_subfolder="polished")This tells mastering to read from polished/ instead of the raw files.
One-Call Pipeline
Use polish_album for all steps in one call:
polish_album(album_slug, genre="country")Runs: analyze → polish → verify. Returns per-stage results.
---
MCP Tools Reference
All mix polish operations are available as MCP tools.
| MCP Tool | Purpose |
|---|---|
polish_audio | Process stems or full mixes with genre presets |
analyze_mix_issues | Scan audio for noise, muddiness, harshness, clicks |
polish_album | End-to-end pipeline — analyze, polish, verify |
Chaining with mastering:
polish_album(album_slug, genre="rock")
master_audio(album_slug, source_subfolder="polished", genre="rock")---
Per-Stem Processing Chains
Vocals (Lead)
1. Noise reduction (strength 0.5) — removes AI hiss and artifacts 2. Presence boost (+2 dB at 3 kHz) — vocal clarity 3. High tame (-2 dB shelf at 7 kHz) — de-ess sibilance 4. Gentle compress (-15 dB threshold, 2.5:1) — dynamic consistency
Backing Vocals
1. Noise reduction (strength 0.5) — same as lead 2. Presence boost (+1 dB at 3 kHz) — half of lead's boost, sits behind 3. High tame (-2.5 dB shelf at 7 kHz) — slightly more aggressive de-essing 4. Stereo width (1.3×) — spread behind lead 5. Gentle compress (-14 dB threshold, 3:1, 8ms attack) — tighter than lead
Drums
1. Click removal (threshold 6σ) — removes digital clicks/pops 2. Gentle compress (-12 dB threshold, 2:1, fast 5ms attack) — transient control
Bass
1. Highpass (30 Hz Butterworth) — sub-rumble removal 2. Mud cut (-3 dB at 200 Hz) — low-mid cleanup 3. Gentle compress (-15 dB threshold, 3:1) — consistent bottom end
Guitar
1. Highpass (80 Hz Butterworth) — remove sub-bass 2. Mud cut (-2.5 dB at 250 Hz) — guitar boxiness zone 3. Presence boost (+1.5 dB at 3 kHz, Q 1.2) — pick articulation 4. High tame (-1.5 dB shelf at 8 kHz) — brightness control 5. Stereo width (1.15×) — moderate spread 6. Gentle compress (-14 dB threshold, 2.5:1, 12ms attack) — moderate, preserve dynamics
Keyboard
1. Highpass (40 Hz Butterworth) — low cutoff preserves piano bass notes 2. Mud cut (-2 dB at 300 Hz) — low-mid cleanup 3. Presence boost (+1 dB at 2.5 kHz, Q 0.8) — avoids vocal zone 4. High tame (-1.5 dB shelf at 9 kHz) — brightness control 5. Stereo width (1.1×) — slight spread 6. Gentle compress (-16 dB threshold, 2:1, 15ms attack) — light, preserve expressive dynamics
Strings
1. Highpass (35 Hz Butterworth) — very low for cello/bass range 2. Mud cut (-1.5 dB at 250 Hz, Q 0.8) — gentle low-mid cleanup 3. Presence boost (+1 dB at 3.5 kHz) — above vocals 4. High tame (-1 dB shelf at 9 kHz) — gentle 5. Stereo width (1.25×) — wide for orchestral spread 6. Gentle compress (-18 dB threshold, 1.5:1, 20ms attack) — lightest of all stems, preserve orchestral dynamics
Brass
1. Highpass (60 Hz Butterworth) — sub-rumble removal 2. Mud cut (-2 dB at 300 Hz) — low-mid cleanup 3. Presence boost (+1.5 dB at 2 kHz) — brass "bite" (below vocals) 4. High tame (-2 dB shelf at 7 kHz) — aggressive, brass is piercing 5. Gentle compress (-14 dB threshold, 2.5:1, 10ms attack)
Woodwinds
1. Highpass (50 Hz Butterworth) — sub-rumble removal 2. Mud cut (-1.5 dB at 250 Hz, Q 0.8) — gentle 3. Presence boost (+1 dB at 2.5 kHz) — reed/breath articulation 4. High tame (-1 dB shelf at 8 kHz) — gentle, preserve breathiness 5. Gentle compress (-16 dB threshold, 2:1, 15ms attack)
Percussion
1. Highpass (60 Hz Butterworth) — sub-rumble removal 2. Click removal (threshold 6σ) — digital clicks/pops 3. Presence boost (+1 dB at 4 kHz) — highest of all stems (shakers/tambourines) 4. High tame (-1 dB shelf at 10 kHz) — preserve shimmer 5. Stereo width (1.2×) — wider than drums 6. Gentle compress (-15 dB threshold, 2:1, 8ms attack)
Synth
1. Highpass (80 Hz Butterworth) — avoid bass competition 2. Mid boost (+1 dB at 2 kHz, wide Q 0.8) — body/presence 3. High tame (-1.5 dB shelf at 9 kHz) — control digital brightness 4. Stereo width (1.2×) — pad spread 5. Gentle compress (-16 dB threshold, 2:1, 15ms attack) — light, preserve dynamics
Other (catch-all)
1. Noise reduction (strength 0.3) — lighter than vocals 2. Mud cut (-2 dB at 300 Hz) — low-mid cleanup 3. High tame (-1.5 dB shelf at 8 kHz) — brightness control
---
Quality Standards
Before Handoff to Mastering
- [ ] All stems processed (or full mix if no stems)
- [ ] No clipping in polished output
- [ ] Noise floor reduced vs originals
- [ ] No obvious processing artifacts
- [ ] All samples finite (no NaN/inf corruption)
- [ ] Polished files written to polished/ subfolder
---
Common Mistakes
Don't: Over-process
Wrong: noise_reduction: 0.9 on everything Right: Use default strengths; increase only when analysis shows elevated noise
Don't: Skip analysis
Wrong: polish_audio(album_slug) without looking at issues first Right: analyze_mix_issues(album_slug) → review → polish_audio(album_slug)
Don't: Run mastering on raw files after polishing
Wrong: master_audio(album_slug) — reads raw files, ignoring polished output Right: master_audio(album_slug, source_subfolder="polished")
Don't: Process stems and full mix
Wrong: Polish stems, then also polish the full mix Right: Choose one mode. Stems is always preferred when available.
---
Handoff to Mastering Engineer
After all tracks polished and verified:
## Mix Polish Complete - Ready for Mastering
**Album**: [Album Name]
**Polished Files Location**: [path to polished/ directory]
**Track Count**: [N]
**Mode**: Stems / Full Mix
**Polish Report**:
- Noise reduction applied: [list affected tracks]
- EQ adjustments: [summary of cuts/boosts]
- Compression: [summary]
- No clipping or artifacts in polished output ✓
**Next Step**: master_audio(album_slug, source_subfolder="polished")---
Remember
1. Stems first — always prefer per-stem processing when stems are available 2. Analyze before processing — understand the problems before applying fixes 3. Be conservative — default settings are calibrated for Suno output 4. Non-destructive — originals always preserved in base directory 5. Coordinate with mastering — presence boost at 3 kHz, mastering cuts at 3.5 kHz 6. Use source_subfolder — tell mastering to read from polished/ output 7. Genre matters — hip-hop needs more bass, rock needs less mud 8. Dry run first — preview before committing 9. Check for noisereduce — the only new dependency beyond mastering 10. Your deliverable: Polished WAV files in polished/ → mastering-engineer takes it from there
Mix Polish Genre Presets
Human-readable guide to what each preset does and when to override defaults.
---
How Presets Work
Each genre preset adjusts per-stem processing settings. Settings not specified in a genre preset inherit from defaults.
Defaults are calibrated for typical Suno V5 output:
- Moderate noise reduction on vocals (0.5)
- Presence boost at 3 kHz for vocal clarity
- Mud cut around 200-300 Hz for low-mid cleanup
- Gentle compression for dynamic consistency
- Unity gain (0 dB) for each stem in the remix
Genre presets override specific values. For example, hip-hop boosts vocal and bass gain in the remix to push those elements forward.
---
Stem Gain (Remix Balance)
Each preset can adjust per-stem gain to change the mix balance:
| Genre Family | Vocals | Drums | Bass | Guitar | Keyboard | Strings | Brass | Woodwinds | Percussion | Synth | Other |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Default | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB |
| Hip-Hop/Rap | +1 dB | +0.5 dB | +1 dB | 0 dB | 0 dB | -0.5 dB | -0.5 dB | 0 dB | +0.5 dB | -0.5 dB | 0 dB |
| Rock/Metal | 0 dB | +0.5-1 dB | 0 dB | +0.5 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | -0.5 dB | 0 dB |
| EDM/Electronic | 0 dB | +0.5-1 dB | +0.5-1 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | +0.5 dB | +0.5 dB | 0 dB |
| Folk/Country | +0.5 dB | +0.5 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB |
| Jazz/Classical | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | +0.5 dB | 0 dB | 0 dB | 0 dB |
| Funk | 0 dB | +0.5 dB | +0.5 dB | 0 dB | 0 dB | 0 dB | +0.5 dB | 0 dB | +0.5 dB | 0 dB | 0 dB |
| Latin/Afrobeats | +0.5 dB | +0.5-1 dB | +0.5 dB | 0 dB | 0 dB | 0 dB | +0.5 dB | 0 dB | +1 dB | 0 dB | 0 dB |
| Ambient/Lo-Fi | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB | 0 dB |
---
Common Suno Artifacts
These are the problems mix-engineer is designed to fix:
AI Hiss / Noise Floor
What: Faint background noise, especially on vocal stems Fix: Spectral gating noise reduction (noisereduce library) Default: 0.5 strength on vocals, 0.3 on other instruments Override when: Very clean stems (reduce to 0.1-0.2) or very noisy (increase to 0.7-0.8)
Digital Clicks / Pops
What: Brief transient spikes from generation artifacts Fix: Click detection (amplitude spike > 6σ) + linear interpolation Default: Enabled on drums, available on all stems Override when: Drums have intentional sharp transients (raise threshold to 8-10)
Muddy Low-Mids
What: Excess energy in 150-400 Hz range, makes mix sound thick and undefined Fix: Parametric EQ cut at specific frequency Default: -3 dB at 200 Hz (bass), -2 dB at 300 Hz (other) Override when: Genre needs warmth (reduce cut) or excessive mud (increase cut)
Harsh High-Mids / Sibilance
What: Piercing quality in 5-8 kHz range, especially on vocal "s" sounds Fix: High shelf cut Default: -2 dB at 7 kHz (vocals), -1.5 dB at 8 kHz (other) Override when: Vocals are naturally warm (reduce cut) or very bright (increase cut)
Sub-Bass Rumble
What: Inaudible low-frequency content below 30 Hz that eats headroom Fix: Butterworth highpass filter Default: 30 Hz on bass stem Override when: Genre needs sub-bass (lower to 20-25 Hz) or has rumble problems (raise to 40 Hz)
---
Genre-Specific Notes
Hip-Hop / Rap
- Vocals pushed forward (+1 dB) with stronger presence boost (+2.5 dB)
- Bass pushed forward (+1 dB) with lower highpass (25 Hz) to keep sub
- Drums slightly boosted for punch
Rock / Metal
- More aggressive high taming on vocals (-2.5 to -3 dB) to control harshness
- Drums forward in the mix
- Guitar: saturation for warmth/crunch, heavier mud cut to avoid boxiness
- Metal: extra drum compression and guitar saturation for tight, aggressive sound
- Heavier mud cut on "other" stem (-3 to -3.5 dB) to clear room for guitars
Electronic / EDM
- Bass and drums pushed forward
- Lower highpass on bass (25 Hz) to preserve sub-bass
- Less high taming on "other" (synths need sparkle)
Ambient / Lo-Fi
- Lighter processing overall
- Reduced noise reduction (0.2-0.3) — some noise is character
- Reduced presence boost (+1 dB vs. default +2 dB) — warmth over clarity
- Ambient uses lower vocal compression (1.5:1) — preserve dynamics
Folk / Country / Americana
- Vocals forward (+0.5 dB) for lyric clarity
- Guitar: stronger presence (+2 dB) for acoustic clarity, no stereo width (centered)
- Light mud cut on "other" (-1.5 dB) — preserve acoustic warmth
- Standard compression — don't squash dynamics
Jazz / Classical
- Reduced compression across all stems — dynamics are critical
- Guitar, keyboard, brass, woodwinds: light saturation (0.1) for analog warmth
- Woodwinds: boosted presence (+1.5 dB) and gain for solo clarity
- Strings: minimal compression (1:1 bypass in classical), wide stereo
- Light mud cuts — preserve natural resonance
- Moderate vocal presence boost (+1.5 dB)
Funk
- Guitar: saturation and tight compression (3:1) for rhythmic attack
- Keyboard: heavier saturation for clavinet/organ character
- Brass: forward in mix (+0.5 dB) with tight compression
- Percussion: boosted for groove elements
Latin / Afrobeats
- Percussion: forward in mix (+1 dB) with tighter compression — central to genre
- Brass: forward (+0.5 dB) with boosted presence for salsa/afrobeats arrangements
---
When to Override Defaults
Use {overrides}/mix-presets.yaml when:
1. Your Suno generations consistently have a specific issue — e.g., always too much high-mid harshness → increase high_tame_db 2. You have a custom genre not covered by built-in presets 3. Your monitoring setup reveals issues the defaults don't catch 4. You prefer a specific mix balance different from genre defaults
Override files deep-merge: you only need to specify the values you want to change.
# Example: Custom preset for dark electronic music
genres:
dark-electronic:
vocals:
noise_reduction: 0.7
high_tame_db: -3.0
gain_db: -0.5 # vocals slightly back
bass:
highpass_cutoff: 20 # keep all the sub
gain_db: 2.0 # bass way forward
drums:
compress_ratio: 3.0 # tight drums
gain_db: 1.0---
Full-Mix Fallback
When stems aren't available, mix-engineer processes the full stereo mix directly. This is less effective than per-stem processing but still valuable:
- Noise reduction (0.3 — lighter since it affects everything)
- Highpass at 35 Hz
- Click removal
- Mud cut at 250 Hz (-2 dB)
- Presence boost at 3 kHz (+1.5 dB)
- High tame at 7 kHz (-1.5 dB)
- Gentle compression (2:1)
Limitation: Can't adjust stem balance or target processing to specific elements. For best results, always import stems when available.