emk-signal-final-draft-v1.mp4 · emk-signal-final-draft-v1.srt · duration ~1:12.8
Bug 1 — silent dead-air pauses before every flash-cut. The original assembly padded whichever of
a beat's video/audio was shorter up to match the longer one. For six of the ten rows (1, 3, 4, 5, 8, 9)
the silent video clip ran longer than its own narration, so the assembly stretched the audio with trailing
silence to match — beat 5 alone got 3.35s of dead silence tacked onto a 2.81s line. That silent hold, right
before every white-flash cut, is what read as "the transition pauses and the video feels disconnected."
Fixed in scripts/assemble-final.sh: each segment's length is now always the beat's own narration
length (durA) — "the video follows the voice," this project's own stated convention — so a clip longer than
its narration is trimmed to the narration's end instead of stretching the audio with silence. A clip
shorter than its narration still freezes its last frame (beats 2, 4b, 6 — nothing else to show).
Bug 2 — a torn/corrupted frame right after the beat 3→4 cut. Frame-accurate extraction found a
genuinely corrupted frame (top-left ~47% showing real content, the rest flat grey) landing exactly on the
first visible frame after the flash into beat 4. Traced to its source: beat4/clip.mp4's own
frame 0 is that corrupted frame (confirmed in the raw take itself, before assembly ever touches it — frame 1,
40ms later, is clean). The source clip wasn't touched; the assembly now starts reading that one input 40ms
in (the same front-of-take-preamble trim this project already uses elsewhere), so the corrupted frame is
never selected.
Also picked up beat 7's real re-time (1ec1ea5/23eead7, landed on this same repo
mid-QC) — its old 10.00s clip and 3.8s freeze-pad are gone; the new 14.56s clip trims cleanly to its 13.82s
audio like every other beat now.
beat3/clip.mp4, so it's baked into that beat's own choreography, not introduced by muxing.| Beat | Silent clip | Narration audio | Final segment | Note |
|---|---|---|---|---|
| 1 | 9.60s | 7.25s | 7.25s | trimmed to narration (was: held 2.35s silent) |
| 2 | 4.56s | 4.62s | 4.62s | audio ~0.06s longer, video freeze-padded |
| 3 | 8.32s | 5.69s | 5.69s | trimmed to narration (was: held 2.64s silent) |
| 4 | 8.48s* | 7.89s | 7.89s | *starts 40ms in (skips corrupted frame 0); trimmed to narration |
| 4b | 3.76s | 4.68s | 4.68s | audio longer, video freeze-padded ~0.9s |
| 5 | 6.16s | 2.81s | 2.81s | trimmed to narration (was: held 3.35s silent) |
| 6 | 6.88s | 7.50s | 7.50s | audio ~0.62s longer, video freeze-padded |
| 7 | 14.56s | 13.82s | 13.82s | re-timed clip (was 10.00s/3.8s freeze); now trims cleanly |
| 8 | 9.56s | 8.46s | 8.46s | trimmed to narration (was: held 1.1s silent) |
| 9 | 8.52s | 7.89s | 7.89s | trimmed to narration (was: held 0.63s silent) |
Numbers are fresh ffprobe reads taken during this QC pass (2026-09-27).
scene7.ts fixed to import the real v2 narration/timing
under the right keys) partway through this QC pass and is now included above — its clip and audio finally
match. Not re-verified further beyond the transition-boundary and loudness checks below.
docs/CUE-MAP.md's onsets, projected into the full assembled timeline — all landed on/near
their cue except the two beat-3/beat-1 observations noted above (both upstream, not assembly bugs).volumedetect pass (mean -18.6 to -19.1 dB, max -5.3 to -6.3 dB
across all 10 rows — tight and consistent) and a full-track silencedetect pass confirming
continuous audio with no dropouts and no accumulated drift by the final beat.