Skip to content
Entertainment
Skill

/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.

BOOST
From plugin
claude-music
8412 skills
Install
$ npx -y skills add AgriciDaniel/claude-music --skill claude-music-compose --agent claude-code

How 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.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/claude-music-compose

Context preview

The summary Claude sees to decide when to auto-load this skill.

Songwriting guide for ACE-Step music generation. Helps craft captions (style descriptions), lyrics with structure tags, and choose optimal BPM/key/duration/time signature.

SKILL.md

claude-music-compose.SKILL.md
name: claude-music-compose
description: >
  Songwriting guide for ACE-Step music generation. Helps craft captions (style descriptions),
  lyrics with structure tags, and choose optimal BPM/key/duration/time signature.
when_to_use: >
  Use when user says "compose", "write lyrics", "songwriting", "plan a song",
  "caption help", or needs guidance before generating music.
model: opus
context: fork
agent: music-composer
allowed-tools:
  - Read

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: 1. **Caption** (`-c`): Style/genre/instruments/emotion (max 512 chars) 2. **Lyrics** (`-l`): Structured lyrics with tags (max 4096 chars) 3. **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

1. **Specific beats vague** — "sad piano ballad, female breathy vocal" > "a sad song" 2. **Combine 3-5 dimensions** — anchors the direction precisely 3. **Don't put BPM/key in caption** — use dedicated parameters instead 4. **Avoid conflicting genres** — "ambient metal" confuses the model 5. **Repetition reinforces** — repeat elements you want emphasized 6. **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`

Read more
Ships withclaude-music

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.

Get the whole plugin

Other skills on claude-music.