Timeline soundtrack duck_db: 0 to 20 dB, needs a real audio spine

Sume Timeline soundtrack.duck_db accepts 0 to 20 and returns duck_requires_audio_spine on silence. Use it with a voiceover spine; gain_db covers a static level.

5 min readSume
All posts

soundtrack.duck_db in Sume Timeline takes a value from 0 to 20 and lowers the music bed under the audio spine. It needs a real spine, such as a voiceover; with silence the request returns duck_requires_audio_spine.

Soundtrack fields

soundtrack fields, as of 2026-10-08 (docs.sume.com/models/timeline)
FieldMeaning
urlThe music bed
gain_dbStatic level of the bed
loopRepeat the bed to fill the output
fade_out_seconds10 or less
duck_db0 to 20, needs a real audio spine

Choosing a value

Start near 10 for a voiceover over music and listen. A value of 0 does nothing, and 20 pushes the bed far under the voice. Pick the lowest value where words stay easy to follow on a phone speaker.

If the whole output has no voice, skip ducking and set gain_db for a fixed level. The soundtrack fade is also bounded: a fade_out_seconds longer than the output returns soundtrack_fade_exceeds_output.

Build the spine first

Timeline audio can concat or split audio into reusable files at $0.01. Make the voiceover spine there if it comes from several parts, then reference it as the audio of the render. Render is $0.10 per ceil(output minute), so a 45-second intro costs $0.10.

Common mistakes

Setting duck_db on a render whose audio is silence is the usual one. The error duck_requires_audio_spine tells you the spine has no voice to react to. Add the voiceover as the audio spine or drop the field.

A second mistake is a loud bed plus a large duck. If the music is mastered hot, lowering it with gain_db first is simpler than relying on a 20 dB duck to rescue the mix.

Fades on the bed

fade_out_seconds on the soundtrack is limited to 10. The output edge fades are separate and run 0 to 5 seconds. Use the soundtrack fade for the music ending and the output fade for the whole piece, and make sure neither is longer than the output.

Example request fragment

This fragment sets a loop of music at a fixed level with a 10 dB duck under the voiceover spine. The URLs must already be files in your workspace on media.sume.com.

{
  "soundtrack": {
    "url": "https://media.sume.com/artifacts/artf_m1/bed.mp3",
    "gain_db": -6,
    "loop": true,
    "fade_out_seconds": 2,
    "duck_db": 10
  }
}

Where the numbers are

The ranges here come from the Timeline page: duck_db 0 to 20 and fade_out_seconds up to 10. The Timeline audio page covers the voiceover side and its 1800-second limit, and a sync call waits up to 30 seconds for a finished job.

A listening test

Export a 10-second render with duck_db at 6, 10, and 14 and listen on a phone speaker and on headphones. Each render is $0.10 for the first minute, so three tests cost $0.30. Choose the setting where the voice is clear at both and the music is still noticeable in the gaps between phrases. Then reuse that value for the whole series so episodes sound alike.

Keep it consistent

Write the chosen duck_db and gain_db into your template so every episode of a series uses the same mix. Changing them per episode makes loudness jump between uploads, and viewers notice that before they notice the music.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume