Skip to main content
A sound effect lands where a cue resolved, so it follows the words like a visual does. The scaffold carries a commented example that puts a click on the tile that counts up in section 2.
1

Describe the effect, or bring a file

A [soundscape.sfx.<name>] table holds a prompt for the ElevenLabs sound generator. The effect is written to build/sfx/<name>.mp3 unless the table’s out key says otherwise.
decktalk.toml
Any audio file that ffmpeg can read works in place of a generated one. Put it anywhere in the project and name its path in the next step.
2

Generate it

The dry run prints every request without sending it and needs no key.
Generated files are cached by their request, so a second run sends nothing unless the prompt changed, and --force regenerates one on purpose.
3

Place it on a cue

A [[mix.sfx]] table names the file, the section, and the cue id. The db key sets the level and offset shifts the effect in seconds from the cue.
decktalk.toml
The cue must be one that decktalk beats resolved for that section. The effect is placed at the section’s start in the video plus the cue’s seconds plus the offset.
4

Assemble

The mix is part of the assemble stage, so no recording changes.
An effect whose file is missing, or whose cue did not resolve, is skipped with a warning that names it, and the build continues.

Next

Sound describes every part of the mix, including the underscore markers that swell or mute the music on a phrase with the same matching keys.