jeffvli / sonixd

A full-featured Subsonic/Jellyfin compatible desktop music player
GNU General Public License v3.0
1.85k stars 74 forks source link

Improve lyrics fetching/showing #289

Open Aiku1 opened 2 years ago

Aiku1 commented 2 years ago

Is your feature request related to a problem? Please describe. The current lyrics window is quite lacking and pretty basic.

Describe the solution you'd like From #151 and #180 i understand that Sonixd currently uses the /getlyrics endpoint from the server, but that's pretty lacking, there are no synchronized lyrics, no way to customize the way the way the lyrics appear and many other things that other players that automatically fetch lyrics have. I would love to have something like that, with lyrics and timestamps automatically fetched from an external source, parsed and shown in a "nice" way, similar to how other programs do (not going to namedrop, but I'll give a few examples if it's unclear).

Describe alternatives you've considered A basic autoscroll/customization of the lyrics windows would be a start, but it's obviously not the same thing.

jeffvli commented 2 years ago

Lyrics are definitely lacking right now. I do know of a very nice lyrics desktop application that pairs nicely with Sonixd, but having that functionality within Sonixd would probably be better. I've been meaning to add a new playing view eventually so maybe I'll have this lyrics upgrade be part of it.

Aiku1 commented 2 years ago

Hope to see it soon, especially the new playing view you mentioned, now it's definitely usable and I don't have any major complaint about it, but a full screen view with lyrics scrolling, similar to how it's handled in foobar2000 with Lyrics Show or how Prime Music does it, e.g. image would be a pretty great starting point. There's obviously work to be done to make it fit with the aesthetic of the rest of Sonixd, but, again, just a suggestion.

Sadly I don't know enough typescript to be helpful but I really hope you manage to get something out of this idea.

Just to give you another input, if you decide to use external sources to handle the fetching and synchronization of lyrics please consider implementing some sort of caching mechanism to avoid pulling lyrics every single time, it would be pretty wasteful and useless since they don't really change from request to request.

Sorry for the long winded answer, and thanks for even taking what I said into account.

jeffvli commented 2 years ago

Caching would definitely be in the works when I tackle this feature.

In the meantime, I recommend you check out Sunamu. It's a desktop player / synced lyrics overlay that integrates quite nicely with Sonixd on Windows and Linux (though there's currently a bug in the current release that's breaking it for Linux).

It works over Linux by using the MPRIS integration, while on Windows you would need to enable the Windows System Media Transport Controls setting in Sonixd.