- The narration and the audio of every clip are always in the mix.
- The underscore, the ambience bed, and sound effects are the soundscape. Each part stays off until
[mix]indecktalk.tomlnames a file. - The underscore gets quieter under each spoken span and under each clip.
- A markers file can swell or mute the underscore at a spoken phrase.
- After the parts are summed, the loudness pass brings the mix to one target.
Parts of the mix
The mix has five parts. Only the first two are always present.
If a sound effect file is missing, or its cue did not resolve,
assemble skips that effect with a warning. If the
underscore file is missing, assemble builds the video with no underscore and prints a warning. The --nomix flag
leaves out the whole soundscape, so the mix holds only the narration and the clip audio.
Ducking
The underscore ducks byunderscore_duck_db under each spoken span and under each whole clip. At the default of
-6 dB, the underscore plays 6 dB quieter than underscore_db there.
- A page section’s spoken span runs from its start to the end of its last spoken word.
- Under a clip, the duck covers the whole clip.
- The duck ramps over
[audio] duck_ramp_seconds, 0.5 s by default, inside each edge of a spoken span or a clip.
[audio] in
Configuration.
The next figure shows the underscore level around the clip section from Add a clip section,
for a project that has an underscore file. DeckTalk computes the level from the scaffold’s [mix] and [audio] settings.
The underscore rises as the speech of section 4 ends, then stays down under the clip.
Markers
A markers file swells or mutes the underscore at spoken phrases. It gives the underscore some structure without an edit to its file. The scaffold’smedia/markers.json swells the underscore at the start of section 1.
media/markers.json
If
[mix] markers names a file that does not exist, the underscore plays with no markers and a warning. If a
marker’s phrase is not found, assemble skips that marker with a warning. The mute and swell ramps are
marker_mute_ramp_seconds and marker_boost_ramp_seconds under [audio].
Loudness
After the parts are summed, the loudness pass runs in this order.- It measures the integrated loudness and the true peak of the mix.
- It applies the gain that reaches the integrated target,
[mix.loudnorm] I. - It runs a limiter at 192 kHz to catch peaks between samples. The limiter sits 0.3 dB under the ceiling,
[mix.loudnorm] TP. - It measures the result again and prints it.
- If the result is more than 1 LU from the target, or above the ceiling,
assembleprints a warning. - With
--strict, that warning is an error instead. - The
--no-loudnormflag skips the pass. decktalk.toml lists the[mix.loudnorm]keys.
Generated sound
decktalk soundscape generates soundscape files from the prompts in [soundscape]. It uses the ElevenLabs sound
and music endpoints, which spend credits.
decktalk.toml
- Music and ambience go to the paths in
[mix]. With no path there, they go tobuild/music/underscore.mp3andbuild/sfx/ambience.mp3. - Each sound effect goes to
build/sfx/<name>.mp3. - Music longer than
[elevenlabs] max_music_chunk_secondsis requested in chunks and joined with a crossfade. - Each output has a manifest file with a hash of its request. A second run sends nothing unless a request changed.
--forcegenerates an item again, even when its request did not change.
[soundscape] key.
Your own audio files
Point[mix] underscore, [mix] ambience, and each [[mix.sfx]] file at any audio file that ffmpeg can read.
Keep your own file at a path that no [soundscape] table writes to. decktalk soundscape generates any output
that has no manifest file next to it, and it overwrites your file. The scaffold’s [soundscape.music] is in comments,
and it writes to the [mix] underscore path. Leave that table in comments, or point [mix] underscore at your own
file.
Terms
Next
- Put one sound on a cue: Put a sound effect on a cue
- Set the mix levels: decktalk.toml
- See what spends credits: Requirements