Timeline reference

A timeline is made of tracks, clips, and keyframes. The JSON file on disk is the single source of truth.

Structure

A timeline has three units.

  • Track: a layer of video, audio, or subtitles. Upper tracks render on top.
  • Clip: one rectangle on a track, with start/end times, source path, and transition info.
  • Keyframe: a property value at a specific time inside a clip (position, scale, opacity, volume).

Add a track

  1. Click the + button on the left of the timeline and pick video / audio / subtitle.
  2. Drag to reorder. Higher rows render in front during compositing.
  3. Use the ☰ menu on each row for solo / mute / lock toggles.

Clip operations

  • Move: drag the body of the clip
  • Trim: drag the edge handles (start/end time)
  • Split: hover the playhead and press S, or right-click → Split
  • Delete: select then Delete
  • Duplicate: Ctrl/⌘ + D

Multi-select and group move

Drag in empty space to box-select. The clips inside move and delete together.

Tip

Hold Shift and click clips to toggle them into the selection.

Zoom and snap

  • Mouse wheel — zoom in/out around the playhead
  • Magnet (snap) icon — auto-align to clip edges, playhead, markers
  • Home / End — jump to the start or end of the timeline

Keyframe animation

Select a clip and change a property in the right inspector — a keyframe is recorded at the current playhead. Values between keyframes interpolate using the chosen curve.

  • Linear — constant speed
  • Ease In / Out — slow start or end
  • Hold — keep the value until the next keyframe
Example

Fade-in: opacity 0 at start, opacity 1 one second later, linear interpolation.

Edit the JSON directly

Open ~/.bom/timelines/<project>.json in any editor. FileSystemWatcher reloads the editor as soon as you save.

json
{
  "version": 1,
  "tracks": [
    {
      "type": "video",
      "clips": [
        { "source": "intro.mp4", "in": 0, "out": 3.0, "start": 0 }
      ]
    }
  ]
}
Warning

The schema is owned by src/Bom.Core/Constants/BomAvTimelineProtocol.cs. Invalid keys are moved to the .backup folder automatically.

Backups & recovery

Every 5 minutes the timeline is auto-backed-up to ~/.bom/timelines/.backup/. Copy a backup over the live file to restore.