Skip to content

Slice 21 — Audio-driven duration + full-sequence media loop#52

Merged
cbaucom merged 1 commit into
mainfrom
feat/46-audio-loop
Jun 22, 2026
Merged

Slice 21 — Audio-driven duration + full-sequence media loop#52
cbaucom merged 1 commit into
mainfrom
feat/46-audio-loop

Conversation

@cbaucom

@cbaucom cbaucom commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • totalFrames = max(visual pass duration, total audio duration) when clips are present; visual wins when longer.
  • Planner loops the full included slide sequence with correct transitions at loop boundaries and Ken Burns continuing across passes.
  • Partial tail truncates the last slide when audio ends mid-sequence.
  • Composition uses startFrame-scoped keys for repeated slide IDs in TransitionSeries.

Test plan

  • pnpm test — 246 tests pass
  • pnpm lint && pnpm build
  • Playlist longer than one slide pass → preview runs until audio ends with repeating media
  • Audio shorter than slides → show length unchanged
  • Beat sync on → nudged durations repeat each loop pass

Closes #46

Made with Cursor

When audio outlasts media, totalFrames follows the soundtrack and the planner repeats the full slide sequence with loop-boundary transitions and a deterministic partial tail.

Closes #46

Co-authored-by: Cursor <cursoragent@cursor.com>
@cbaucom
cbaucom merged commit a3a0844 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 21 — Audio-driven duration + full-sequence media loop

1 participant