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
1---2name: claude-music-compose3description: Songwriting guide for ACE-Step music generation. Helps craft captions (style descriptions), lyrics with structure tags, and choose optimal BPM/key/duration/time signature.4---56# claude-music-compose — Songwriting Assistant78This is a READ-ONLY reference skill. Claude uses this knowledge to help craft optimal inputs for `/music generate`.910## Execution1112This 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`.1314The 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.1516## Output Format1718After composing, produce these for the generate command:191. **Caption** (`-c`): Style/genre/instruments/emotion (max 512 chars)202. **Lyrics** (`-l`): Structured lyrics with tags (max 4096 chars)213. **Parameters**: `--duration`, `--bpm`, `--key`, `--time-sig`, `--language`2223## Caption Crafting2425**Formula**: `Genre + mood + instruments + vocal style + production quality`2627### Dimensions2829| Dimension | Examples |30|-----------|----------|31| Genre | pop, rock, jazz, electronic, hip-hop, R&B, folk, classical, lo-fi, synthwave |32| Mood | melancholic, uplifting, energetic, dreamy, dark, nostalgic, euphoric, intimate |33| Instruments | acoustic guitar, piano, synth pads, 808 drums, strings, brass, electric bass |34| Timbre | warm, bright, crisp, airy, punchy, lush, raw, polished |35| Era | 80s synth-pop, 90s grunge, 2010s EDM, vintage soul, modern trap |36| Production | lo-fi, high-fidelity, live recording, studio-polished, bedroom pop |37| Vocals | female vocal, male vocal, breathy, powerful, falsetto, raspy, choir |38| Rhythm | slow tempo, mid-tempo, fast-paced, groovy, driving, laid-back |3940### Principles41421. **Specific beats vague** — "sad piano ballad, female breathy vocal" > "a sad song"432. **Combine 3-5 dimensions** — anchors the direction precisely443. **Don't put BPM/key in caption** — use dedicated parameters instead454. **Avoid conflicting genres** — "ambient metal" confuses the model465. **Repetition reinforces** — repeat elements you want emphasized476. **Less detail = more creativity** — let the model surprise you4849## Lyrics Structure5051### Tags5253| Tag | Purpose |54|-----|---------|55| `[Verse]` / `[Verse 1]` | Narrative sections |56| `[Chorus]` | Emotional climax, hook |57| `[Pre-Chorus]` | Build energy before chorus |58| `[Bridge]` | Transition or elevation |59| `[Intro]` | Opening atmosphere |60| `[Outro]` | Ending/conclusion |61| `[Drop]` | Electronic energy release |62| `[Breakdown]` | Reduced instrumentation |63| `[Instrumental]` | No vocals section |64| `[Guitar Solo]` | Specific instrument solo |65| `[Fade Out]` | Fade ending |6667### Density Rules6869- **~2-3 words per second** of audio70- 30s track: 60-90 words71- 60s track: 120-180 words72- 120s track: 240-360 words73- Keep lines 4-8 words for vocal clarity74- Simple, singable phrasing works best7576### Tips7778- Match lyrics emotion to caption mood79- Avoid tongue twisters and complex vocabulary80- Use line breaks between phrases81- Chorus should be the most memorable/catchy section82- Bridge should contrast with verse/chorus8384## Parameter Selection8586### BPM by Genre8788| Genre | BPM Range | Sweet Spot |89|-------|-----------|------------|90| Ballad | 60-80 | 70 |91| Lo-fi | 70-90 | 80 |92| R&B | 80-100 | 90 |93| Pop | 100-130 | 120 |94| Rock | 110-140 | 125 |95| House | 120-130 | 125 |96| Hip-hop | 80-115 | 95 |97| EDM | 128-150 | 140 |98| DnB | 160-180 | 174 |99| Trap | 130-170 | 140 |100101### Duration Guide102103| Song Type | Duration | Notes |104|-----------|----------|-------|105| Jingle/Short | 15-30s | TikTok, ad music |106| Standard | 60-120s | Most songs |107| Full song | 180-300s | Complete arrangement |108| Extended | 300-600s | Ambient, DJ sets |109110For detailed reference: load `references/prompt-guide.md` and `references/music-theory.md`