Bind Audio to Sequence
lab_bind_audioBind the project's generated audio to a sequence's tracks — ONE call that does both halves of the job, because doing only the first half silently produces a silent film. Half one (POST …/soundmix) creates the four empty tracks (dialog, music, sfx, atmo); half two (POST …/soundmix/resolve-stems) is what actually attaches the audio rows to them. On 2026-08-28 that split cost a complete silent export: the mix looked configured, and every track was empty. From here it is one tool, and it is idempotent — an existing mix is NOT re-initialised (that would throw away volumes, effects and the other tracks' bindings), only re-resolved. Per track it takes the audio row marked selected, otherwise the newest one with a url. Rows still pending have no url and stay unbound. That choice is re-made on every call: generate a second music track and run this again, and the music track follows the NEWER row — unless one row is pinned with selected, which is set in the web UI. With audio_ids the named rows are bound and PINNED, and every track you do NOT name is pinned EMPTY (so an old narrator or sfx row of the project cannot slip into the mix); later automatic resolves, e.g. before a render, keep all of that. A call WITHOUT audio_ids releases every pin and resolves as described above. Changes state, costs nothing. Next: lab_beatgrid.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| seq_id | Yes | Sequence id (from lab_create_sequence/lab_list_sequences) — positive integer as string | |
| audio_ids | No | Bind EXACTLY these rows instead of the newest/selected one per track, as { music: '12', dialog: '13' }. Named tracks are pinned to these rows, tracks you leave out are pinned empty. Each row must belong to this project, match the track's audio type and have a file. |