[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FCTHW3XR033MDYR66FP0DD":3,"skill-same:01M6FCTHW3XR033MDYR66FP0DD":53},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":35,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6FCTHW3XR033MDYR66FP0DD","music-generation",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmichaelboeding\u002Fskills\u002Fmusic-generation\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25],"music","generation","music generation","2026-11-10 10:12:30",false,"# Music Generation Skill\n\nGenerate music, songs, and audio using AI (Suno, Udio, Google Lyria).\n\n## Prerequisites\n\nAt least one API key is required:\n\n- `GOOGLE_API_KEY` - For Google Lyria (same key as video\u002Fimage) ✅\n- `SUNO_API_KEY` - For Suno music generation\n- `UDIO_API_KEY` - For Udio music generation\n\n## Available APIs\n\n### Google Lyria (Instrumental Only)\n- **Best for**: Background music, beats, soundtracks, game audio\n- **Duration**: Any length (streams in real-time)\n- **Features**: BPM control, key\u002Fscale, brightness, density\n- **Output**: 48kHz stereo WAV\n- **API Key**: Same `GOOGLE_API_KEY` as video\u002Fimage generation ✅\n- **⚠️ INSTRUMENTAL ONLY** - Cannot generate vocals\n\n### Suno (Recommended for Songs with Vocals)\n- **Best for**: Full songs with vocals, catchy melodies, various genres\n- **Duration**: Up to 4 minutes\n- **Features**: Lyrics generation, instrumental mode, style tags\n- **Genres**: Pop, rock, jazz, electronic, classical, hip-hop, and more\n\n### Udio\n- **Best for**: High-fidelity audio, experimental styles, remixes\n- **Duration**: Up to 2 minutes per generation\n- **Features**: Style control, audio quality options\n- **Genres**: Wide variety with strong electronic\u002Fexperimental support\n\n## Workflow\n\n### Step 1: Ask Key Question - Vocals or Instrumental?\n\n**This determines which API to use:**\n\n| Need | API | Why |\n|------|-----|-----|\n| **Vocals\u002FLyrics** | Suno or Udio | Lyria cannot generate vocals |\n| **Instrumental only** | Lyria (preferred) | Same API key as video\u002Fimage, real-time control |\n| **Background music** | Lyria | Best for soundtracks, game audio |\n| **Full songs** | Suno | Best vocal quality |\n\n**Example prompt to user:**\n\n\"I'll generate that music! Quick question:\n\n1. **Do you need vocals\u002Flyrics?**\n   - Yes → I'll use Suno (best for songs)\n   - No, instrumental only → I'll use Lyria (same key as video\u002Fimage)\n\n2. **What genre\u002Fmood?** (e.g., chill lo-fi, epic orchestral, upbeat pop)\n\n3. **How long?** (Lyria: any length, Suno: up to 4 min)\n\n4. **Any BPM preference?** (e.g., 90 for chill, 128 for dance)\"\n\n---\n\n### Step 2: Understand the Request\n\nParse the user's music request for:\n- **Genre\u002Fstyle**: Pop, rock, jazz, electronic, classical, etc.\n- **Mood**: Happy, sad, energetic, calm, dramatic\n- **Tempo**: Fast, slow, medium, specific BPM\n- **Vocals**: With vocals → Suno\u002FUdio, Instrumental → Lyria\n- **Purpose**: Background music, song, jingle, soundtrack\n- **Duration**: How long should it be?\n\n### Step 2: Craft the Prompt\n\nTransform the user request into an effective music generation prompt:\n\n1. **Specify genre**: Be specific about the style\n2. **Describe mood**: Emotional tone and energy level\n3. **Include instruments**: What should be prominent\n4. **Add production style**: Lo-fi, polished, vintage, modern\n5. **Set tempo**: BPM or descriptive (upbeat, slow)\n\n**Example transformation:**\n- User: \"happy summer song\"\n- Enhanced: \"Upbeat indie pop song with bright acoustic guitar, cheerful ukulele, and sunny vibes. Feel-good summer anthem with catchy hooks and positive energy. Male vocals, 120 BPM, radio-friendly production\"\n\n### Step 3: Handle Lyrics (If Needed)\n\nFor songs with vocals:\n- **User provides lyrics**: Use them directly\n- **Generate lyrics**: Ask Suno\u002FUdio to generate, or use Claude to write them first\n- **Instrumental**: Specify \"instrumental\" to skip vocals\n\nLyrics format for Suno:\n```\n[Verse 1]\nYour lyrics here\n\n[Chorus]\nCatchy chorus lyrics\n\n[Verse 2]\nMore lyrics\n```\n\n### Step 4: Select the API\n\nChoose based on requirements:\n\n| Use Case | Recommended API | Reason |\n|----------|----------------|--------|\n| **Instrumental\u002Fbackground** | Lyria | Same API key, any duration, real-time control |\n| **Full songs with vocals** | Suno | Best vocal quality |\n| **Lo-fi beats** | Lyria | Great for ambient\u002Fchill |\n| **Experimental\u002Felectronic** | Udio | Strong in these genres |\n| **Specific lyrics needed** | Suno | Lyrics input support |\n| **Game\u002Fvideo soundtrack** | Lyria | Precise BPM\u002Fkey control |\n\n### Step 5: Generate the Music\n\nExecute the appropriate script from `${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fmusic-generation\u002Fscripts\u002F`:\n\n**For Google Lyria (Instrumental):**\n```bash\npython3 ${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fmusic-generation\u002Fscripts\u002Flyria.py \\\n  --prompt \"chill lo-fi hip hop, jazzy piano, vinyl crackle\" \\\n  --duration 60 \\\n  --bpm 85\n```\n\n**Lyria with key\u002Fscale:**\n```bash\npython3 ${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fmusic-generation\u002Fscripts\u002Flyria.py \\\n  --prompt \"ambient, ethereal synths, dreamy\" \\\n  --duration 120 \\\n  --scale \"C\" \\\n  --brightness 0.7\n```\n\n**Lyria with multiple prompts (blended):**\n```bash\npython3 ${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fmusic-generation\u002Fscripts\u002Flyria.py \\\n  --prompt \"minimal techno\" \\\n  --prompt \"deep bass, 808\" \\\n  --bpm 128 \\\n  --duration 90\n```\n\n**For Suno (with vocals):**\n```bash\npython3 ${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fmusic-generation\u002Fscripts\u002Fsuno.py \\\n  --prompt \"upbeat indie pop, summer vibes, acoustic guitar\" \\\n  --title \"Summer Days\"\n```\n\n**For Udio:**\n```bash\npython3 ${CLAUDE_PLUGIN_ROOT}\u002Fskills\u002Fmusic-generation\u002Fscripts\u002Fudio.py \\\n  --prompt \"cinematic orchestral, epic trailer music\" \\\n  --duration 120\n```\n\n### Step 6: Deliver the Result\n\n1. Provide the generated audio file path\n2. Share the prompt and settings used\n3. Mention the duration and format\n4. Offer to:\n   - Generate variations\n   - Try different style\u002Fgenre\n   - Adjust tempo or mood\n   - Extend the track\n   - Add or remove vocals\n\n## Error Handling\n\n**Missing API key**: Inform the user which key is needed:\n- Lyria: Same `GOOGLE_API_KEY` as video\u002Fimage - https:\u002F\u002Faistudio.google.com\u002Fapikey\n- Suno: https:\u002F\u002Fsuno.com\u002Fapi (or app.suno.ai)\n- Udio: https:\u002F\u002Fudio.com\u002Fapi\n\n**Lyria requires google-genai package**: `pip install google-genai`\n\n**User wants vocals but only has GOOGLE_API_KEY**: Explain Lyria is instrumental-only, suggest Suno\u002FUdio.\n\n**Content policy violation**: Rephrase lyrics or prompt.\n\n**Generation failed**: Retry with simplified prompt.\n\n**Quota exceeded**: Suggest waiting or trying other provider.\n\n## Prompt Engineering Tips\n\n### Genre Tags (Suno Style)\nInclude specific genre tags for best results:\n- `[pop, upbeat, female vocals, 128 BPM]`\n- `[jazz, smooth, saxophone, laid-back]`\n- `[electronic, synthwave, 80s, driving]`\n- `[classical, orchestral, emotional, strings]`\n\n### Mood Descriptors\n- **Energetic**: upbeat, driving, powerful, intense\n- **Calm**: relaxing, ambient, peaceful, gentle\n- **Happy**: cheerful, bright, sunny, joyful\n- **Sad**: melancholic, emotional, heartfelt, somber\n- **Epic**: cinematic, dramatic, sweeping, grand\n\n### Production Style\n- **Lo-fi**: warm, vintage, tape hiss, nostalgic\n- **Polished**: crisp, modern, radio-ready, professional\n- **Raw**: garage, live, organic, unpolished\n- **Electronic**: synthesizers, digital, processed\n\n## API Comparison\n\n| Feature | Lyria | Suno | Udio |\n|---------|-------|------|------|\n| API Key | `GOOGLE_API_KEY` ✅ | `SUNO_API_KEY` | `UDIO_API_KEY` |\n| Max duration | **Unlimited** | 4 minutes | 2 minutes |\n| Vocals | ❌ **No** | ✅ Excellent | ✅ Good |\n| Instrumentals | ✅ Excellent | ✅ Great | ✅ Excellent |\n| BPM control | ✅ 60-200 | ❌ No | ❌ No |\n| Key\u002FScale control | ✅ Yes | ❌ No | ❌ No |\n| Audio quality | 48kHz WAV | Very good | Excellent |\n| Lyrics input | ❌ No | ✅ Yes | ✅ Yes |\n| Real-time steering | ✅ Yes | ❌ No | ❌ No |\n| Best for | Beats, soundtracks | Songs | Experimental |\n\n## Example Prompts\n\n### Pop Song\n```\nCatchy pop song with female vocals, bright synths, and an anthemic chorus. \nFeel-good energy, summer vibes, 120 BPM, radio-friendly production.\n```\n\n### Cinematic Score\n```\nEpic orchestral trailer music with building tension. Powerful brass, \nsweeping strings, thundering percussion. Dramatic and emotional.\n```\n\n### Lo-fi Beat\n```\nChill lo-fi hip hop beat, jazzy piano samples, vinyl crackle, \nrelaxed drums, perfect for studying. 85 BPM, nostalgic mood.\n```\n\n### Electronic Dance\n```\nHigh-energy EDM track with massive drops, pulsing synths, \nfour-on-the-floor beat. Festival-ready, 128 BPM.\n```\n\n## Lyria-Specific Examples\n\n### Lo-fi Study Beats\n```bash\npython3 lyria.py -p \"lo-fi hip hop, jazzy piano, vinyl crackle, chill\" \\\n  --duration 300 --bpm 85 --brightness 0.3\n```\n\n### Techno\u002FDance\n```bash\npython3 lyria.py -p \"minimal techno, deep bass, 808 drums\" \\\n  --duration 120 --bpm 128 --density 0.7\n```\n\n### Ambient\u002FMeditation\n```bash\npython3 lyria.py -p \"ambient, ethereal, soft pads, dreamy\" \\\n  --duration 180 --brightness 0.8 --density 0.2\n```\n\n### Game Soundtrack\n```bash\npython3 lyria.py -p \"epic orchestral, cinematic, dramatic strings\" \\\n  --duration 90 --scale \"D\" --mode quality\n```\n\n### Lyria Prompt Tips\n- **Instruments**: piano, guitar, synth, drums, bass, strings, 808, Rhodes, Moog\n- **Genres**: lo-fi hip hop, minimal techno, ambient, jazz fusion, synthwave, chillout\n- **Moods**: chill, energetic, dreamy, dark, upbeat, melancholic, epic\n- **Combine prompts**: Use multiple `-p` flags to blend styles\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fmichaelboeding\u002Fskills\u002Fmusic-generation",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill music-generation",{"tool":45,"command":46},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill music-generation",{"tool":48,"command":49},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill music-generation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmichaelboeding\u002Fskills\u002Fmusic-generation\u002FSKILL.md",true,[],[54,64,74,83,89,96],{"skillNo":55,"name":56,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":60,"publishedAt":26},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[59],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[61,62,63],"model","model hierarchy","model hierarchy skill",{"skillNo":65,"name":66,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":70,"publishedAt":26},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[69],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[71,72,73],"MCP","zoom","zoom mcp",{"skillNo":75,"name":76,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":26},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[80,81,82,72],"sdk","zoom apps sdk","apps",{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":26},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[85],{"skillNo":90,"name":91,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":95,"publishedAt":26},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[94],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[91],{"skillNo":97,"name":98,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":26},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[98]]