mcpField
M
music-generation

music-generation

github.com/bytedanceCreative & media84.6k297 installsUpdated today
Repository

About music-generation

A skill that creates vocal or instrumental songs from a JSON specification using the MiniMax music generation API. It accepts a style, mood, and scene prompt, with optional lyrics or instrumental-only output.

Key features

  1. 01Generate songs from JSON specs
  2. 02Set style, mood, and scene
  3. 03Provide lyrics or generate them automatically
  4. 04Create instrumental tracks
  5. 05Output MP3 audio

Use cases

  1. 01Draft a song from a scene prompt
  2. 02Generate a vocal track from supplied lyrics
  3. 03Create an instrumental music track

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/bytedance/deer-flow --skill music-generation

After installing, type/music-generationin Claude Code to confirm it loaded.

Bundled filesscripts/generate.py

Details

From the project README

Music Generation Skill

Overview

This skill generates songs (vocal or instrumental) from a structured JSON spec using the MiniMax music generation API (/v1/music_generation). You describe the style/mood/scene in prompt, optionally provide lyrics, and the script returns an MP3.

Workflow

Step 1: Understand Requirements

Identify the desired style, mood, scene, language, and whether the user wants vocals or a pure instrumental track. Decide whether to supply lyrics or let the model write them.

Step 2: Create the Spec JSON

Write a JSON file in /mnt/user-data/workspace/ named {descriptive-name}.json:

{
  "title": "Rainy Night Cafe",
  "prompt": "indie folk, melancholic, introspective, walking alone, cafe",
  "lyrics": "[verse]\nStreetlights glow the night wind sighs\n[chorus]\nPush the wooden door warm air inside"
}

Fields:

  • title (optional): a human-readable name.
  • prompt (required): style, mood, and scene. Drives the musical character.
  • lyrics (optional): song lyrics. Use \n between lines and structure tags such as [Intro], [Verse], [Pre Chorus], [Chorus], [Bridge], [Outro].
  • is_instrumental (optional, bool): set true for a pure instrumental track (no lyrics needed).

Behavior:

  • lyrics provided → those lyrics are sung.
  • is_instrumental: true → instrumental, no vocals.
  • neither → the model auto-writes lyrics from prompt (lyrics_optimizer).
Step 3: Execute Generation
python /mnt/skills/public/music-generation/scripts/generate.py \
  --prompt-file /mnt/user-data/workspace/rainy-night-cafe.json \
  --output-file /mnt/user-data/outputs/rainy-night-cafe.mp3

Parameters:

  • --prompt-file: Absolute path to the JSON spec (required).
  • --output-file: Absolute path for the output MP3 (required).

[!NOTE] Do NOT read the python file, just call it with the parameters.

Environment

  • MINIMAX_API_KEY (required): your MiniMax interface key.
  • MINIMAX_API_HOST (optional): default https://api.minimaxi.com.
  • MINIMAX_MUSIC_MODEL (optional): default music-2.6-free (works for all API-key users); paid/Token-Plan users can set music-2.6 for higher limits.

Output Handling

  • Music is saved as MP3 (typically in /mnt/user-data/outputs/).
  • Returned audio must decode to nonempty bytes and have an ID3 tag header or MPEG frame signature. This is a header sanity check, not complete audio decoding.
  • Malformed, empty or unrecognized audio is rejected before creating the output directory or opening the output file; an existing output is preserved.
  • Missing audio reports "MiniMax returned no audio data"; whitespace-only hex reports "MiniMax audio decoded to empty bytes".
  • Share the generated file with the user using the present_files tool.
  • Offer to iterate on style or lyrics if adjustments are needed.

Notes

  • Keep prompt focused on style/mood/scene; put the actual sung words in lyrics.
  • For non-English songs, write lyrics in the target language.

Comments

Markdown supported