You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix lyric rendering and playback timing
Several fixes to lyric rendering, client sync behavior, and server-side timing guards:
- lyric.js: Stop applying a fixed parse-time offset to synced lyric timestamps so provider times are preserved; avoid adding translations for blank or music-note lines and mark built lyric lines with an isBlankLine flag. Improve current-time selection by sanitizing values and preferring fresher server time when local time is inexplicably ahead by more than 2s.
- now-playing.js: Preserve previous song fields when partial updates arrive so UI fields don't flash to empty values; use previous song data for normalization when the song hasn't changed.
- server.js: Add a short "new song timing" guard to hold elapsedSeconds near zero for up to 1.5s when a new videoId arrives with an unexpectedly large initial elapsed value (configurable constants and per-video pending guard state). Broadcasts and progress/playback messages now use the guarded song data.