decktalk.toml
Which value wins
Every key has a scope, in the Scope column below, and the scope names the one file that may set it. A project key is set by these, each overriding the ones before it:- The default in the table below.
- The same table in the project’s
decktalk.toml. - The environment variable each key publishes, such as
DECKTALK_VIDEO_PRESET. --set table.key=value, for one run, onstatus,check,words,storyboard,serve,narrate,cue,record,score,assemble,verify,buildandclip.
decktalk.toml.
decktalk config explain KEY prints the value in force and the layer it comes from, so you never
have to work out which one that is.
Each file refuses a key of the other scope by name. A key about the film in the per-machine file is
refused because the file that ships has to carry whatever the machine running it believes.
DECKTALK_MACHINE_FILE names a different per-machine file.
Keys only a machine may set
These keys describe the machine rather than the film: where a tool or a cache lives, and how hard this machine may be driven. A project file that sets one is refused by name, because a project travels and a path or a limit that is right on one machine is wrong on the next. Write one into this machine’s file withdecktalk config set KEY VALUE --scope machine, or set its environment variable.
narration.concurrency, narration.retries, narration.store_dir, record.page_policy, record.programs, record.concurrency, record.chunk_frames_min, record.chunk_startup_seconds, record.step_seconds, record.page_deadline_seconds, record.deadline_slowdown, record.renderer_retries, record.encode_threads, elevenlabs.base_url, dtsp.base_url, dtsp.handshake_seconds, events.max_bytes, tools.chromium, tools.ffmpeg, tools.ffprobe, tools.timeout_seconds, tools.fix_timeout_seconds and tools.cache_dir.
Which key moves which failure
A finding names the key that decided it. This is the same index in reverse, for the case where you have a code and want the candidates before you run anything.[video]
These keys set the frame size and the encoding of every recording and of the final mp4.
[narration]
These keys govern how the script is turned into audio.
[record]
These keys tune how record opens each page section in headless Chromium and steps it frame by frame.
[audio]
These keys are the final audio: its encoding, and the loudness it is normalised to and judged against.
[verify]
These keys are the limits verify judges the assembled mp4 against.
[mix]
The settings half of [mix], which is how each layer is ramped. Its files and levels are project content.
[motion]
These keys decide how much motion a build renders, which changes the film it produces.
[elevenlabs]
These keys are ElevenLabs’s own: its speech fields, its model, its rate, its output format and its API. The key it is bought with is ELEVENLABS_API_KEY, and base_url is the machine’s to set. The score stage buys from the same API with the same key.
[dtsp]
These keys are the dtsp provider’s own: where its local server listens, the model it reads with, and how long the server has to say which aligner it serves. dtsp speaks the DeckTalk speech protocol to decktalk-voice, a separate local server that is not part of this repository and is not yet public. The same server times the words of a take whose voice sent none. It needs no key, bills nothing, and base_url is the machine’s to set.
[score]
The settings half of [score]: how the music, the ambience and the effects are asked for. Each item’s own table holds its prompt and its file, which are project content, beside the settings that size its request, so a key is spelled the same way the item it sizes spells it.
[score.ambience]
The settings half of [score.ambience]: how the ambience bed is asked for. Its prompt and file are content.
[score.effects]
The settings half of [score.effects]: how each effect is asked for unless its own table says.
[score.music]
The settings half of [score.music]: how the music is asked for and joined. Its prompt is content.
[output]
These keys switch the files a build writes beside the final mp4.
[events]
These keys bound the events files a run writes under build/events/.
[tools]
These keys name the tools DeckTalk drives, for a machine that supplies its own.
[voices]
Every voice of the project, one table per voice, each named by the name a voice direction in the script calls it by. The table [narration] voice names is the default voice.
These keys are the three every voice has: which provider reads its turns, in which voice and at what pace. Each voice is one [voices.NAME] table. Everything a provider is particular about, its own fields, its model and its rate, is in that provider’s own table, and a voice may state any of that table’s chosen keys for itself alone, so changing provider never sends one vendor’s fields or model to another.
Write one table per voice, named by the name the script’s voice directions use, such as
[voices.guest]. A voice name is a lower-case letter followed by lower-case letters and digits. Each
key below is set for that voice alone, and its variable spells the voice’s name, such as
DECKTALK_VOICES_GUEST_ID. A key that names a provider table’s key reads that table’s value until
the voice states its own.
The numbers that are not settings
These are the numbers that decide something and are still not settings. A derived number is written as its expression, so it follows the keys it reads at every frame size and every rate. A constant is a fact about a codec, a standard, or a tool DeckTalk drives, and it is fixed for the same reason a sample rate is. Neither can be set, and both are here so that a setting you cannot find is a number you can read.Related
- Set the sections, the voice and the mix: decktalk.toml
- Read the
[verify]limits in context: Verify - Turn a key for one run: CLI