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:
[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.