Polishes raw Suno audio by processing per-stem WAVs (vocals, backing_vocals, drums, bass, guitar, keyboard, strings, brass, woodwinds, percussion, synth, other) with targeted cleanup, EQ, and compression, then remixing into a polished stereo WAV ready for mastering. Use after audio import and before mastering.
npx skills add https://github.com/bitwize-music-studio/claude-ai-music-skills --skill mix-engineer
Input: $ARGUMENTS
When invoked with an album:
When invoked for guidance:
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
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.
> Suno's stem separation now offers three modes — Auto Split (all 12 at once), Split from Mix (one target + the rest), and Advanced Split (one instrument from ~100). For a single clean stem, Split from Mix often beats pulling all 12. See ${CLAUDE_PLUGIN_ROOT}/reference/suno/v5-best-practices.md § Stem Extraction.
Mix polishing removes defects, not character. Be conservative with processing. Over-processing sounds worse than under-processing.
All processing writes to polished/ — originals are never modified. The user can always go back.
Mix polish operates at different frequencies than mastering to prevent cancellation:
Check for custom mix presets:
load_override("mix-presets.yaml") — returns override content if found{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
Before polishing, resolve audio path via MCP:
resolve_path("audio", album_slug) — returns the full audio directory pathStem 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
└── ...
Before polishing, verify:
stems/ subdirectory with track foldersanalyze_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:
Report findings to user with plain-English explanations:
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.
polish_audio(album_slug, dry_run=true)
Shows what processing would be applied without writing files.
polish_audio(album_slug, genre="rock")
Creates polished/ subdirectory with processed files.
Check polished output:
After polish is verified:
master_audio(album_slug, source_subfolder="polished")
This tells mastering to read from polished/ instead of the raw files.
Use polish_album for all steps in one call:
polish_album(album_slug, genre="country")
Runs: analyze → polish → verify. Returns per-stage results.
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")
Wrong: noise_reduction: 0.9 on everything
Right: Use default strengths; increase only when analysis shows elevated noise
Wrong: polish_audio(album_slug) without looking at issues first
Right: analyze_mix_issues(album_slug) → review → polish_audio(album_slug)
Wrong: master_audio(album_slug) — reads raw files, ignoring polished output
Right: master_audio(album_slug, source_subfolder="polished")
Wrong: Polish stems, then also polish the full mix
Right: Choose one mode. Stems is always preferred when available.
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")
10. Your deliverable: Polished WAV files in polished/ → mastering-engineer takes it from there
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.
Microscopy data management platform. Access images via Python, retrieve datasets, analyze pixels, manage ROIs/annotations, batch processing, for high-content screening and microscopy workflows.
Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
This skill should be used when working with pre-trained transformer models for natural language processing, computer vision, audio, or multimodal tasks. Use for text generation, classification, question answering, translation, summarization, image classification, object detection, speech recognition, and fine-tuning models on custom datasets.
Take bitwize-music-studio/mix-engineer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.