Skip to content

Universal LRC parsing #2

@MonNomSontPasUtile

Description

@MonNomSontPasUtile

There are several specifications that resembles or based on the LRC specification. Currently there are two to be known: xLRC and TRC, which both had word timing added. All meta tags of LRC were preserved.

Taking a deeper dive into the TRC format, we will find something like this (example from a certain Chinese site):

[00:16.54]<250>当<300>你<1852>要<249>离<452>开<201>的<451>时<3801>候

And let's see an example of xLRC files (example from Wikipedia):

[00:06.47] <00:07.67> And <00:07.94> all <00:08.36> the <00:08.63> joy <00:10.28> within <00:10.53> you <00:13.09> dies

We can see that the timing tags of TRC and xLRC are both placed before each seperate "unit". Timing tags in TRC describes the duration of each word in milliseconds, while in xLRC describes when will each word end in the normal human-readable format. This means the parser of both xLRC and TRC can be merged inside the LRC parser with some dynamic adjustments when the parser reads each line.

Because there are a lot of lyrics that do not use either UTF-8 or UTF-16 as their encoding, there should also be some compatibility with detecting and decoding existing encoding schemes.

Metadata

Metadata

Labels

enhancementNew feature or requestunificationunify several specifications

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions