/import-audio
Moves audio files to the correct album location with proper path structure. Use when the user has downloaded WAV files from Suno or other sources that need to be organized.
$ npx -y skills add bitwize-music-studio/claude-ai-music-skills --skill import-audio --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/import-audio
Context preview
The summary Claude sees to decide when to auto-load this skill.
Moves audio files to the correct album location with proper path structure. Use when the user has downloaded WAV files from Suno or other sources that need to be organized.
SKILL.md
import-audio.SKILL.mdname: import-audio
description: Moves audio files to the correct album location with proper path structure. Use when the user has downloaded WAV files from Suno or other sources that need to be organized.
argument-hint: <file-path> <album-name> [track-slug]
model: haiku
allowed-tools:
- Read
- Bash
- bitwize-music-mcp
Your Task
**Input**: $ARGUMENTS
Import an audio file (WAV, MP3, etc.) to the correct album location based on config.
---
Import Audio Skill
You move audio files to the correct location in the user's audio directory.
Step 1: Parse Arguments
Expected format: `<file-path> <album-name> [track-slug]`
The `track-slug` is optional — only needed for stems zip imports when the track can't be inferred from the filename.
Examples:
- `~/Downloads/track.wav sample-album`
- `~/Downloads/03-t-day-beach.wav sample-album`
- `~/Downloads/stems.zip sample-album 01-first-taste`
If arguments are missing, ask:
Usage: /import-audio <file-path> <album-name> [track-slug]
Examples:
/import-audio ~/Downloads/track.wav sample-album
/import-audio ~/Downloads/stems.zip sample-album 01-first-taste
Step 2: Resolve Audio Path via MCP
1. Call `resolve_path("audio", album_slug)` — returns the full audio directory path 2. The resolved path uses the mirrored structure: `{audio_root}/artists/{artist}/albums/{genre}/{album}/`
Example result: `~/bitwize-music/audio/artists/bitwize/albums/hip-hop/sample-album/`
**CRITICAL**: Always use `resolve_path` — never construct paths manually.
Step 3: Detect File Type
Check the file extension and whether it's a stems zip:
| File Type | Action | |-----------|--------| | `.wav`, `.mp3`, `.flac`, `.ogg`, `.m4a` | Move to album audio dir (Step 4) | | `.zip` (stems) | Extract to per-track stems subfolder (Step 4b) |
**How to identify a stems zip**: The user will say "stems" or the zip contains files like `0 Lead Vocals.wav`, `1 Backing Vocals.wav`, etc.
Step 4: Create Directory and Move File
mkdir -p {resolved_path}
mv "{source_file}" "{resolved_path}/{filename}"Step 4b: Import Stems Zip
Stems must go into per-track subfolders to prevent filename collisions (every track has `0 Lead Vocals.wav`, etc.):
{resolved_path}/
01-first-taste.wav
02-sugar-high.wav
stems/
01-first-taste/
0 Lead Vocals.wav
1 Backing Vocals.wav
2 Drums.wav
...
02-sugar-high/
0 Lead Vocals.wav
1 Backing Vocals.wav
...**Workflow:**
1. **Determine the track slug** from one of:
- The zip filename if it matches a track pattern (e.g., `01-first-taste-stems.zip` → `01-first-taste`)
- The user specifying which track (e.g., `/import-audio stems.zip sample-album 01-first-taste`)
- **If neither**: Ask the user which track the stems belong to
2. **Extract** into the per-track subfolder:
mkdir -p {resolved_path}/stems/{track-slug}
unzip "{source_file}" -d "{resolved_path}/stems/{track-slug}"3. **Update track metadata**: Call `update_track_field(album_slug, track_slug, "stems", "Yes")`
**Argument format for stems**: `<zip-path> <album-name> [track-slug]`
Step 5: Confirm
Report:
Moved: {source_file}
To: {resolved_path}/{filename}For stems:
Extracted stems: {source_file}
To: {resolved_path}/stems/{track-slug}/
Files: {count} stem files extracted
Updated: {track-slug} stems → YesError Handling
**Source file doesn't exist:**
Error: File not found: {source_file}**Config file missing:**
Error: Config not found at ~/.bitwize-music/config.yaml
Run /configure to set up.
**File already exists at destination:**
Warning: File already exists at destination.
Overwrite? (The original was not moved)
---
MP3 Files
Suno allows downloading in both WAV and MP3 formats. **Always prefer WAV** for mastering quality.
**If the user provides an MP3 file:**
1. Accept the MP3 and import it normally (same path logic) 2. Warn the user:
Note: This is an MP3 file. For best mastering results, download the WAV
version from Suno instead. MP3 compression removes audio data that can't
be recovered during mastering.
If WAV isn't available, this MP3 will work but mastering quality may be limited.
3. Import the file to the same destination path as WAV files
**Supported formats:** WAV (preferred), MP3, FLAC, OGG, M4A
---
Examples
/import-audio ~/Downloads/03-t-day-beach.wav sample-album
Config has:
paths:
audio_root: ~/bitwize-music/audio
artist:
name: bitwize
Result:
Moved: ~/Downloads/03-t-day-beach.wav
To: ~/bitwize-music/audio/artists/bitwize/albums/hip-hop/sample-album/03-t-day-beach.wav
Stems import example
/import-audio ~/Downloads/stems.zip sample-album 01-first-taste
Result:
Extracted stems: ~/Downloads/stems.zip
To: ~/bitwize-music/audio/artists/bitwize/albums/hip-hop/sample-album/stems/01-first-taste/
Files: 5 stem files extracted
Updated: 01-first-taste stems → Yes---
Common Mistakes
❌ Don't: Manually read config and construct paths
**Wrong:**
cat ~/.bitwize-music/config.yaml
mv file.wav ~/music-projects/audio/artists/bitwize/albums/electronic/sample-album/
**Right:**
# Use MCP to resolve the correct path
resolve_path("audio", album_slug) → returns full path with artist folder**Why it matters:** `resolve_path` reads config, resolves variables, and includes the artist folder automatically. No manual config parsing or path construction needed.
❌ Don't: Mix up content_root and audio_root
**Path comparison:**
- Content: `{content_root}/artists/{artist}/albums/{genre}/{album}/` (markdown, lyrics)
- Audio: `{audio_root}/artists/{artist}/albums/{genre}/{album}/` (WAV files, stems)
- Documents: `{documents_root}/artists/{artist}/albums/{genre}/{album}/` (PDFs, research)
Use `resolve_path` with the appropriate `path_type` ("content", "audio", "documents") to get the ri
Read more
name: import-audio description: Moves audio files to the correct album location with proper path structure. Use when the user has downloaded WAV files from Suno or other sources that need to be organized. argument-hint: <file-path> <album-name> [track-slug] model: haiku allowed-tools: - Read - Bash - bitwize-music-mcp
Your Task
**Input**: $ARGUMENTS
Import an audio file (WAV, MP3, etc.) to the correct album location based on config.
---
Import Audio Skill
You move audio files to the correct location in the user's audio directory.
Step 1: Parse Arguments
Expected format: `<file-path> <album-name> [track-slug]`
The `track-slug` is optional — only needed for stems zip imports when the track can't be inferred from the filename.
Examples:
- `~/Downloads/track.wav sample-album`
- `~/Downloads/03-t-day-beach.wav sample-album`
- `~/Downloads/stems.zip sample-album 01-first-taste`
If arguments are missing, ask:
Usage: /import-audio <file-path> <album-name> [track-slug] Examples: /import-audio ~/Downloads/track.wav sample-album /import-audio ~/Downloads/stems.zip sample-album 01-first-taste
Step 2: Resolve Audio Path via MCP
1. Call `resolve_path("audio", album_slug)` — returns the full audio directory path 2. The resolved path uses the mirrored structure: `{audio_root}/artists/{artist}/albums/{genre}/{album}/`
Example result: `~/bitwize-music/audio/artists/bitwize/albums/hip-hop/sample-album/`
**CRITICAL**: Always use `resolve_path` — never construct paths manually.
Step 3: Detect File Type
Check the file extension and whether it's a stems zip:
| File Type | Action | |-----------|--------| | `.wav`, `.mp3`, `.flac`, `.ogg`, `.m4a` | Move to album audio dir (Step 4) | | `.zip` (stems) | Extract to per-track stems subfolder (Step 4b) |
**How to identify a stems zip**: The user will say "stems" or the zip contains files like `0 Lead Vocals.wav`, `1 Backing Vocals.wav`, etc.
Step 4: Create Directory and Move File
mkdir -p {resolved_path}
mv "{source_file}" "{resolved_path}/{filename}"Step 4b: Import Stems Zip
Stems must go into per-track subfolders to prevent filename collisions (every track has `0 Lead Vocals.wav`, etc.):
{resolved_path}/
01-first-taste.wav
02-sugar-high.wav
stems/
01-first-taste/
0 Lead Vocals.wav
1 Backing Vocals.wav
2 Drums.wav
...
02-sugar-high/
0 Lead Vocals.wav
1 Backing Vocals.wav
...**Workflow:**
1. **Determine the track slug** from one of:
- The zip filename if it matches a track pattern (e.g., `01-first-taste-stems.zip` → `01-first-taste`)
- The user specifying which track (e.g., `/import-audio stems.zip sample-album 01-first-taste`)
- **If neither**: Ask the user which track the stems belong to
2. **Extract** into the per-track subfolder:
mkdir -p {resolved_path}/stems/{track-slug}
unzip "{source_file}" -d "{resolved_path}/stems/{track-slug}"3. **Update track metadata**: Call `update_track_field(album_slug, track_slug, "stems", "Yes")`
**Argument format for stems**: `<zip-path> <album-name> [track-slug]`
Step 5: Confirm
Report:
Moved: {source_file}
To: {resolved_path}/{filename}For stems:
Extracted stems: {source_file}
To: {resolved_path}/stems/{track-slug}/
Files: {count} stem files extracted
Updated: {track-slug} stems → YesError Handling
**Source file doesn't exist:**
Error: File not found: {source_file}**Config file missing:**
Error: Config not found at ~/.bitwize-music/config.yaml Run /configure to set up.
**File already exists at destination:**
Warning: File already exists at destination. Overwrite? (The original was not moved)
---
MP3 Files
Suno allows downloading in both WAV and MP3 formats. **Always prefer WAV** for mastering quality.
**If the user provides an MP3 file:**
1. Accept the MP3 and import it normally (same path logic) 2. Warn the user:
Note: This is an MP3 file. For best mastering results, download the WAV version from Suno instead. MP3 compression removes audio data that can't be recovered during mastering. If WAV isn't available, this MP3 will work but mastering quality may be limited.
3. Import the file to the same destination path as WAV files
**Supported formats:** WAV (preferred), MP3, FLAC, OGG, M4A
---
Examples
/import-audio ~/Downloads/03-t-day-beach.wav sample-album
Config has:
paths: audio_root: ~/bitwize-music/audio artist: name: bitwize
Result:
Moved: ~/Downloads/03-t-day-beach.wav To: ~/bitwize-music/audio/artists/bitwize/albums/hip-hop/sample-album/03-t-day-beach.wav
Stems import example
/import-audio ~/Downloads/stems.zip sample-album 01-first-taste
Result:
Extracted stems: ~/Downloads/stems.zip
To: ~/bitwize-music/audio/artists/bitwize/albums/hip-hop/sample-album/stems/01-first-taste/
Files: 5 stem files extracted
Updated: 01-first-taste stems → Yes---
Common Mistakes
❌ Don't: Manually read config and construct paths
**Wrong:**
cat ~/.bitwize-music/config.yaml mv file.wav ~/music-projects/audio/artists/bitwize/albums/electronic/sample-album/
**Right:**
# Use MCP to resolve the correct path
resolve_path("audio", album_slug) → returns full path with artist folder**Why it matters:** `resolve_path` reads config, resolves variables, and includes the artist folder automatically. No manual config parsing or path construction needed.
❌ Don't: Mix up content_root and audio_root
**Path comparison:**
- Content: `{content_root}/artists/{artist}/albums/{genre}/{album}/` (markdown, lyrics)
- Audio: `{audio_root}/artists/{artist}/albums/{genre}/{album}/` (WAV files, stems)
- Documents: `{documents_root}/artists/{artist}/albums/{genre}/{album}/` (PDFs, research)
Use `resolve_path` with the appropriate `path_type` ("content", "audio", "documents") to get the ri
Showing the first part of this file.
I love music but never learned an instrument. AI became the creative outlet that was always out of reach. This project started as a way to go deep on Claude Code plugin architecture, agentic workflows, multi-model orchestration, and MCP tooling.
Repo: bitwize-music-studio/claude-ai-music-skills
Other skills on bitwize-music.
- /about
Provides information about the bitwize-music plugin, its version, and its creator. Use when the user asks about the plugin, its purpose, version, or capabilities.
Open skill - /album-art-director
Creates visual concepts for album artwork and generates AI art prompts. Use during planning for concept discussion, or after all tracks are Final for actual artwork generation.
Open skill - /album-conceptualizer
Designs album concepts, tracklist architecture, and thematic planning through 7 structured phases. Use when planning a new album or reworking an existing album concept.
Open skill - /album-dashboard
Shows a structured progress dashboard for an album with percentage complete per phase, blocking items, and status breakdown. Use for a quick visual overview of album progress.
Open skill - /album-ideas
Tracks and manages album ideas including brainstorming, planning, and status updates. Use when the user wants to add, review, or organize their album idea backlog.
Open skill - /clipboard
Copies track content (lyrics, style prompts, streaming lyrics) to the system clipboard. Use when the user needs to paste lyrics or style prompts into Suno or other external tools.
Open skill

