Skip to content

Stabilize karaoke and lyrics playback rerenders#1033

Open
ryokun6 wants to merge 1 commit intomainfrom
cursor/stabilize-karaoke-rerenders-a428
Open

Stabilize karaoke and lyrics playback rerenders#1033
ryokun6 wants to merge 1 commit intomainfrom
cursor/stabilize-karaoke-rerenders-a428

Conversation

@ryokun6
Copy link
Copy Markdown
Owner

@ryokun6 ryokun6 commented Apr 5, 2026

Summary

  • stabilized karaoke playback callback identities so elapsed-time ticks no longer churn menu/control props
  • memoized karaoke menu/control trees and expensive menu-bar derived data to reduce avoidable rerenders
  • memoized lyrics row rendering so inactive rows stay stable while active timed rows continue smooth highlighting
  • moved interlude exit flag transition out of render phase to an effect for deterministic render behavior

Testing

  • bun test tests/test-karaoke-interlude-display.test.ts tests/test-furigana-word-spacing.test.ts
  • bun run build
  • manual karaoke playback check in browser (playback running, lyrics progressing, pause/resume interaction)

Walkthrough artifacts

karaoke-playback-ui-stability.mp4
karaoke final playback state
karaoke lyrics progression

Open in Web Open in Cursor 

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

cursor bot commented Apr 5, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@ryos-deploy
Copy link
Copy Markdown

ryos-deploy bot commented Apr 5, 2026

The preview deployment for ryos-dev is ready. 🟢

Open Preview | Open Build Logs | Open Application Logs

Last updated at: 2026-04-05 00:46:05 CET

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