acedatacloud/skills

producer-music

Generate AI music with Producer via AceDataCloud API.

First seen Apr 6, 2026

Installation

$ npx skills add acedatacloud/skills --skill producer-music

Summary

  • Generate AI music with Producer via AceDataCloud API.
  • Use when creating songs, generating lyrics, extending tracks, creating covers, swapping vocals/instrumentals, replacing song sections, or uploading reference audio.
  • Supports custom lyrics, instrumental-only mode, and multiple creative actions.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from acedatacloud/skills · top by installs.

npx skills add acedatacloud/skills

Browse all from acedatacloud/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 17
License LICENSE
Default branch main
Open issues 1
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0
LicenseApache-2.0
CompatibilityRequires ACEDATACLOUD_API_TOKEN in .env file (see _shared/authentication.md).
More metadata
author
acedatacloud
version
1.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,844 B
  • docs SUMMARY.md 316 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 213 installs

SKILL.md

Producer Music Generation

Generate AI music through AceDataCloud's Producer API.

Setup: See [authentication](../_shared/authentication.md) for token setup.

Quick Start

curl -X POST https://api.acedata.cloud/producer/audios \
  -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"action": "generate", "lyric": "", "prompt": "upbeat electronic dance track with synth leads"}'

Async: All generation is async. See [async task polling](../_shared/async-tasks.md). Poll via POST /producer/tasks with {"id": "..."} every 3-5 seconds.

Models

Model Notes
FUZZ-2.0 Pro Default, highest quality
FUZZ-2.0 Standard quality
FUZZ-2.0 Raw Raw output variant
FUZZ-1.1 Pro Pro v1.1
FUZZ-1.0 Pro Pro v1.0
FUZZ-1.0 v1.0
FUZZ-1.1 v1.1
FUZZ-0.8 Legacy

Actions

Action Description
generate Create a new song from prompt or custom lyrics
cover Create a cover version of an existing song
extend Continue a song from a specific timestamp
replace_section Replace a time range in an existing song
swap_vocals Extract and swap vocal tracks
swap_instrumentals Extract and swap instrumental tracks
variation Generate a variation of an existing song
stems Separate a song into stems

Workflows

1. Generate from Prompt

POST /producer/audios
{
  "action": "generate",
  "lyric": "",
  "prompt": "chill lo-fi hip hop with rain sounds and soft piano"
}

2. Custom Lyrics Mode

POST /producer/audios
{
  "action": "generate",
  "custom": true,
  "title": "Midnight City",
  "lyric": "[Verse]\nNeon lights reflect on wet streets\n[Chorus]\nMidnight city never sleeps",
  "prompt": "nocturnal electronic pop",
  "instrumental": false
}

3. Instrumental Only

POST /producer/audios
{
  "action": "generate",
  "lyric": "",
  "prompt": "epic orchestral soundtrack for a movie trailer",
  "instrumental": true
}

4. Extend Song

POST /producer/audios
{
  "action": "extend",
  "audio_id": "existing-audio-id",
  "lyric": "",
  "prompt": "",
  "continue_at": 30
}

5. Replace Section

POST /producer/audios
{
  "action": "replace_section",
  "audio_id": "existing-audio-id",
  "lyric": "",
  "prompt": "",
  "replace_section_start": 15,
  "replace_section_end": 30
}

6. Separate into Stems

POST /producer/audios
{
  "action": "stems",
  "audio_id": "existing-audio-id",
  "lyric": "",
  "prompt": ""
}

7. Generate Lyrics

POST /producer/lyrics
{
  "prompt": "a love song about stargazing on a summer night"
}

8. Get WAV / Video

POST /producer/wav
{"audio_id": "your-audio-id"}

POST /producer/videos
{"audio_id": "your-audio-id"}

9. Upload Reference Audio

POST /producer/upload
{
  "audio_url": "https://example.com/reference.mp3"
}

Parameters

Parameter Type Description
action string Required for every /producer/audios request; see actions table
prompt string Required for every /producer/audios request; use an empty string when an edit action does not use a prompt
model string Model (e.g., "FUZZ-2.0 Pro")
custom boolean Enable custom lyrics mode
instrumental boolean Pure instrumental (no vocals)
title string Song title
lyric string Required for every /producer/audios request; custom lyrics use [Verse], [Chorus] tags, otherwise use an empty string
audio_id string Existing audio ID (for edit actions)
continue_at number Seconds — where to extend from
replacesectionstart number Start time of section to replace
replacesectionend number End time of section to replace
lyrics_strength 0-1 Lyrics adherence (default: 0.7)
sound_strength 0.2-1 Sound quality weight (default: 0.7)
weirdness 0-1 Creative randomness (default: 0.5)
seed string Seed for reproducibility

Response Structure

{
  "data": [
    {
      "id": "audio-id",
      "audio_url": "https://cdn.example.com/song.mp3",
      "video_url": "https://cdn.example.com/video.mp4",
      "image_url": "https://cdn.example.com/cover.jpg",
      "title": "Song Title",
      "lyric": "full lyrics...",
      "style": "electronic, dance",
      "model": "FUZZ-2.0 Pro"
    }
  ]
}

Gotchas

  • Use [Verse], [Chorus], [Bridge], [Outro] tags in custom lyrics
  • continue_at is in seconds — the song extends from that point
  • replacesectionstart / replacesectionend define the time range to regenerate
  • weirdness at 0 = predictable, at 1 = highly experimental
  • Upload a reference audio via /producer/upload to get an audio ID for use with cover or extend
  • WAV and video downloads are separate endpoints — call them after the main generation completes
  • CRITICAL: Check the state field in task responses — only state: "complete" with success: true means done. During pending, the API may return intermediate audiourl values (streaming previews). Do NOT stop polling just because audiourl is non-empty