Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Synchronised Lyrics #1351

Closed
R1D3R175 opened this issue Jan 8, 2024 · 3 comments
Closed

Add support for Synchronised Lyrics #1351

R1D3R175 opened this issue Jan 8, 2024 · 3 comments
Assignees

Comments

@R1D3R175
Copy link

R1D3R175 commented Jan 8, 2024

Introduction

Hello! As the title states, I'd love to implement a small feature for this amazing player.
However, I don't know pretty much where to start looking in order to do so as this is the first time that I find myself contributing to an open-source project seriously.
My problem isn't C/C++ as I've done something for competitive programming and used OpenCV (not the Python wrapper), it's the fact that I don't know where to start looking at the source code to understand what to modify and how.

The idea

Given that there is a .lrc file named the same as the audio file (except for the extension, obviously), I'd load the content of that file, parse it, save it somewhere in memory.
Now that the lyrics are saved somewhere in memory, I'd load them in the Context tab instead of those that would get fetched from e.g. Musixmatch.
To give the Synchronised idea, I'd just highlight that row whose timestamp is greater than i but less than i + 1 using the accent color.
The previous rows ([0, i)) would get a darker color by decreasing RGB values of some offset and would also get blurred by decreasing the alpha value.

What am I looking for?

I'm not looking for someone to do it for me as I know that the only contributor is busy, I'd just really appreciate some pointers that could help me achieve what I had in mind.
Of course, I'd understand if no one is willing to do this as it might seem that I want to be spoon-fed; in that case feel free to close this issue, I'd just open a PR whenever I will have something ready (if I will ever do)

@jonaski
Copy link
Member

jonaski commented Jan 9, 2024

Look at how album cover art is discovered, and do a similar thing.:

const QUrl art_automatic = ArtForSong(file, album_art);
, then you do the actual update in the UpdateNonCueAssociatedSong() function, ignore it for CUE songs.
If the lyrics file exists, then it would just override the lyrics from tags. I think maybe also there should be a mtime db field for checking if the lyrics file has been modified (and we should probably take the time to add this for cover art the same time).
It would also be nice to add #1334 at the same time since it also requires a DB schema update.

@Sunspark-007
Copy link

If it is doable, almost like karaoke mode, that would be pretty cool. I actually just came here to make this request because if you jump into a song that is streaming over radio and the lyrics are showing, you can't seamlessly figure out where you are in the song without an indicator because it just shows the lyrics without a time marker.

@jonaski
Copy link
Member

jonaski commented Mar 17, 2024

Closing this as I haven't hard anything in over 2 months. A PR is still welcome.

@jonaski jonaski closed this as not planned Won't fix, can't repro, duplicate, stale Mar 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants