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

Feature Request: Other formats of LRC #8

Open
Rahuletto opened this issue Jun 11, 2024 · 7 comments
Open

Feature Request: Other formats of LRC #8

Rahuletto opened this issue Jun 11, 2024 · 7 comments

Comments

@Rahuletto
Copy link

Rahuletto commented Jun 11, 2024

Can we expect the enhanced LRC format in LRC Lib? I know I'm asking for something that's time-consuming but just curious about it.

or Walaoke extension would be sick too! Just a feature request

About Enhanced LRC
About Walaoke Extension

@Rahuletto Rahuletto changed the title Question: Can we expect Enhanced LRC? Question: Can we expect other formats of LRC? Jun 11, 2024
@Rahuletto Rahuletto changed the title Question: Can we expect other formats of LRC? Feature Request: Other formats of LRC Jun 11, 2024
@AnesHamdani08
Copy link

That would mean to re-write every entry in the database

@Rahuletto
Copy link
Author

Isn't it possible to have like enhancedSynced just like seen with synced Boolean value in json? As we return a plainLyrics whenever there is no synced? But yea this requires alot of work.

@JerwuQu
Copy link

JerwuQu commented Jun 18, 2024

Would even make sense to have JSON (with timed words, multiple singers, and colors) or a custom format since it feels to me like both extensions are needed to not lose data from some external providers.

@DataM0del
Copy link
Contributor

I think having Enhanced LRC support is good because then other people will implement it, and so more people will want better lyrics. It will also help current / existing projects (like Beautiful Lyrics, for Spicetify, which adds word-by-word lyrics, although not everywhere, and it only uses its dataset, which means some songs won't even have lyrics at all)

Also, I don't really think of the Walaoke Extension being useful, if anyone can elaborate why having colors for lines sung by males, females, or both helps.
Anyways, I can implement it,
I'd create a new key in a lyrics object and have an enum for the extension used determining its format, it would be one of the values from the enum, or if we want multiple extension support, we can make it an array of values from the enum.
Whenever a new request to upload / publish lyrics is made, we find what the format is with the following procedure:

  • do one of the lyrics start with "F:" "M:" or "D:"? (then it's using the Walaoke Extension)
  • do one of the words in the lyrics have text in the format of <HH:MM.SS> before a word separated by spaces? (then it's using the [Enhanced LRC](https://en.wikipedia.org/wiki/LRC_(file_format)#A2_extension_(Enhanced_LRC_format) extension)
  • if not, it's using plain LRC.
    Then, whenever we get a request to search or get the lyrics, the key is in there, so API consumers can detect what features to enable.
    For compatibility reasons, the unsynced lyrics and synced lyrics won't have these, there will be a object with a diff to use for applying those extension-specific features. (you could just pass the result but that's boring, pro gamer 1234 save 1 kB of extra data!!) If you can't apply the diff because your diff applying library is bad or you can't find one, you have a Skill Issue:tm:.

@DataM0del
Copy link
Contributor

Can we expect the enhanced LRC format in LRC Lib? I know I'm asking for something that's time-consuming but just curious about it.

or Walaoke extension would be sick too! Just a feature request

About Enhanced LRC About Walaoke Extension

also, it isn't time consuming, at least from a high level perspective.

@Feridinha
Copy link

Enhanced LRC would be awesome 👀

@formeo14
Copy link

formeo14 commented Jan 4, 2025

Having Enhanced LRC support in LRCLib would elevate the lyrics experience to a new level. It would make things a lot more flexible.
This upgrade isn't just about keeping up; it's about leading the way and would highlight LRCLib's capabilities. While drive more interest and adoption. Like in Beautiful Lyrics other media players!
I would like to see that this feature

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants