#parser

alrc

Advanced Lyrics File Format

1 unstable release

0.1.0 Jul 20, 2024

#1200 in Parser implementations

MIT license

15KB
266 lines

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.

Dependencies

~2.9–4.5MB
~76K SLoC