A series theme from one Lyria track, ducked under every episode
Generate a theme once with Music 1.0 on Lyria 3.5, then reuse it under each episode with Timeline 1.0 soundtrack, loop, fade_out and duck_db. Request body.

Generate the theme once, then lay it under every episode with the soundtrack block of Timeline 1.0, which loops the track, fades it out and ducks it under dialogue. One song then identifies the series, and each episode adds only the $0.10 per started minute render. Metricool reports TikTok funding episodic series, where a recognisable sound helps.
Music generation has no duration parameter, so ask for the length in the prompt and let the timeline fit it to each episode.
Make the theme once
Music 1.0 runs on Google Lyria 3.5 and routes through the Music Router; new integrations call POST /v1/music-router/generate. Do not send duration or duration_seconds, which are rejected. Put the length in the prompt, such as a 2 minute track, and close the brief with an instrumental clause so it does not fight the dialogue.
The prompt can be up to 5000 characters. State emotion, tempo as a number, key and two to four instruments. See the Music 1.0 page for the seven-axis brief.
Lay it under an episode
The soundtrack block takes a url, gain_db, loop, fade_out_seconds (at most 10) and duck_db (0 to 20). Ducking needs a real audio spine, meaning the episode's dialogue, not silence; otherwise the render is refused with duck_requires_audio_spine.
{
"audio": {"url": "https://media.sume.com/artifacts/artf_ep2/ep2-voice.wav", "duration_seconds": 90},
"video": [{"source_url": "https://media.sume.com/artifacts/artf_ep2/ep2.mp4", "start": 0, "duration": 90}],
"soundtrack": {"url": "https://media.sume.com/artifacts/artf_theme/theme.wav",
"gain_db": -6, "loop": true, "fade_out_seconds": 4, "duck_db": 12}
}What the fields do
Four fields do the work. Read the ranges before you set them, because a fade longer than the episode is refused.
| Field | Range | Effect |
|---|---|---|
| gain_db | Number | Level of the bed |
| loop | true or false | Repeat the track to the episode length |
| fade_out_seconds | Up to 10 | Fade at the end; longer than the spine is refused |
| duck_db | 0 to 20 | Lower the bed under the audio spine |
Cost and limits
The theme is billed once as a music job; check the live price in GET /v1/catalog since this page does not quote one. Each episode render is $0.10 per started output minute, so a 90 second episode is $0.20. Run /v1/timeline-1.0/plan first for an unbilled estimate.
Sume does not detect beats or match a track's tempo to cuts. Choose cut points yourself, and listen to the first render before you batch the season.
Sources
Related posts
More in Media tools
- The Shorts like button is a heart: keep captions clear of it
On YouTube Shorts the like control is a heart, and dislike is for long-form. Where creator hearts come from, and how to keep burned-in text clear of the icons.
- Shorts thumbnail 2160x3840 hits GPT Image 2.5's 8,294,400 px cap
YouTube's Shorts thumbnail size, 2160x3840, is exactly 8,294,400 pixels, the top of Sume's GPT Image 2.5 custom range. 1080x1920 is not legal; 1088x1920 is.
- Sneaker on a foot photo, then a 9:16 clip: image edit plus Videos API
Put a sneaker product shot on a foot photo with gpt-image-2.5, then animate that still with a first_frame on POST /v1/videos. Two calls, one Sume key.
- Split one voiceover into scene clips with timeline audio ranges
Sume timeline audio split slices one hosted file into up to 20 ranges for $0.01 per job, and ranges may overlap. For a video source, detach its audio first.
Written by Sume