From bitwize-music
Moves audio files (WAV, MP3, FLAC, stems zips) to structured album directories using bash and resolved paths. Handles Suno downloads and per-track stems extraction.
npx claudepluginhub bitwize-music-studio/claude-ai-music-skills --plugin bitwize-musicThis skill is limited to using the following tools:
**Input**: $ARGUMENTS
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Input: $ARGUMENTS
Import an audio file (WAV, MP3, etc.) to the correct album location based on config.
You move audio files to the correct location in the user's audio directory.
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-tasteIf 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
resolve_path("audio", album_slug) — returns the full audio directory path{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.
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.
mkdir -p {resolved_path}
mv "{source_file}" "{resolved_path}/{filename}"
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:
01-first-taste-stems.zip → 01-first-taste)/import-audio stems.zip sample-album 01-first-taste)mkdir -p {resolved_path}/stems/{track-slug}
unzip "{source_file}" -d "{resolved_path}/stems/{track-slug}"
update_track_field(album_slug, track_slug, "stems", "Yes")Argument format for stems: <zip-path> <album-name> [track-slug]
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 → Yes
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)
Suno allows downloading in both WAV and MP3 formats. Always prefer WAV for mastering quality.
If the user provides an MP3 file:
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.
Supported formats: WAV (preferred), MP3, FLAC, OGG, M4A
/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
/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
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.
Path comparison:
{content_root}/artists/{artist}/albums/{genre}/{album}/ (markdown, lyrics){audio_root}/artists/{artist}/albums/{genre}/{album}/ (WAV files, stems){documents_root}/artists/{artist}/albums/{genre}/{album}/ (PDFs, research)Use resolve_path with the appropriate path_type ("content", "audio", "documents") to get the right path.