Major updates: - Added 35+ new skills from awesome-opencode-skills and antigravity repos - Merged SEO skills into seo-master - Merged architecture skills into architecture - Merged security skills into security-auditor and security-coder - Merged testing skills into testing-master and testing-patterns - Merged pentesting skills into pentesting - Renamed website-creator to thai-frontend-dev - Replaced skill-creator with github version - Removed Chutes references (use MiniMax API instead) - Added install-openclaw-skills.sh for cross-platform installation - Updated .env.example with MiniMax API credentials
6.5 KiB
6.5 KiB
Music Generation Guide
CLI Usage
# Instrumental (no vocals)
python scripts/minimax_music.py --prompt "Jazz piano, smooth, relaxing" --instrumental -o jazz.mp3
# With custom lyrics
python scripts/minimax_music.py --prompt "Indie folk, melancholic" --lyrics "[verse]\nStreetlights flicker\nOn empty roads" -o song.mp3
# Auto-generate lyrics from prompt
python scripts/minimax_music.py --prompt "Upbeat pop, energetic, summer vibes" --auto-lyrics -o pop.mp3
# From lyrics file
python scripts/minimax_music.py --prompt "Soulful blues, rainy night" --lyrics-file lyrics.txt -o blues.mp3
# Custom audio settings
python scripts/minimax_music.py --prompt "Lo-fi beats" --instrumental -o lofi.wav --format wav --sample-rate 44100 --bitrate 256000
Programmatic Usage
from minimax_music import generate_music
# Instrumental
result = generate_music(prompt="Jazz piano, smooth", is_instrumental=True)
with open("jazz.mp3", "wb") as f:
f.write(result["audio_bytes"])
# With lyrics
result = generate_music(
prompt="Indie folk, acoustic guitar",
lyrics="[verse]\nWalking through the rain\n[chorus]\nI'll find my way home",
)
# Auto-generate lyrics
result = generate_music(
prompt="Upbeat pop, summer anthem",
lyrics_optimizer=True,
)
# Access metadata
print(f"Duration: {result['duration']}ms")
print(f"Sample rate: {result['sample_rate']}")
print(f"Size: {result['size']} bytes")
Models
| Model | Features |
|---|---|
music-2.5+ |
Recommended. Supports instrumental mode, complete song structures, hi-fi audio |
music-2.5 |
Standard model. No instrumental mode |
Prompt Writing
The prompt parameter describes music style using comma-separated descriptors:
| Category | Examples |
|---|---|
| Genre | Blues, Pop, Rock, Jazz, Electronic, Hip-hop, Folk, Classical |
| Mood | Soulful, Melancholy, Upbeat, Energetic, Peaceful, Dark, Nostalgic |
| Scenario | Rainy night, Summer day, Road trip, Late night, Sunrise |
| Instrumentation | Electric guitar, Piano, Acoustic, Synthesizer, Strings |
| Vocal type | Male vocals, Female vocals, Soft vocals, Powerful vocals |
| Tempo | Slow tempo, Fast tempo, Mid-tempo, Relaxed |
Example prompts:
"Soulful Blues, Rainy Night, Melancholy, Male Vocals, Slow Tempo"
"Upbeat Pop, Summer Vibes, Female Vocals, Energetic, Synth-heavy"
"Lo-fi Hip-hop, Chill, Relaxed, Instrumental, Piano samples"
"Cinematic Orchestral, Epic, Building tension, Strings and Brass"
Lyrics Format
Use structure tags in brackets to organize song sections:
Structure Tags
| Tag | Purpose |
|---|---|
[Intro] |
Opening section (can be instrumental) |
[Verse] / [Verse 1] |
Story/narrative sections |
[Pre-Chorus] |
Build-up before chorus |
[Chorus] |
Main hook, typically repeated |
[Post Chorus] |
Extension after chorus |
[Bridge] |
Contrasting section near end |
[Interlude] |
Instrumental break |
[Solo] |
Instrumental solo (add direction: "slow, bluesy") |
[Outro] |
Closing section |
[Break] |
Short pause or transition |
[Hook] |
Catchy repeated phrase |
[Build Up] |
Tension building section |
[Inst] |
Instrumental section |
[Transition] |
Section change |
Backing Vocals & Directions
Use parentheses for backing vocals or performance notes:
(Ooh, yeah)
(Harmonize)
(Whispered)
(Fade out...)
Example Lyrics
[Intro]
(Soft piano)
[Verse 1]
Streetlights flicker on empty roads
The rain keeps falling, the wind still blows
I'm walking home with nowhere to go
Just memories of what I used to know
[Pre-Chorus]
And I can feel it coming back to me
(Coming back to me)
[Chorus]
Under the neon lights tonight
I'm searching for what feels right
(Oh, feels right)
These city streets will guide me home
I'm tired of feeling so alone
[Verse 2]
Coffee shops and midnight trains
The faces change but the feeling remains
...
[Bridge]
Maybe tomorrow will be different
Maybe I'll finally understand
(Understand...)
[Solo]
(Slow, mournful, bluesy guitar)
[Outro]
(Fade out...)
Under the neon lights...
Audio Settings
| Parameter | Options | Default | Notes |
|---|---|---|---|
format |
mp3, wav, pcm | mp3 | WAV for highest quality |
sample_rate |
16000, 24000, 32000, 44100 | 44100 | 44100 recommended |
bitrate |
32000, 64000, 128000, 256000 | 256000 | Higher = better quality |
Generation Modes
1. Instrumental Only
python scripts/minimax_music.py --prompt "Ambient electronic, space theme" --instrumental -o ambient.mp3
- Requires
music-2.5+model - Only
promptneeded, no lyrics
2. With Custom Lyrics
python scripts/minimax_music.py --prompt "Pop ballad, emotional" --lyrics "[verse]\nYour lyrics here" -o ballad.mp3
- Provide both
prompt(style) andlyrics(words + structure)
3. Auto-Generated Lyrics
python scripts/minimax_music.py --prompt "Rock anthem about freedom" --auto-lyrics -o rock.mp3
- System generates lyrics from prompt
- Good for quick generation when lyrics aren't critical
Limits
- Prompt: max 2,000 characters
- Lyrics: 1–3,500 characters
- Duration: ~25-30 seconds per generation (varies)
- URL expiration: 24 hours (when using URL output mode)
Best Practices
- Layer style descriptors — Combine genre + mood + instrumentation for precise results
- Use structure tags — Even simple
[verse][chorus]improves arrangement - Include backing vocal cues —
(Ooh),(Yeah)add production polish - Match prompt to lyrics mood — Conflicting prompt/lyrics produce inconsistent results
- Instrumental for backgrounds — Use
--instrumentalfor BGM, avoiding vocal distractions - High bitrate for production — Use 256000 for final assets, lower for drafts
Common Use Cases
| Use Case | Command |
|---|---|
| Background music | --prompt "Lo-fi, calm, ambient" --instrumental |
| Landing page hero | --prompt "Cinematic, inspiring, building" --instrumental |
| Podcast intro | --prompt "Upbeat, energetic, short" --instrumental |
| Demo song | --prompt "Pop, catchy" --auto-lyrics |
| Custom jingle | --prompt "Happy, bright, corporate" --lyrics "[hook]\nYour brand name" |
Error Handling
| Error Code | Meaning | Solution |
|---|---|---|
| 1002 | Rate limit | Wait and retry |
| 1004 | Auth failed | Check API key |
| 1008 | Insufficient balance | Top up account |
| 1026 | Content flagged | Rephrase prompt/lyrics |
| 2013 | Invalid parameters | Check prompt/lyrics length |