Crate alrc

Source
Expand description

§Advanced Lyrics File

What does this add to the lrc base format ?

  • Named Markers
  • Vocals
  • Instrumental Line Check
  • Custom Tags

Those new additions don’t by any mean break previous specification of the format. The compatibility with A2 extension is preserved and is even supported in the vocals. Chained timestamps are also supported.

§Named Markers

Those aim to provide a context for the lyric line. An use case can be for the singer that sing the line

Named Marker Example

{@singer:The Name Of The Singer}

The marker will be represented with the key singer and value The Name Of The Singer

Each time a new Markers is encounter by the parser the current marker value is changed.

Named Marker Change Example

{@singer:Childish Gambino}

[00:15.84] Cody LaRae
[00:19.30] He had a break
[00:22.75] He's findin' out
[00:25.92] That nobody gives a fuck
[00:29.68] I did my job
[00:32.91] I paid my dues
[00:36.13] Love is for fools
[00:39.33] 'Cause nobody gives a fuck

{@singer:VOCALS}

[00:45.54] (No one, no one)

...

§Vocals

Vocals are background voices other than the main artist voice. Most of the times, they are represented between parenthesis to signify that they are not important.

Example of vocals

...

[00:52.71] {#vocal:No one} nobody gives a fuck
...

A single single line can have multiples vocals

§Instrumental Line Check

Any line that contains only #INSTRUMENTAL is consider as a line where there is a long instrumental pause.

[00:50.07] #INSTRUMENTAL

§Custom Tags

Now with this parser, tags does not matter to it. Therefore, you can create any tag that suite your needs.

Structs§

AdvancedLrc
Parsed lyrics conatiner
Line
Vocal Container
RawTimestamp
Simple Timestamp
Syllable
A chunk of the base text that is timed
Vocal
Vocal Container

Enums§

Marker
Marker are used to denote a line

Type Aliases§

Metadata
HashMap that store key value of and attribute