cues.json is the cue file. It names the spoken phrase for each cue id, section by section. It is
optional. A project without it plays every page with the page’s own autoplay timing. This page
lists every key.
cues.json
7.1. Section 9 plays
scene 5, so its cue ids start with 5.1. The block below is a shape, not the scaffold’s values. It
shows the optional keys.
cues.json
Shape
The file is one object with asections key. The load ignores every other top-level key, such as
_comment. Each key of sections is a section number as a string, and it must name a
[[section]] in decktalk.toml. Each section is an object with an optional min_seconds and a
cues list.
Every cue id must appear in its page as a quoted literal, such as data-cue="1.1bowl" or a key of
a step’s cues object. Cue mismatches says what happens when an id
is missing.
Section keys
Note: For short speech,
decktalk beats prints the note
speech <S>s is <D>s shorter than the visuals need. beats --strict exits 1 on it.
Cue keys
Note: A cue id must not contain a comma, because commas separate the pairs in
?beats=. DeckTalk
does not check this. An @ in an id still works, because the page splits each pair at its last @.
Avoid @ anyway, so ids stay easy to read.
Note: decktalk verify still checks a "verify": false cue that you name as SECTION:CUE.
Anchors
Note:
decktalk verify skips a $start cue with no offset key, as REFERENCE_CLAMPED.
Note: A section’s lead_seconds moves every word, and so every phrase cue and $end, that much later. $start stays at 0.
Skipped rows explains why.
Output files
decktalk beats writes build/audio/beats.json, with each section’s cue times as its ?beats=
string. It also writes build/audio/beats.anchors.json, with each cue’s word start before the offset
key. Build artifacts has the shape of both files.
Related
- Learn the matching rules: Cues
- Write phrases that time well: Writing for the ear
- Learn which step owns a cue: The page contract