EMK Signal — first full-draft assembly v1.1, QC pass

Deep frame-by-frame QC pass complete (2026-09-27). Two real assembly-pipeline bugs were found and fixed — see below — and the draft was rebuilt. All nine beat-to-beat transitions were re-verified frame-accurate after the fix and read as clean, quick flash-cuts with no dead pauses and no torn frames. Duration dropped from ~83.5s to ~72.8s as a direct result (the removed time was silent dead air, not content).

emk-signal-final-draft-v1.mp4 · emk-signal-final-draft-v1.srt · duration ~1:12.8

What changed in this QC pass

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.

What is NOT an assembly bug (reported, not fixed here)

Per-beat numbers (video / audio / final segment length)

BeatSilent clipNarration audioFinal segmentNote
19.60s7.25s7.25strimmed to narration (was: held 2.35s silent)
24.56s4.62s4.62saudio ~0.06s longer, video freeze-padded
38.32s5.69s5.69strimmed to narration (was: held 2.64s silent)
48.48s*7.89s7.89s*starts 40ms in (skips corrupted frame 0); trimmed to narration
4b3.76s4.68s4.68saudio longer, video freeze-padded ~0.9s
56.16s2.81s2.81strimmed to narration (was: held 3.35s silent)
66.88s7.50s7.50saudio ~0.62s longer, video freeze-padded
714.56s13.82s13.82sre-timed clip (was 10.00s/3.8s freeze); now trims cleanly
89.56s8.46s8.46strimmed to narration (was: held 1.1s silent)
98.52s7.89s7.89strimmed to narration (was: held 0.63s silent)

Numbers are fresh ffprobe reads taken during this QC pass (2026-09-27).

Beat 7 was re-timed (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.

QC done this pass

← back to takes