# Hold one lyric caption across picture cuts while a beat dot blips word by word along the line Manual DaVinci Resolve / Fusion construction guide generated from the recipe. It is not a tested .drp. The accompanying Remotion project (recipe.json) is the executable definition; the numbers below are copied from it. Neither construction establishes source fidelity: this is an original vector approximation of an inspected editing moment. ## Source and clock Reference: OpenAI's "No Limits on Text Chats with ChatGPT" (9MIkJHcMtVA), published 2026-08-25. Source interval [2036, 2146) on the 24000/1001 fps master: 110 frames, 4.587917 s. Local frame 0 = source frame 2036. Create a 1920x1080 progressive timeline at 24000/1001 fps and a Fusion composition exactly 110 frames long. Keep integer frames; do not round the frame rate. Background field: #171a36. Export silent H.264 yuv420p to match the intended playback container. ## Observation Local 0-1 (master 2036-2037) show a performer against the set with no caption. At local 2 (2038) the picture cuts to a second performer and a bold white lyric line appears in the same frame, low and centred. The caption then never changes while the camera pushes closer and, at ~local 67 (2103), the picture hard-cuts again to a wider shot. Above the caption a 28 px dot blinks on for about two frames at successive word positions moving left to right: black at ~f30 (x~548), lilac ~f37 (x~680), green ~f43 (x~800), yellow ~f55 (x~892), blue ~f70 (x~1012), pink ~f79 (x~1120) and orange ~f85 (x~1220). No dot after that; the caption holds to the end. ## Mechanism A caption that is locked to the lyric, not to the picture: it survives two hard cuts while a two-frame beat dot steps across the line in sync with the vocal. ## Phases (local frames) - 0: First performer, no caption - 2: Cut to second performer; caption on - 30: Beat dot blips across the words - 67: Hard cut to wider shot; caption persists - 85: Last blip, caption holds ## Layer inventory (absolute 1920x1080 top-left pixels, back to front) - shot-a [group] at (0, 0) size 1920x1080 visible [0, 2) - a-ray [rect] at (-100, 80) size 1200x160 fill #e8c22c - a-globe [ellipse] at (1150, 560) size 300x300 fill #2f8fe0 - a-globe-2 [ellipse] at (1520, 600) size 260x260 fill #e9e4d6 - a-box [rect] at (1060, 440) size 860x640 radius 20 fill #8a2b2b - a-figure [rect] at (260, 120) size 380x960 radius 120 fill #0d0f22 - shot-b [group] at (0, 0) size 1920x1080 visible [2, 67) - b-ray-a [rect] at (300, 20) size 1300x150 fill #e0762b - b-ray-b [rect] at (900, 220) size 1200x120 fill #e8c22c - b-star [path] at (1500, 200) fill #f0a52a stroke #f0a52a 1px - b-table [rect] at (1160, 520) size 560x220 radius 40 fill #e9e4d6 - b-figure [rect] at (700, 220) size 520x900 radius 160 fill #0d0f22 - b-figure-2 [rect] at (60, 320) size 300x800 radius 100 fill #151833 - shot-c [group] at (0, 0) size 1920x1080 visible [67, 110) - c-ray-a [rect] at (-200, 160) size 1000x170 fill #e0762b - c-ray-b [rect] at (1000, 40) size 1100x140 fill #e8c22c - c-panel [rect] at (1200, 380) size 720x420 radius 30 fill #8fd3f0 - c-arrow [path] at (1560, 660) fill #c8322a stroke #c8322a 1px - c-table [rect] at (40, 540) size 520x200 radius 40 fill #e9e4d6 - c-figure [rect] at (640, 140) size 520x960 radius 160 fill #0d0f22 - caption [text] at (0, 764) size 1920x0 text "Go on, go on go on, go on go on, go on" 58px weight 700 #ffffff visible [2, 110) - beat-dot [ellipse] at (534, 706) size 28x28 fill #111111 visible [30, 87) keyframes opacity: f30=1, f32=0 (hold), f37=1 (hold), f39=0 (hold), f43=1 (hold), f45=0 (hold), f55=1 (hold), f57=0 (hold), f70=1 (hold), f72=0 (hold), f79=1 (hold), f81=0 (hold), f85=1 (hold), f87=0 (hold) keyframes x: f30=534, f37=666 (hold), f43=786 (hold), f55=878 (hold), f70=998 (hold), f79=1106 (hold), f85=1206 (hold) keyframes fill: f30=#111111, f37=#c8a2ee (hold), f43=#3cd44f (hold), f55=#f0d24a (hold), f70=#2b8fef (hold), f79=#f3b6c4 (hold), f85=#e8641c (hold) ## Construction steps 1. Timeline 1920x1080 at 23.976 fps; Fusion composition 110 frames. Local 0 = master frame 2036. 2. Three stand-in shots on the picture track, all straight cuts: shot A frames 0-1, shot B frames 2-66, shot C frames 67-109. Each is a navy field with rotated colour bars, a pale table block and a dark silhouette in a different arrangement. 3. Caption: Text+ 58 px, weight 700, tracking -1, white, centred, top at y=764, on a separate track above the picture. Start it at frame 2 (the same frame as the first cut) and let it run untouched to the end so it visibly outlives the cut at 67. 4. Beat dot: 28 px ellipse at y=706 with step keys on opacity (on for two frames at 30, 37, 43, 55, 70, 79, 85), on X (534, 666, 786, 878, 998, 1106, 1206) and on colour (black, lilac, green, yellow, blue, pink, orange) at the same frames. 5. Easy mistake: cutting the caption with the picture at 67. The edit point of the caption is the lyric, so it must stay frozen through the cut. ## Content variants Default copy: - line: Go on, go on go on, go on go on, go on Adaptation changes: - line: Say yes, say yes yes yes, say yes yes yes ## Limits Easing names map to Fusion spline shapes: linear = linear, in/out/inOut = ease curves on the same frames, hold = step, spring/overshoot = slight overshoot past the target before settling. Text reveal frames give the first and last unit; distribute characters/words evenly between them. Cursor click rings last 14 frames. Vector illustration is an approximation of layout and motion, not the product UI or recovered production assets.