Skip to content

Slice 22 — Proportional timeline UI + audio lane with gain controls#54

Merged
cbaucom merged 12 commits into
mainfrom
issue-48-proportional-timeline
Jun 22, 2026
Merged

Slice 22 — Proportional timeline UI + audio lane with gain controls#54
cbaucom merged 12 commits into
mainfrom
issue-48-proportional-timeline

Conversation

@cbaucom

@cbaucom cbaucom commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replace the fixed-width filmstrip with a time-proportional TimelinePanel: media card widths scale with slide duration, audio lane shows iMovie-style symmetric waveforms with numbered clip boundaries, and a synced playhead with horizontal/vertical scroll.
  • Add timeline zoom (slider, +/- buttons, ⌘/ctrl + scroll) via a pure timelineLayout module and high-resolution waveform peak cache.
  • Restore sidebar Playlist for per-clip dB input, reset, remove, and drag-reorder — timeline audio is visualization-only since reordering multi-minute clips at low zoom was unusable.

Closes #48

Test plan

  • pnpm test
  • pnpm build
  • pnpm lint
  • DEV_URL=http://localhost:5173/ node scripts/playwright-issue-48-smoke.mjs
  • HITL: review layout on a real 10-clip / multi-track project before merge (issue labeled hitl)

Made with Cursor

cbaucom and others added 12 commits June 22, 2026 12:57
Per-file beat grid cache, concatenated beat times for planning, and position-aware snap so beat sync works across clip boundaries and looped slides.

Co-authored-by: Cursor <cursoragent@cursor.com>
Single-pass clip analysis, parallel media enumeration, cap beat/loudness math to 30s, batch cache updates, and defer expensive replanning while beat grid analysis runs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use absolute Sequence placement for cut-only plans instead of TransitionSeries, binary-search beat snap, and startTransition when applying themes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Drop TransitionSeries for all previews, defer replanning, skip mass slide updates on theme change, and disable premount on large plans.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ssfade overlap.

Cap transition overlap to actual slide duration and render only active composition entries so theme toggles stay responsive on long beat-synced timelines.

Co-authored-by: Cursor <cursoragent@cursor.com>
Compute media and audio block positions from RenderPlan so the editor shell can render time-proportional lanes without duplicating planner logic.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cache min/max buckets and build symmetric SVG paths so audio clips can render iMovie-style waveforms at any zoom level.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the fixed-width filmstrip with media and audio lanes, playhead sync, zoom controls, and symmetric waveform rendering.

Co-authored-by: Cursor <cursoragent@cursor.com>
Move clip reorder and gain controls to the timeline; sidebar keeps add-track and beat grid only.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Re-add per-clip dB inputs and drag-reorder in Soundtrack. Timeline audio is visualization only with numbered clip boundaries — reordering multi-minute clips on the timeline was unusable at low zoom.

Co-authored-by: Cursor <cursoragent@cursor.com>
@cbaucom
cbaucom force-pushed the issue-48-proportional-timeline branch from df6dc84 to 75e59c0 Compare June 22, 2026 16:58
@cbaucom
cbaucom merged commit 27d8eee into main Jun 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Slice 22 — Proportional timeline UI + audio lane with gain controls

1 participant