Skill detail
music-generator
Generates AI music with the ElevenLabs Music API in simple or detailed multi-section modes, supporting instrumental or vocal tracks from 15s to 5min.
Inspect before use
Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.
SKILL.md
The saved excerpt is a snapshot from review. The external source remains the complete and most current version.
---
name: music-generator
description: "Generate AI music with ElevenLabs Music API. Use for: background music, soundtracks, jingles, theme songs, instrumental tracks, AI music composition."
setup_complete: false
setup: "./SETUP.md"
---
# Music Generator
> **First time?** If `setup_complete: false` above, run `./SETUP.md` first, then set `setup_complete: true`.
Generate custom AI music using ElevenLabs Music API with detailed composition control.
## Features
- **Simple Mode**: Generate music from a text prompt
- **Detailed Mode**: Create multi-section compositions with precise control over styles, moods, and transitions
- **Instrumental or Vocal**: Support for both instrumental and vocal tracks
- **Custom Duration**: Generate tracks from 15 seconds to 5 minutes
## Quick Start
```bash
cd ~/.claude/skills/music-generator/scripts
# Simple prompt-based generation
npx ts-node generate_music.ts \
--prompt "Uplifting corporate music with electronic beats" \
--duration 60 \
--output /path/to/music.mp3
# List available styles
npx ts-node generate_music.ts --list-styles
```
## Composition Modes
### 1. Simple Mode (--prompt)
Generate music from a single text prompt:
```bash
npx ts-node generate_music.ts \
--prompt "Energetic workout music with driving beats and motivational synths" \
--duration 90 \
--output workout.mp3
```
### 2. Detailed Mode (--composition)
Create multi-section compositions with JSON config:
```bash
npx ts-node generate_music.ts \
--composition /path/to/composition.json \
--output epic-track.mp3
```
**Composition JSON Format:**
```json
{
"duration_ms": 80000,
"instrumental": true,
"positive_global_styles": ["corporate", "motivational", "electronic"],
"negative_global_styles": ["sad", "aggressive", "heavy metal"],
"sections": [
{
"section_name": "Intro",
"duration_ms": 20000,
"positive_local_styles": ["building momentum", "soft start"],
"negative_local_styles": ["loud", "intense"],
"lines": []
},
{
"section_name": "Main Theme",
"duration_ms": 40000,
"positive_local_styles": ["energetic", "uplifting", "driving rhythm"],
"negative_local_styles": ["slow", "mellow"],
"lines": []
},
{
"section_name": "Outro",
"duration_ms": 20000,
"positive_local_styles": ["triumphant", "resolution"],
"negative_local_styles": ["abrupt ending"],
"lines": []
}
]
}
```
## Style Guide
### Positive Global Styles (Overall Track Feel)
**Moods:**
- uplifting, inspiring, motivational, peaceful, energetic
- dramatic, epic, emotional, nostalgic, mysterious
- playful, cheerful, romantic, melancholic
**Genres:**
- corporate, cinematic, electronic, ambient, orchestral
- pop, rock, jazz, classical, world music
- lo-fi, hip-hop, EDM, acoustic, folk
**Instruments:**
- piano, guitar, strings, synths, drums
- brass, woodwinds, percussion, bass
### Negative Global Styles (What to Avoid)
- aggressive, dark, scary, chaotic
- heavy metal, death metal, harsh noise
- explicit, profane
### Section-Specific Styles
Use `positive_local_styles` and `negative_local_styles` to control individual sections:
**Intro Styles:**
- soft opening, building momentum, atmospheric
- gentle start, mysterious intro
**Peak/Chorus Styles:**
- energetic peak, driving rhythm, powerful
- emotional climax, triumphant
**Outro Styles:**
- gentle fade, triumphant ending, resolution
- nostalgic close, hopeful conclusion
## Command Options
| Option | Short | Description |
|--------|-------|-------------|
| `--prompt` | `-p` | Text prompt for simple mode |
| `--composition` | `-c` | JSON file for detailed mode |
| `--duration` | `-d` | Duration in seconds (simple mode) |
| `--output` | `-o` | Output file path (required) |
| `--instrumental` | `-i` | Generate instrumental track |
| `--format` | `-f` | Output format (mp3_44100_192, mp3_44100_128) |
| `--list-styles` | | Show available styles |
| `--help` | `-h` | Show help |
##Read the full source on GitHub (opens external page)