Blog

LRC Metadata Tags, Explained: [ar:], [ti:], [offset:] and Friends

The LRC format is mostly about timing lyrics, but it also carries a handful of optional metadata tags that describe the track. Here's what each one does and when it actually matters.

What metadata tags exist

An LRC file is plain text. Lines that start with a tag in square brackets but no mm:ss time are metadata: they describe the file rather than time a lyric. The common ones are [ar:] (artist), [ti:] (title), [al:] (album), [by:] (creator of the LRC), [offset:] (a global time shift), and [length:] (song length). Every one of them is optional.

The identity tags: [ar:], [ti:], [al:], [by:]

These four are the "who made this" block, and they usually sit at the very top of the file:

metadata.lrc
[ar:Artist Name]
[ti:Song Title]
[al:Album Name]
[by:Lyricron]
  • [ar:] is the artist. Some players show it as a fallback if the audio file's own tags are missing.
  • [ti:] is the song title, used the same way.
  • [al:] is the album name, mostly informational.
  • [by:] credits who wrote the LRC file, not the song. It is not the songwriter credit.

In practice, most players ignore these and read artist/title from the audio file's own ID3 tags instead. They matter most when you distribute an LRC file on its own, like on LRCLIB, where they're the only source of truth.

[offset:] and drift

The [offset:] tag shifts every timestamp in the file by a fixed amount, in milliseconds. The sign convention is not consistent across players: Wikipedia defines a positive value as lyrics appearing sooner, while some players and components treat a positive value as a delay. Treat it as player-dependent, test the file after editing, and prefer shifting the timestamps directly when compatibility matters.

That's exactly the "consistent drift" case, and it's what the shift-all feature in the how-to guide handles. For drift that grows through the song (usually a variable-bitrate file), a single offset won't fix it; you'll nudge individual lines instead.

[length:]

[length:] records the song's duration in the format mm:ss. A few players use it to pre-validate a lyrics file before loading it, but it's informational for most. If you include it, keep it accurate or leave it out entirely; a wrong value can make some players reject the file.

Which players honor them

Support is inconsistent, which is the honest answer to "should I include these tags?":

  • Musicolet reads standard LRC and respects [offset:] in many builds, but behavior can vary by version.
  • foobar2000 supports [offset:] through OpenLyrics; check the sign against your setup.
  • VLC does not read LRC natively; metadata tags only matter if you use an extension or an SRT workaround.
  • Poweramp reads sidecar LRC files, but offset handling has varied across builds. Test the file after adding [offset:].
  • LRCLIB and similar lyrics databases rely on [ar:] and [ti:] heavily.

We cover the player-specific behavior in more detail in the dedicated setup guides for Musicolet, VLC, foobar2000, and Poweramp.

When to use them

A short rule of thumb: include [ar:] and [ti:] if you're sharing the file with others, add [offset:] only when you know the whole file needs a uniform shift, and skip the rest unless a specific player you use wants them. For a file that just needs to light up the right line at the right time, the timestamps are what do the work; the tags are window dressing.

If you're generating the file yourself, Lyricron writes standard, clean LRC, and the LRC format explainer shows the full anatomy of the output.

Time your own lyrics

Make a clean LRC file with millisecond-accurate timestamps, right in the browser.

Open Lyricron