7.5.Timeline and automatic gaps (Since 1.1.0)
Items are placed in order. A timed item (a gloss, a block, $viseme, or $pause)
occupies frames; markers ($shift, $reset, expression markers) occupy none and are
transparent to gap sizing.
A gloss with speed
soccupies frames, from its start frametto .Between consecutive timed items, and before the first (lead-in) and after the last (tail-out), the composer inserts a gap of neutral transition frames. With , where
minGapis the composition's minimum gap (default 2):dis the distance between the outgoing pose (the previous item's last keyframe pose) and the incoming pose (the next item's first keyframe pose): the Euclidean distance over the normalized P values, with each side's wrist orientation compared as a rotation (sign-invariant quaternion chord). Both poses are measured with the shift active for that item (§7.6.4); afixed_positiongloss, a pause, and the lead-in/tail-out boundary are measured unshifted, and a boundary or pause uses the registry default pose. The cap 15 never falls belowm.The gap is replaced, in this order of precedence, by: the fixed gap of a
[ ]group member (§7.6.5);mfor an item joined with||(§7.7.6); 3 frames between two consecutive glosses flaggedspelling.The timeline length is , where
endis the frame after the tail-out gap.