Claude music compose
Songwriting guide for ACE-Step music generation. Helps craft captions (style descriptions), lyrics with structure tags, and choose optimal BPM/key/duration/time signature.From its SKILL.md
npx -y skills add AgriciDaniel/claude-music --skill claude-music-composeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
4.2 KB, as published. Nobody here has run it
claude-music-compose — Songwriting Assistant
This is a READ-ONLY reference skill. Claude uses this knowledge to help craft optimal inputs for /music generate.
Execution
This sub-skill runs in a forked context (context: fork) and delegates the actual composition planning to the music-composer agent (skills/claude-music/agents/music-composer.md). The agent returns structured JSON ready to hand to music_engine.sh generate.
The reference material below is what the agent reads when it plans. It is also what you read when the user wants to learn the conventions rather than auto-compose.
Output Format
After composing, produce these for the generate command:
- Caption (
-c): Style/genre/instruments/emotion (max 512 chars) - Lyrics (
-l): Structured lyrics with tags (max 4096 chars) - Parameters:
--duration,--bpm,--key,--time-sig,--language
Caption Crafting
Formula: Genre + mood + instruments + vocal style + production quality
Dimensions
| Dimension | Examples |
|---|---|
| Genre | pop, rock, jazz, electronic, hip-hop, R&B, folk, classical, lo-fi, synthwave |
| Mood | melancholic, uplifting, energetic, dreamy, dark, nostalgic, euphoric, intimate |
| Instruments | acoustic guitar, piano, synth pads, 808 drums, strings, brass, electric bass |
| Timbre | warm, bright, crisp, airy, punchy, lush, raw, polished |
| Era | 80s synth-pop, 90s grunge, 2010s EDM, vintage soul, modern trap |
| Production | lo-fi, high-fidelity, live recording, studio-polished, bedroom pop |
| Vocals | female vocal, male vocal, breathy, powerful, falsetto, raspy, choir |
| Rhythm | slow tempo, mid-tempo, fast-paced, groovy, driving, laid-back |
Principles
- Specific beats vague — "sad piano ballad, female breathy vocal" > "a sad song"
- Combine 3-5 dimensions — anchors the direction precisely
- Don't put BPM/key in caption — use dedicated parameters instead
- Avoid conflicting genres — "ambient metal" confuses the model
- Repetition reinforces — repeat elements you want emphasized
- Less detail = more creativity — let the model surprise you
Lyrics Structure
Tags
| Tag | Purpose |
|---|---|
[Verse] / [Verse 1] | Narrative sections |
[Chorus] | Emotional climax, hook |
[Pre-Chorus] | Build energy before chorus |
[Bridge] | Transition or elevation |
[Intro] | Opening atmosphere |
[Outro] | Ending/conclusion |
[Drop] | Electronic energy release |
[Breakdown] | Reduced instrumentation |
[Instrumental] | No vocals section |
[Guitar Solo] | Specific instrument solo |
[Fade Out] | Fade ending |
Density Rules
- ~2-3 words per second of audio
- 30s track: 60-90 words
- 60s track: 120-180 words
- 120s track: 240-360 words
- Keep lines 4-8 words for vocal clarity
- Simple, singable phrasing works best
Tips
- Match lyrics emotion to caption mood
- Avoid tongue twisters and complex vocabulary
- Use line breaks between phrases
- Chorus should be the most memorable/catchy section
- Bridge should contrast with verse/chorus
Parameter Selection
BPM by Genre
| Genre | BPM Range | Sweet Spot |
|---|---|---|
| Ballad | 60-80 | 70 |
| Lo-fi | 70-90 | 80 |
| R&B | 80-100 | 90 |
| Pop | 100-130 | 120 |
| Rock | 110-140 | 125 |
| House | 120-130 | 125 |
| Hip-hop | 80-115 | 95 |
| EDM | 128-150 | 140 |
| DnB | 160-180 | 174 |
| Trap | 130-170 | 140 |
Duration Guide
| Song Type | Duration | Notes |
|---|---|---|
| Jingle/Short | 15-30s | TikTok, ad music |
| Standard | 60-120s | Most songs |
| Full song | 180-300s | Complete arrangement |
| Extended | 300-600s | Ambient, DJ sets |
For detailed reference: load references/prompt-guide.md and references/music-theory.md