Skip to content

Previs Timeline (NLE)

The timeline is a staging editor embedded in the script reader — it assembles voice, boards, previs and styled media per scene. Finals go to Resolve/Premiere via OTIO/FCP export.

Tracks

Top to bottom in the NLE:

Row Content
Style Render Seedance-styled shot videos (per block/take)
Style Frame Committed style frames
Previs Clay previs renders
Shots Derived live from the voice track — camera == shot
Storyboard Boards (SRB)
Voice / Audio The derived dialogue track — the timeline's backbone

The three media rows double as a shot-styling dashboard: each cell shows whether the clay render, style frame, and styled video exist for that take.

Data model & storage

SceneTimeline → Track → TimelineItem in alc/models/edit/models.py (Clip, AudioClip, DialogueClip, ImageClip, StoryboardClip; RationalTime/TimeRange at 24 fps).

  • The JSON is the source of truth: scene_{parent}_timeline.json, kept 1:1 with the on-screen view (SceneTimeline.load_manifest / save_manifest).
  • The voice track is derived from script blocks; per-block AudioOverrides (trim in/out, lead gap, mute) layer edits on top without forking the derivation. Untouched blocks keep re-deriving.
  • storyboard_locked / shots_locked flags preserve manual cuts across rebuilds.
  • Media rows are resolved by alc/services/media/prv_media.py, scanning {seq}_{block}_{take}_MagiCam render directories.

Editing operations

All endpoints in app/tools/script/timeline.py (.../scenes/{scene_id}/timeline/*): trim/move/swap/delete storyboard clips, non-destructive shot trims (plus ripple-trim and close-gaps), voice trim/move/mute per block, storyboard insert, and style-frame / style-video generation (background threads, polled via /timeline/media-rows).

Export

POST .../timeline/export-edit writes an edit/ folder beside the latest previs render:

  • OTIO — video stack V1–V4 (boards, previs, style frame, style render), A1 voice; alc/models/edit/otio.py (OtioSceneTimeline).
  • FCP 7 XML — for Premiere/Resolve, with Windows-path fixups (FcpXmlHelper).
  • Animatic — alc/services/media/animatic.py renders a review .mp4 + thumbnail proxy.