maxrave-dev / maxrave-dev/SimpMusic
Request for manual control over the playback source (Audio vs. Video) to fix lyric desynchronization and incorrect track playback.
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 11.4k
- Forks
- 599
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 7
Description
Problem Description
Currently, Simpmusic's search and playback engine automatically selects the audio source based on an algorithm that, in many cases, incorrectly prioritizes official music videoclips over pure audio tracks (studio recordings, lyric videos, fan uploads, etc).
This behavior triggers two critical issues that severely degrade the user experience:
- Total lyric (LRC) desync: When playing a videoclip, these often include narrative intros, extra sound effects, initial silences, or extended outros that do not match the timeline of the downloaded lyric synchronization. As a result, the karaoke or real‑time lyrics appear completely out of sync, rendering them useless.
2.Playback of completely different songs: In multiple instances, the algorithm misinterprets the track metadata and assigns a videoclip that does not correspond to the requested song (for exemple IN MY CASE: searching for "Like animals" from the boyband BTS but playing the videoclip for "Like Animals" by the same artist or a different one), forcing the user to skip tracks repeatedly.This issue is especially frustrating because it turns an app designed for listening to music into an unpredictable video player, contradicting the main purpose of the application.
Proposed Solution
Implement a "Manual Source Selection" option at the moment of playing or adding a song to the queue.
The specific functionality could be as :
Instead of starting playback immediately with the automatic algorithm, when the user taps a song, a small modal or dropdown menu should appear showing the available search results for that track (for example : "Official Audio", "Music Video", "Lyric Video", "Remix").
The user can then tap their preferred option to force playback from that specific source.
Add a "Remember this choice" button or a lock icon, so that the app stores in local cache that, for that specific artist and title, it should always prioritize the selected source type, avoiding the need to repeat this step manually every time.
Alternative Solutions
If implementing the full manual selector is too complex in the short term, a simpler intermediate alternative is proposed:
Implement a search filter by type in the settings section (Settings > Playback). A toggle that allows the user to choose between: "Automatic Mode (Current)", "Prioritize Audio Only (exclude videoclips)", and "Prioritize Audio + Lyric Videos".
This way, the app would still be automatic, but the user would have the control to tell the algorithm which type of file to discard, effectively eliminating the risk of picking a videoclip with different time structures.
Additional Context
Impact on mobile data: Videoclips weigh significantly more than pure audio files. When the app mistakenly chooses a video, it consumes unnecessary data, which is critical for users on limited data plans.
Karaoke experience: The synchronized lyrics feature is one of Simpmusic's strong points. Allowing users to choose the correct source would ensure that this feature remains accurate and reliable, strengthening loyalty among users who use the app for singing.
Practical example: When searching for "Bohemian Rhapsody", the algorithm often picks the classic videoclip (which has 6 minutes with a studio intro). If the user manually selects the "Audio" version (which runs 5:55), the lyrics will align perfectly. Without this option, users are likely to abandon the app out of frustration.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the search and playback flow from tapping a song or adding it to the queue, then inspect the Settings > Playback entry point. Compare the proposed manual source selector with the simpler source-priority filter and define how a saved artist/title preference would affect later playback. Done means users can choose or prioritize a source without lyric desynchronization or unintended video playback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- audio-video-rtc, mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100