claude-music-analyze
Analyzes audio files for BPM, musical key, loudness (LUFS), duration, format, and quality metrics. Uses ffprobe for metadata and…
Generates music from text descriptions and lyrics using ACE-Step 1.5's Python API. Creates full songs with vocals, instrumentals, or both. Supports 50+ languages, 10-600 second duration, quality presets (draft/standard/high/max), and batch generation.
$ npx -y skills add AgriciDaniel/claude-music --skill claude-music-generate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/claude-music-generateContext preview
The summary Claude sees to decide when to auto-load this skill.
Generates music from text descriptions and lyrics using ACE-Step 1.5's Python API. Creates full songs with vocals, instrumentals, or both. Supports 50+ languages, 10-600 second duration, quality presets (draft/standard/high/max), and batch generation.
name: claude-music-generate description: > Generates music from text descriptions and lyrics using ACE-Step 1.5's Python API. Creates full songs with vocals, instrumentals, or both. Supports 50+ languages, 10-600 second duration, quality presets (draft/standard/high/max), and batch generation. when_to_use: > Use when the user asks to generate music, make a song, create a track, do text-to-music, or produce new music from scratch. allowed-tools: - Bash - Read - Write
**User**: "Generate a 30-second upbeat pop instrumental I can loop"
**Command**:
bash ~/.claude/skills/claude-music/scripts/music_engine.sh \ --quality standard \ generate \ --caption "upbeat pop, catchy, synth hooks, female vocal" \ --instrumental --duration 30 --language en
**Expected JSON on stdout**:
{
"success": true,
"task_type": "text2music",
"model": "acestep-v15-turbo",
"outputs": [
{"path": "/home/$USER/Music/claude-music-output/text2music_20260416_120512_01.flac",
"seed": 137294, "size_mb": 1.83, "index": 1},
{"path": "/home/$USER/Music/claude-music-output/text2music_20260416_120512_02.flac",
"seed": 837412, "size_mb": 1.80, "index": 2}
],
"timing": {"generation_sec": 18.3},
"count": 2,
"playback_hint": "ffplay -nodisp -autoexit \"/home/$USER/Music/claude-music-output/text2music_20260416_120512_01.flac\""
}Global flags (`--quality`, `--format`, `--seed`, etc.) go BEFORE the subcommand (`generate`). Subcommand flags (`--caption`, `--duration`, etc.) go AFTER.
1. Run `bash ~/.claude/skills/claude-music/scripts/preflight.sh "" "$OUTPUT"` if output specified 2. Run `bash ~/.claude/skills/claude-music/scripts/detect_gpu.sh` to determine quality tier
# Simple instrumental bash ~/.claude/skills/claude-music/scripts/music_engine.sh generate \ --caption "upbeat electronic dance music, energetic synths, driving beat" \ --instrumental --duration 60 # Song with lyrics bash ~/.claude/skills/claude-music/scripts/music_engine.sh generate \ --caption "pop ballad, female vocal, piano, emotional" \ --lyrics "[Verse 1] Under city lights we found our way Every word you said still haunts my day [Chorus] Hold me close don't let me fall You're the only one who hears my call" \ --duration 120 --language en # High quality with thinking mode bash ~/.claude/skills/claude-music/scripts/music_engine.sh generate \ --caption "jazz fusion, saxophone, complex harmony" \ --quality high --duration 180 --bpm 110 --key "Bb major" # Quick draft — 4 variants to pick from bash ~/.claude/skills/claude-music/scripts/music_engine.sh generate \ --caption "lo-fi hip-hop, chill, atmospheric, vinyl crackle" \ --quality draft --instrumental --duration 60
| Parameter | Flag | Default | Range | Description | |-----------|------|---------|-------|-------------| | Caption | `--caption` / `-c` | required | <512 chars | Style/genre/instrument description | | Lyrics | `--lyrics` / `-l` | `""` | <4096 chars | Song lyrics with structure tags | | Instrumental | `--instrumental` | false | flag | No vocals | | Language | `--language` | `en` | ISO 639-1 | Vocal language (en, zh, ja, es, fr, etc.) | | Duration | `--duration` | 60 | 10-600 sec | Target length | | BPM | `--bpm` | auto | 30-300 | Tempo (auto = model decides) | | Key | `--key` | auto | e.g. "C major" | Musical key | | Time Sig | `--time-sig` | auto | 2/3/4/6 | Time signature | | Quality | `--quality` | standard | draft/standard/high/max | Preset | | Batch | `--batch` | 2 | 1-8 | Number of variants | | Format | `--format` | flac | flac/wav/mp3/opus/aac | Output format | | Seed | `--seed` | -1 | int | Reproducibility (-1 = random) | | Model | `--model` | auto | turbo/base/sft/xl-* | Override DiT model |
JSON to stdout with paths, seeds, timing:
{
"success": true,
"task_type": "text2music",
"outputs": [{"path": "/home/.../generate_20260416_120000_01.flac", "seed": 42}],
"playback_hint": "ffplay -nodisp -autoexit \"/path/to/file.flac\""
}1. **Start with draft quality** — generate 4 variants, pick the best direction 2. **Lock the seed** — once you find a good variant, use `--seed <value>` to reproduce it 3. **Iterate on caption** — add/remove descriptors to steer the sound 4. **Use compose first** — for vocal songs, use `/music compose` to craft proper lyrics before generating 5. **Repaint bad sections** — don't regenerate the whole song; use `/music repaint` to fix specific parts
**Formula**: `Genre + mood + instruments + vocal style + production quality`
Good: `"upbeat pop, female vocal, catchy, piano, modern production, 2020s sound"` Bad: `"a good song"` (too vague) Bad: `"ambient metal classical hip-hop"` (conflicting genres)
For detailed guidance: load `references/prompt-guide.md`
For detailed guidance: load `references/prompt-guide.md`
Make full songs on your own computer by describing them in plain words. claude-music turns Claude Code into a music studio, powered by ACE-Step 1.5. Type "make me a chill lo-fi beat" and get a finished track in about 15 seconds.
Analyzes audio files for BPM, musical key, loudness (LUFS), duration, format, and quality metrics. Uses ffprobe for metadata and…
Songwriting guide for ACE-Step music generation. Helps craft captions (style descriptions), lyrics with structure tags, and…
Creates cover versions and style transfers of existing songs using ACE-Step 1.5. Takes a reference audio file and generates a new…
Post-processing for generated music. Default path is FFmpeg loudness normalization (fast, CPU-only). Escape hatches: AI vocal…
Exports music for specific platforms with optimal format, loudness, and metadata. Supports Spotify, Apple Music, YouTube, TikTok,…
Browses, searches, and manages generated music in ~/Music/claude-music-output/. Lists recent generations, searches by date,…