curl --location --request PUT 'https://api.myvocal.ai/sound_clone/api/v1/music/projects/mup_.../arrangement' \
--header 'accessKey: <your_api_key>' \
--header 'Content-Type: application/json' \
--data '{
"expectedVersion": 1,
"title": "Coast Road",
"styleSummary": "Bright summer pop with driving drums.",
"tempoBpm": 118,
"sections": [
{ "sectionId": "<section_id>", "lyrics": "Where the highway meets the sea...", "styleNotes": "Warm pads" }
]
}'
{
"code": 1,
"message": "success",
"data": {
"projectId": "mup_...",
"version": 2,
"arrangement": { "durationSec": 90, "sections": [ "..." ], "requestId": "..." }
}
}
Text-to-Music
Edit the arrangement
Edit an arrangement by merging the editable fields into the current immutable arrangement.
PUT
/
sound_clone
/
api
/
v1
/
music
/
projects
/
{projectId}
/
arrangement
curl --location --request PUT 'https://api.myvocal.ai/sound_clone/api/v1/music/projects/mup_.../arrangement' \
--header 'accessKey: <your_api_key>' \
--header 'Content-Type: application/json' \
--data '{
"expectedVersion": 1,
"title": "Coast Road",
"styleSummary": "Bright summer pop with driving drums.",
"tempoBpm": 118,
"sections": [
{ "sectionId": "<section_id>", "lyrics": "Where the highway meets the sea...", "styleNotes": "Warm pads" }
]
}'
{
"code": 1,
"message": "success",
"data": {
"projectId": "mup_...",
"version": 2,
"arrangement": { "durationSec": 90, "sections": [ "..." ], "requestId": "..." }
}
}
The body is an edit request, not a whole arrangement. The service merges your edit into the current immutable arrangement and re-validates the result.
Header
string
required
API key for authentication.
Path
string
required
The project identifier.
Body
number
required
The
arrangementVersion you based this edit on. A mismatch is rejected with 47016.string
Song title, 1–120 code points.
string
Summary of the musical style, 1–500 code points.
number
null, or between 40 and 220.array
required
Sections to merge, addressed by
sectionId: { sectionId, lyrics, styleNotes }, in section order.Validation rules
The merged arrangement must satisfy:- 4–12 sections; every section
positionmust equal its 1-based index. - Section types:
INTRO,VERSE,PRE_CHORUS,CHORUS,BRIDGE,OUTRO,OTHER. - Each section
durationSecis 5–60, and the durations must sum to the arrangement duration. - At least one
VERSEand oneCHORUSmust be present. - Concatenated
lyrics, trimmed, must be 20–2800 code points.
Response
string
Project identifier.
number
The new arrangement version.
object
The merged, validated arrangement.
curl --location --request PUT 'https://api.myvocal.ai/sound_clone/api/v1/music/projects/mup_.../arrangement' \
--header 'accessKey: <your_api_key>' \
--header 'Content-Type: application/json' \
--data '{
"expectedVersion": 1,
"title": "Coast Road",
"styleSummary": "Bright summer pop with driving drums.",
"tempoBpm": 118,
"sections": [
{ "sectionId": "<section_id>", "lyrics": "Where the highway meets the sea...", "styleNotes": "Warm pads" }
]
}'
{
"code": 1,
"message": "success",
"data": {
"projectId": "mup_...",
"version": 2,
"arrangement": { "durationSec": 90, "sections": [ "..." ], "requestId": "..." }
}
}
Editing the arrangement makes the current quote stale. Request a new quote before generating.
Common errors
code = 47016:expectedVersiondoes not match the current arrangement version. Re-read the project and retry.code = 47001: the merge produced an arrangement that violates a validation rule.code = 47009: the project does not exist or is not owned by your account.
