Repository navigation
Feature/apple music lyrics viewer - #2469
Open
HrishikeshBhandarkar wants to merge 21 commits into
Open
HrishikeshBhandarkar wants to merge 21 commits into
HrishikeshBhandarkar wants to merge 21 commits into
Conversation
… with spring physics
…s and backing vocals
… Apple Music lyrics
…in AppleMusicLyricsView
… track reaches completion
HrishikeshBhandarkar
marked this pull request as draft
September 6, 2026 15:18
HrishikeshBhandarkar
marked this pull request as ready for review
September 6, 2026 15:49
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.
Apple Music Lyrics Experience, Accompanist Engine & Duet Alignment
What this PR does
Brings a comprehensive Apple Music-grade lyrics experience to SimpMusic, powered by a high-performance Compose lyrics layout engine, 60Hz/120Hz monotonic smooth clock interpolation, multi-agent duet left/right alignment, dynamic typography scaling, breathing dots for instrumental breaks, and dedicated unsynced lyrics presentation.
Highlights & Key Features
High-Performance Karaoke & Line-Synced Engine (
KaraokeLyricsView)SpringPlacementModifierNode).LyricsLayoutCalculator) adapting text sizes across line lengths.Apple Music Duet & Multi-Agent Alignment
v1/ lead) to Left alignment and Voice 2 (v2,v2000/ duet partner or sample vocals) to Right alignment.line.translation) dynamically align with the corresponding singer (left under Voice 1, right under Voice 2).[bg],[v2],[v1]) inLyricsAdapter.60Hz / 120Hz Monotonic Smooth Clock Interpolation
ChoreographerVSync signal usingwithInfiniteAnimationFrameMillis.CanvasDrawScopewithout recomposing the UI tree on frame updates.Instrumental Breathing Dots Indicator
Display Options & Translation Support
SharedViewModel's lyrics and AI translation pipeline.Commits in this PR (21 commits)
6165a119feat(core): update core submodule with lyrics timeline update time9718a7e6feat(lyrics): add cubic bezier and newton polynomial interpolation easing curvesb28c66aafeat(lyrics): add spring placement modifier for fluid lyric line repositioning24441d05feat(lyrics): add brush and color utilities for dynamic lyric text highlightingb714d6f6feat(lyrics): add multiplatform string width calculation utilities4006c801feat(lyrics): implement breathing dots indicator for instrumental breaks and intros0ea2792dfeat(lyrics): add dynamic lyrics layout and font size calculatoracf85e89feat(lyrics): implement line-synced text rendering with smooth scale transitionse1144e75feat(lyrics): implement syllable-by-syllable karaoke text wipe animationbcaec698feat(lyrics): add main and accompaniment line composite layout iteme5398e2afeat(lyrics): implement high-performance KaraokeLyricsView composable with spring physicsc73e617cfeat(lyrics): add LyricsAdapter domain transformer for word timestamps and backing vocalsb2bc105bfeat(theme): add SF Pro typography and translation icon resources for Apple Music lyrics2c46b06efeat(player): add AppleMusicShared typography, styling tokens and translation menus9fb2512cfeat(player): integrate KaraokeLyricsView and monotonic smooth clock in AppleMusicLyricsViewdcb976f9feat(lyrics): add dedicated UnsyncedLyricsLineItem with full user scroll controle503ad5dfix(lyrics): cleanly terminate active line state and auto-scroll when track reaches completionbf49d3d2build(deps): integrate accompanist lyrics-core library and configure compiler opt-ins1d1a2fd6fix(player): initialize lyrics and translation flows before init block to prevent NPE865f79fcfeat(lyrics): improve v1/v2 duet alignment and tag parsing resilience37dd62d7chore(core): update core submodule pointer with TTML parser supportTargeted Branch
maxrave-dev/SimpMusic:devHrishikeshBhandarkar/SimpMusic:feature/apple-music-lyrics-viewerScreen Recordings
Screenrecorder-2026-09-06-21-09-51-179.mp4
Screenrecorder-2026-09-06-21-08-39-284.mp4
Verification & Testing
:composeApp:jvmTestpassed (BUILD SUCCESSFUL), verifyingLyricsAdapterTestword timestamps, backing vocals handling, romanization heuristics, andv1/v2duet placements.:androidApp:compileDebugKotlincompiled cleanly with 0 errors.Checklist
./gradlew :androidApp:compileDebugKotlinand JVM via./gradlew :composeApp:jvmTest)