feat: Add synchronized LRC support#114
Merged
phanan merged 6 commits intokoel:masterfrom Nov 25, 2025
Merged
Conversation
Upgrade build tools to meet Flutter and plugin requirements: - Android Gradle Plugin: 8.2.2 → 8.6.0 - Kotlin: 1.8.0 → 2.1.0 - Gradle: 8.5 → 8.7
- Increase JVM heap size from 1.5GB to 4GB to prevent OOM during build - Add MaxMetaspaceSize limit of 512MB - Disable Jetifier as the project already uses AndroidX
Update to Android SDK 36 to satisfy plugin requirements for path_provider_android and url_launcher_android.
Replace deprecated theme classes with their Data equivalents: - TabBarTheme → TabBarThemeData - CardTheme → CardThemeData These changes are required for Flutter 3.35+ compatibility.
Implement real-time synchronized lyrics display for songs with LRC timestamps. The lyrics automatically scroll and highlight as the song plays, providing a karaoke-style experience. Features: - Parse LRC format with [mm:ss.xx] or [mm:ss.xxx] timestamps - Real-time synchronization with audio playback position - Highlight current line with bold weight and scale animation - Auto-scroll to keep current line centered on screen - Smooth 300ms transitions between lines - Update every 100ms for precise synchronization - Backward compatible with plain text lyrics The implementation detects LRC timestamps in lyrics and switches to synced mode automatically. Plain text lyrics continue to display as before without any changes.
3 tasks
0cb8963 to
b4d1b45
Compare
phanan
reviewed
Oct 28, 2025
Comment on lines
+88
to
+90
| // Auto-scrolling is disabled since the ListView is nested in a SingleChildScrollView | ||
| // The parent scroll view controls scrolling, so we can't scroll to the current line automatically | ||
| // TODO: Pass parent ScrollController to enable auto-scrolling |
…crollController to LyricsPane to enable automatic scrolling to the currently playing lyric line. The implementation uses GlobalKeys to track each line's position and smoothly animates the scroll view to center the active line.
Contributor
Author
|
Oops, I forgot to push the commit to this branch earlier — just added it now |
Member
|
Thanks! I finally got the time to go through this. |
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.
To cope with the pull request feat: add synchronized LRC lyrics support