Step 6 — Soundstage / Timeline Assembly: COMPLETE
Authored by: onyx-editor
Date: 2026-05-22
Status: ALL GATES PASS. Timeline ready for render.
Deliverables
| Deliverable | Status | Location |
|---|---|---|
| Processed voice stems (35) | COMPLETE | audio/voice-processed/*.wav |
| Timeline JSON | COMPLETE | timeline.json |
| Build script | COMPLETE | build_timeline.py (re-runnable) |
| Verification Gate 1 (voice-sync) | 35/35 PASS | — |
| Verification Gate 2 (overlaps/gaps) | 0 violations | — |
Timeline Summary
| Metric | Value |
|---|---|
| Narrative content | 295.5s (4:55.5) |
| + Opening title | +8s |
| + Closing credits | +8s |
| Full program | ~311.5s (5:11) |
| Video clips | 34 (32 scenes + 2 silent beats) |
| Voice stems (VO) | 27 clips |
| Voice stems (DLG-ROSARIO) | 6 clips |
| Voice stems (DLG-CLARA) | 2 clips |
| Score clips | 8 (1 warm + 6 ache + 1 return) |
| Crossfade transitions | 6 |
Audio Processing Complete
| Operation | Count | Detail |
|---|---|---|
| Atempo 1.30x | 27 VO stems | Narrator speed-up |
| Atempo 1.20x | 8 DLG stems | Dialogue protected |
| Head/tail trim | All 35 | 0.1-0.25s per end |
| Peak normalize | All 35 | -1.0 dBFS |
| Internal silence trim | 1 (vo_6_6b) | Dramatic pause: 5s → 1.5s |
Shot Duration Extensions (Editorial)
The v4 LOCKED budget (300s) counted scene transitions as additive time. In the timeline implementation, crossfade transitions are overlaps that reduce runtime. Resolved with editorial extensions to shots where the visual benefits from breathing room:
| Shot | Original | Extended | Delta | Rationale |
|---|---|---|---|---|
| 1.1 | 7s | 8s | +1s | Let golden sun register |
| 2.2 | 14s | 15s | +1s | Rosario’s storytelling breathes |
| 3.3 | 10s | 12s | +2s | Clara’s realization lands |
| 4.1 | 8s | 10s | +2s | Seasonal shift, Rosario moves slowly |
| 5.1 | 10s | 13s | +3s | Empty table. Grief in stillness. |
| 5.3 | 10s | 14s | +4s | Clara in Rosario’s chair, long hold |
| 6.3 | 7s | 9s | +2s | Sirena revelation settles |
| 6.5 | 7s | 9s | +2s | Tears visible, let them land |
| 6.6b | 10s | 13s | +3s | ”Loneliness” needs room |
| 6.7 | 15s | 18s | +3s | Second wave of grief at 18s |
| 7.1 | 10s | 12s | +2s | Spatial shift gets weight |
| 7.2b | 7s | 11s | +4s | THE final image. Hold it. |
| Total | +29s |
All extended shots have raw material to cover (15s standard, 22s double-extend).
Score Placement
| Stem | Duration Used | Scenes | Clips |
|---|---|---|---|
| score_warm | 74.0s of 161.8s | 1-2 | 1 |
| score_ache | 110.6s of 143.8s | 3-6 (with gaps) | 6 |
| score_return | 22.0s of 28.0s | 7 | 1 |
Score-silent sections respected:
- Scene 4.4 fumble moment (2s)
- Scene 5 throughout (grief silence)
- Scene 6.1 (kitchen ambient)
- Silent Beat 2 (between 6.3→6.4)
- Silent Beat 3 (between 6.5→6.6a)
- Scene 6.6 hesitation/flip (6s)
- Scene 6.7 final seconds
- Scene 7.2b final 2s
Track Configuration
| Track | Type | Role | Volume | Ducking |
|---|---|---|---|---|
| V1 | video | — | — | — |
| VO-NARRATOR | audio | voice | +4 dB | — |
| DLG-ROSARIO | audio | voice | +4 dB | — |
| DLG-CLARA | audio | voice | +4 dB | — |
| SCORE | audio | music | -4 dB | duck_under: voice, duck_db: -18 |
Title Cards Received
| Asset | Duration | Resolution | Status |
|---|---|---|---|
| opening_title.mp4 | 8s | 1280×720 | Verified ✓ |
| closing_credits.mp4 | 8s | 1280×720 | Verified ✓ |
Step 6 complete. Timeline assembled. All verification gates pass. Ready to proceed to Step 7: Final Render.