producer-music
Producer Music Generation
Generate AI music through AceDataCloud's Producer API.
Setup: See authentication 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", "prompt": "upbeat electronic dance track with synth leads"}'
Async: All generation is async. See async task polling. Poll via
POST /producer/taskswith{"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",
"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",
"instrumental": false
}
3. Instrumental Only
POST /producer/audios
{
"action": "generate",
"prompt": "epic orchestral soundtrack for a movie trailer",
"instrumental": true
}
4. Extend Song
POST /producer/audios
{
"action": "extend",
"audio_id": "existing-audio-id",
"continue_at": 30
}
5. Replace Section
POST /producer/audios
{
"action": "replace_section",
"audio_id": "existing-audio-id",
"replace_section_start": 15,
"replace_section_end": 30
}
6. Separate into Stems
POST /producer/audios
{
"action": "stems",
"audio_id": "existing-audio-id"
}
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 | See actions table |
prompt |
string | Song description (for non-custom mode) |
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 | Custom lyrics with [Verse], [Chorus] tags |
audio_id |
string | Existing audio ID (for edit actions) |
continue_at |
number | Seconds — where to extend from |
replace_section_start |
number | Start time of section to replace |
replace_section_end |
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_atis in seconds — the song extends from that pointreplace_section_start/replace_section_enddefine the time range to regenerateweirdnessat 0 = predictable, at 1 = highly experimental- Upload a reference audio via
/producer/uploadto get an audio ID for use withcoverorextend - WAV and video downloads are separate endpoints — call them after the main generation completes
- CRITICAL: Check the
statefield in task responses — onlystate: "complete"withsuccess: truemeans done. Duringpending, the API may return intermediateaudio_urlvalues (streaming previews). Do NOT stop polling just becauseaudio_urlis non-empty
More from acedatacloud/skills
luma-video
Generate AI videos with Luma Dream Machine via AceDataCloud API. Use when creating videos from text prompts, generating videos from reference images, extending existing videos, or any video generation task with Luma. Supports text-to-video, image-to-video, and video extension.
10short-url
Create short URLs via AceDataCloud API. Use when generating shortened links for sharing, or batch-creating multiple short URLs at once. Supports custom slugs and expiration.
9seedream-image
Generate and edit AI images with Seedream (ByteDance) via AceDataCloud API. Use when creating images from text prompts, editing existing images, or working with high-resolution outputs. Supports Seedream 3.0 T2I, 4.0, 4.5, 5.0, and SeedEdit 3.0 models.
9flux-image
Generate and edit images with Flux (Black Forest Labs) via AceDataCloud API. Use when creating images from text prompts, editing existing images with text instructions, or when high-quality image generation is needed. Supports multiple Flux models including dev, pro, ultra, and kontext for editing.
9veo-video
Generate AI videos with Google Veo via AceDataCloud API. Use when creating videos from text descriptions, animating still images into video, upscaling/extending videos, re-shooting with new camera motion, or inserting/removing objects. Supports Veo 2, Veo 3, and Veo 3.1 models including fast variants.
9sora-video
Generate AI videos with OpenAI Sora via AceDataCloud API. Use when creating videos from text prompts, generating videos from reference images, or using character references from existing videos. Supports text-to-video, image-to-video, and character-driven generation with multiple models and resolutions.
8