Skip to content

fix(karaoke): show next lyric during center-mode interlude dots#1029

Draft
ryokun6 wants to merge 6 commits intomainfrom
cursor/interlude-next-line-visible-5191
Draft

fix(karaoke): show next lyric during center-mode interlude dots#1029
ryokun6 wants to merge 6 commits intomainfrom
cursor/interlude-next-line-visible-5191

Conversation

@ryokun6
Copy link
Copy Markdown
Owner

@ryokun6 ryokun6 commented Apr 4, 2026

Summary

  • Center alignment + long gap: Placeholder + next line visible during interlude dots.
  • Alternating + long gap: [next+1, next] with inline dots on upcoming line; upcoming stays bottom slot.
  • Playback sync: altLines now updates immediately when actualCurrentLine changes (removed delayed setTimeout). Stale altLines had caused applyKaraokeInterludeEllipsis to receive the wrong [current, next] pair while findCurrentLineIndex had already advanced — interlude / preview did not follow playback through the next+1 window.

Testing

  • bun test tests/test-karaoke-interlude-display.test.ts (existing)
  • bun run build
Open in Web Open in Cursor 

Center alignment previously replaced the visible list with only the
interlude placeholder, hiding the upcoming line until playback reached it.
Return placeholder + next line so the next lyric appears immediately
(dimmed) while dots run.

Co-authored-by: Ryo Lu <me@ryo.lu>
@ryos-deploy
Copy link
Copy Markdown

ryos-deploy bot commented Apr 4, 2026

The preview deployment for ryos-dev is ready. 🟢

Open Preview | Open Build Logs | Open Application Logs

Last updated at: 2026-04-04 05:22:55 CET

cursoragent and others added 5 commits April 4, 2026 04:37
… dots

- applyKaraokeInterludeAlternating long gap returns [next, next+1] (no previous row)
- getGapInterludeInlineLead mirrors placeholder timing for inline dots on upcoming line
- LyricsDisplay wires gap lead when row matches next lyric after current index

Co-authored-by: Ryo Lu <me@ryo.lu>
- Return [next+1, next] so layout matches pre-interlude [current, next]
- During gap interlude treat upcoming line as non-current; position by index

Co-authored-by: Ryo Lu <me@ryo.lu>
Delayed setAltLines left visibleLines input stale vs findCurrentLineIndex,
so interlude preview did not track through next+1 as time advanced.

Co-authored-by: Ryo Lu <me@ryo.lu>
Remove parity-based [next,current] swap so line slots do not flip when
the active line index changes during playback.

Co-authored-by: Ryo Lu <me@ryo.lu>
- Add isAlternatingInterludeDotsActive (intro/gap + ellipsis enabled)
- Normal alternating playback keeps stable [current, next] rows
- Restore original parity swap for altLines during ●●● segments only

Co-authored-by: Ryo Lu <me@ryo.lu>
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.

2 participants