api, userAddress, and the returned songId are available. api includes the session token and selected account headers.
Use this flow for original-plus-layer mixing, shifted takes, a selected part of a candidate, or several mounted candidates. There is no REST merge-all renderer. Your client renders the audible choices; /activate keeps the uploaded region in Master.
Render a full timeline WAV
Render the selected audio in your product’s mixer, including source offsets, timeline shifts, gain and effects. Encode the result as a WAVBlob named wav; the source upload limit is 50 MiB. Rawchunks accepts that render through the upload step below.
Load the latest master and candidates before rendering:
selectedTakeIds comes from your user’s selection. Render against project.song.url and the selected pending master or Layer candidates. Existing stem-target candidates do not belong in a master composition merge. Set original: false for replacement and true for an added layer. Keep these values identical between the render and activation request.
The uploaded buffer must cover the absolute timeline through region.end. A 15-second clip for a 15-to-30-second merge is not enough; its samples need their correct position in a full timeline render.
Upload and activate
commitId you rendered against. A 409 means the saved master or candidate state changed; reload and render again.
Used candidate regions are consumed. Unused regions can remain pending. Reload the resulting project after success.
Merge all selected candidates
Use the same flow with the union of your mounted candidates’ timeline intervals. Render all audible choices into that region, include their shifts inplacements, and list each candidate once. Ordinary instrument lanes are included only if your own renderer includes their audio; candidate merging itself operates on the selected pending takes.