CappielloAntonio/tempo

[Feature Request] - Synced Lyrics/Karaoke Mode

PatrickDelancy opened this issue · 11 comments

Summary

Song lyrics that contain timecode information should be automatically synced to song playback.

Description

  • When displaying the lyrics view for a song, if the lyrics contain timecode information, then the "current" line should be highlighted (bold? larger font?) and synchronized with music playback.
  • Lines of lyrics above and below the "current" line should be visible, but not highlighted.
  • When the synced lyrics panel is visible, prevent the phone screen from turning off (configuration option?) (see also #135)
  • App should try to keep the "current" line near the vertical center or top half of the lyrics panel

Use Case

  • Allows for hands-free consumption of song lyrics, without the need to manually scroll the page to read all lyrics during playback
  • Emulates functionality of karaoke machines, potentially opening up a whole new segment of users for the app

Additional context

Not trivial to write this code, but similar open source projects may be referenced to help when implementing.

Hi @PatrickDelancy,
Subsonic's API does not support timestamps within song lyrics, for this reason no effort has been made to date to integrate this type of lyrics (as in the case of the project you linked).

Now, however, OpenSubsonicApi is also adding support for synchronized texts among its extensions. I refer you to their page for further details.

In conclusion, I'm waiting for the servers to integrate this API (I think someone has already done so) and then I'll get to work.

Hmm, that is interesting. Thank you for the information. I'm new to the whole "subsonic scene."

I have synced lyrics working in Symfonium with a Navidrome back-end. I haven't investigated, so maybe Navidrome is doing something non-standard with the "LYRICS" mp3 tag? The data must be getting to the client in some fashion.

In any case, I appreciate your time. I'll continue to follow this ticket for updates.

Ah, I see... just needed to do some more reading to see your comments on the closed issue (I didn't find it before... thank you for the link, and I apologize for the duplicate entry)

I really need this feature.Please!

this feature would be so nice

I'm working on it, and all the basic functionality is there.
The problem, if we can call it that, is this karaoke mode.

In addition to making the code more complicated than necessary, it conflicts with scrolling gestures. I'm still working on it a little bit, but I'm pretty happy with how it turned out, so I might leave things as they are.

Screenshot_20240217-232700_Tempo

it looks amazing 😄

You can try the new feature if you like: debug.zip

I also implemented the "karaoke" function, which can be disabled if you want to scroll the text freely.

I installed the linked debug build, but I cannot seem to find the setting to enable/disable the synced lyrics. Where should I be able to find it?

It is not a configurable option. If the server responds with the lyrics of the song then they are shown.
Also, if the server integrates the OpenSubsonic API and the music file is saved with the lyrics of the song synchronized, I will show the lyrics with karaoke effect.
In conclusion, everything depends on the server, which has to give me the lyrics of the song.

hi
I also installed the linked debug build, and the subsonic api (/rest/getLyrics) returns this format like

[00:00.000] Daly, Blair
[00:01.000] Daly, Blair
[00:05.700]We come into this world unknown, but know that we are not alone. They try and knock us down, but change is coming, it's our time now.
[00:19.200]Hey, everybody loses it
[00:25.200]Everybody wants to throw it all away sometimes

it didn't take effect, so can you tell me what format is required