ATS agent that watches for song creation tasks and processes them through the ACE-Step music generation API.
- Watches ATS channel
song-creatorfor newtask.createdevents - Claims the task, extracts payload (
prompt,lyrics,audio_duration) - Submits to ACE-Step API (
/release_task) for music generation - Polls
/query_resultevery 5s until generation completes - Downloads generated audio from ACE-Step
- Uploads to Backblaze B2 (
adas-storage/music/) - Completes the ATS task with public audio URLs
- Node.js >= 18
atsCLI installed and configured- ACE-Step API running on
localhost:8000 - AWS CLI configured (
~/env.varswith B2 credentials) jq(for test script)
# Start the agent
npm start
# Create a test task
bash test.sh
# Custom test
bash test.sh "upbeat electronic dance music" "your lyrics here" 120{
"prompt": "A dreamy lo-fi hip hop beat with soft piano",
"lyrics": "[verse]\nWalking through the city...\n[chorus]\nLet the music...",
"audio_duration": 240
}| Field | Type | Default | Description |
|---|---|---|---|
prompt |
string | "" |
Music style description |
lyrics |
string | "" |
Song lyrics with section tags |
audio_duration |
number | 240 |
Duration in seconds |
- Type:
agent - ID:
song-creator - Name:
Song-Creator
On success, the ATS task is completed with:
{
"audio_urls": ["https://f004.backblazeb2.com/file/adas-storage/music/task-123-0-1706000000-output.mp3"],
"audio_count": 1,
"ace_step_task_id": "ace-abc123"
}On failure, the ATS task is failed with the error reason.
| Parameter | Value |
|---|---|
thinking |
true |
infer_step |
8 |
guidance_scale |
7.0 |
audio_duration |
from payload (default 240) |
| Variable | Default | Description |
|---|---|---|
ACE_STEP_URL |
http://localhost:8000 |
ACE-Step API base URL |
The watcher auto-reconnects on disconnect with exponential backoff (3s to 60s max).