Music Generator (Google Lyria 3)
Generate music using Google Lyria 3 Pro / Clip (DeepMind) via Gemini API, save to CC Pages, and share.
Two models:
- Lyria 3 Clip (
lyria-3-clip-preview) — 30-second clips, fast iteration
- Lyria 3 Pro (
lyria-3-pro-preview) — full-length songs (1-3 minutes)
Usage
~/.claude/skills/music-generator/scripts/music-generate.sh "your music prompt"
Options
# Quick 30s clip (default)
~/.claude/skills/music-generator/scripts/music-generate.sh "a dramatic solo piano piece in C minor"
# Full-length song (1-3 min)
~/.claude/skills/music-generator/scripts/music-generate.sh "epic orchestral film score" --duration full
# Specify style, key, tempo
~/.claude/skills/music-generator/scripts/music-generate.sh "jazz trio" --style jazz --key "Bb major" --tempo 140
# Allow vocals (default: instrumental only)
~/.claude/skills/music-generator/scripts/music-generate.sh "pop ballad with singing" --vocal
# Custom output filename
~/.claude/skills/music-generator/scripts/music-generate.sh "ambient soundscape" --output my-ambient
# Combine options
~/.claude/skills/music-generator/scripts/music-generate.sh \
"virtuoso solo piano, Late Romantic style, dramatic arpeggios and singing melody" \
--duration full --key "C# minor" --tempo 72 --output concert-piece
Output
- Audio saved to
$CC_PAGES_WEB_ROOT/assets/music/ as MP3
- Returns the public URL:
$CC_PAGES_URL_PREFIX/assets/music/{filename}.mp3
Workflow
# 1. Generate music
URL=$(~/.claude/skills/music-generator/scripts/music-generate.sh "solo piano nocturne" --duration full)
# 2. Share URL or embed in HTML
echo "Listen: $URL"
Prompt Engineering Tips
- Use timestamps for structure:
[0:00-0:25] slow intro, [0:25-1:00] build intensity, [1:00-1:30] climax
- Use Italian musical terms: Allegro, Pianissimo, Rubato, Con fuoco, Crescendo, Sforzando
- Specify instrumentation explicitly: "solo piano", "string quartet", "jazz trio with piano, upright bass, and brushed drums"
- NO copyrighted references: Never name specific compositions, artists, or songs — the API will block with PROHIBITED_CONTENT. Use generic style descriptions instead ("Late Romantic virtuoso piano", "bebop jazz")
- Repeat "NO vocals" for instrumental: Say "Instrumental only. NO vocals. NO singing." at least twice if you want pure instrumental
- Describe dynamics and emotion: "haunting and melancholic opening, building to a passionate fortissimo climax, then resolving with gentle pianissimo"
Models
| Model |
Duration |
Best For |
lyria-3-clip-preview (default) |
~30s |
Quick previews, iteration, short loops |
lyria-3-pro-preview |
1-3 min |
Full compositions, concert pieces |
Prerequisites
google-genai Python SDK (pip install google-genai)
GEMINI_API_KEY environment variable set
- CC Pages (
$CC_PAGES_WEB_ROOT and $CC_PAGES_URL_PREFIX)
Files
~/.claude/skills/music-generator/scripts/
├── music-generate.sh # Entry point (exec wrapper)
└── music-generate.py # Core logic (google-genai SDK)
$CC_PAGES_WEB_ROOT/assets/music/ # Generated audio (web-accessible)
1---2name: music-generator3description: Generate music using Google Lyria 3 (DeepMind). Use for "生成音乐", "作曲", "写一首曲子", "generate music", "create a song", "compose", "piano piece", "钢琴曲", "make a beat", "生成钢琴曲", "来一首歌".4---56# Music Generator (Google Lyria 3)78Generate music using Google Lyria 3 Pro / Clip (DeepMind) via Gemini API, save to CC Pages, and share.910Two models:11- **Lyria 3 Clip** (`lyria-3-clip-preview`) — 30-second clips, fast iteration12- **Lyria 3 Pro** (`lyria-3-pro-preview`) — full-length songs (1-3 minutes)1314## Usage1516```bash17~/.claude/skills/music-generator/scripts/music-generate.sh "your music prompt"18```1920### Options2122```bash23# Quick 30s clip (default)24~/.claude/skills/music-generator/scripts/music-generate.sh "a dramatic solo piano piece in C minor"2526# Full-length song (1-3 min)27~/.claude/skills/music-generator/scripts/music-generate.sh "epic orchestral film score" --duration full2829# Specify style, key, tempo30~/.claude/skills/music-generator/scripts/music-generate.sh "jazz trio" --style jazz --key "Bb major" --tempo 1403132# Allow vocals (default: instrumental only)33~/.claude/skills/music-generator/scripts/music-generate.sh "pop ballad with singing" --vocal3435# Custom output filename36~/.claude/skills/music-generator/scripts/music-generate.sh "ambient soundscape" --output my-ambient3738# Combine options39~/.claude/skills/music-generator/scripts/music-generate.sh \40 "virtuoso solo piano, Late Romantic style, dramatic arpeggios and singing melody" \41 --duration full --key "C# minor" --tempo 72 --output concert-piece42```4344### Output4546- Audio saved to `$CC_PAGES_WEB_ROOT/assets/music/` as MP347- Returns the public URL: `$CC_PAGES_URL_PREFIX/assets/music/{filename}.mp3`4849### Workflow5051```bash52# 1. Generate music53URL=$(~/.claude/skills/music-generator/scripts/music-generate.sh "solo piano nocturne" --duration full)5455# 2. Share URL or embed in HTML56echo "Listen: $URL"57```5859## Prompt Engineering Tips60611. **Use timestamps for structure**: `[0:00-0:25] slow intro, [0:25-1:00] build intensity, [1:00-1:30] climax`622. **Use Italian musical terms**: Allegro, Pianissimo, Rubato, Con fuoco, Crescendo, Sforzando633. **Specify instrumentation explicitly**: "solo piano", "string quartet", "jazz trio with piano, upright bass, and brushed drums"644. **NO copyrighted references**: Never name specific compositions, artists, or songs — the API will block with PROHIBITED_CONTENT. Use generic style descriptions instead ("Late Romantic virtuoso piano", "bebop jazz")655. **Repeat "NO vocals" for instrumental**: Say "Instrumental only. NO vocals. NO singing." at least twice if you want pure instrumental666. **Describe dynamics and emotion**: "haunting and melancholic opening, building to a passionate fortissimo climax, then resolving with gentle pianissimo"6768## Models6970| Model | Duration | Best For |71|-------|----------|----------|72| `lyria-3-clip-preview` (default) | ~30s | Quick previews, iteration, short loops |73| `lyria-3-pro-preview` | 1-3 min | Full compositions, concert pieces |7475## Prerequisites7677- `google-genai` Python SDK (`pip install google-genai`)78- `GEMINI_API_KEY` environment variable set79- CC Pages (`$CC_PAGES_WEB_ROOT` and `$CC_PAGES_URL_PREFIX`)8081## Files8283```84~/.claude/skills/music-generator/scripts/85├── music-generate.sh # Entry point (exec wrapper)86└── music-generate.py # Core logic (google-genai SDK)8788$CC_PAGES_WEB_ROOT/assets/music/ # Generated audio (web-accessible)89```