Repository navigation
fix(desktop): slide the lyric sheet on the macOS spring - #9
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The scrolling lyrics reached 96% of their travel a quarter of the way through
the time they were given, so a line change read as a jump rather than a
glide, and the cascade delay tore the rows apart to 42px gaps before snapping
them back to 29px.
The spring constants did not match SwiftUI's
spring(duration:bounce:): thatspring's duration is one period of the underlying oscillator, so the
normalised frequency is a full turn of the circle rather than 11.5, and the
damping ratio is one minus the bounce.
Measured on a headless render of the view, frames every 40ms:
Also here: the highlight follows the line being sung rather than the focused
row, so an instrumental gap dims the sheet the way macOS does instead of
leaving a line lit; the crossfade eases at both ends; and a slide draws the
rows it is travelling from, so a seek no longer pops them in.
https://claude.ai/code/session_0164R7Zuagx737iKYbuuSjnA