Commit Graph
3 Commits
Author SHA1 Message Date
hoelee cf327211df fix(lyrics): centre the active line with rect deltas, not offsetTop
Deploy / build (push) Successful in 42s
offsetTop is measured from the nearest positioned ancestor, so inside an
unpositioned .yue2-box it returned the line's distance from the page top
(thousands of px). scrollTop clamped that to maxScroll, so the box jumped to the
bottom the moment singing started and the text was unreadable.

Now: box.scrollTop += (pr.top - br.top) - (clientHeight - lineHeight)/2, plus
position:relative on the box. Verified in headless Chrome with a numeric probe:
the active line sits ~124px into a 274px box at t=48/100, nothing is highlighted
and scrollTop=0 at t=0, and the box settles at maxScroll only for the final lines.
2026-10-20 21:32:43 +08:00
hoelee 6e2a55fe34 fix(lyrics): stop the LRC box pre-highlighting the last line at t=0
Deploy / build (push) Successful in 28s
findIndex(t > now) - 1 returned -1 before the first line started, which the
`if (i < 0) i = lines.length - 1` guard turned into the LAST line — so playback
began scrolled to the bottom. Use a last-passed-index scan instead (-1 = before
the first line), centre the active line inside the box (so upcoming lyrics are
visible), and scroll the box itself rather than scrollIntoView(), which dragged
the whole page. Also bumps the box to 250px. Fixes yue2 post + both Suno posts.
2026-10-20 21:00:29 +08:00
hoelee 7a9906ec96 post: YuE2 on a 12GB GPU — why 240.000 s songs lose their endings
Deploy / build (push) Successful in 27s
Twelve Mandarin songs came back exactly 240.000 s with the outros cut.
Documents the ffprobe tell, the BPM myth, the seed-cache trap, the
2.0-2.8 hanzi/s spread, the 300 s VRAM ceiling, and the archive-the-clipped
policy. Ships 11 finished tracks with ASR-derived synced lyrics (EN + ZH).
2026-10-20 20:11:55 +08:00