LRC Files: How Lyrics That Follow the Song Actually Work

· 6 min read

Lyrics that light up in time with the music feel like a small piece of magic. Behind them is a plain text file you can open in Notepad — and one you can write yourself.

An LRC file is remarkably simple inside

An LRC file is plain text. Each lyric line starts with a timestamp in square brackets:

[00:12.50]The first line of the lyrics
[00:16.20]The second line of the lyrics

That means: show the first line at 12.50 seconds and the second at 16.20 seconds. The player reads the list, compares it to the playback position, and highlights the matching line.

The format is [minutes:seconds.hundredths]. So [03:45.80] means the third minute, 45.80 seconds in.

The optional header

Above the lyrics you usually find a few descriptive lines:

[ti:Song Title]
[ar:Artist Name]
[al:Album Name]
[offset:+200]

The most useful of these is offset. Its value is in milliseconds, and it shifts every line at once. If the lyrics always run half a second late, add [offset:-500] and everything moves forward — without editing hundreds of lines one by one.

Line-level versus word-level

Standard LRC works per line: one timestamp for one whole line. That covers most needs.

There is an extension called Enhanced LRC that adds timestamps inside the line, so words can light up one at a time like karaoke:

[00:12.50]<00:12.50>I <00:12.90>walked <00:13.40>home

Note the difference: line markers use square brackets, word markers use angle brackets. Players that do not support word-level timing simply ignore the angle brackets and show the whole line — so the format is safe to use either way.

Word-level timing is far more tedious to produce than line-level. For most people, line-level already delivers 90% of the experience.

Saving it so players find it

The naming rule is simple but unforgiving: the LRC file must have exactly the same name as the music file, differing only in extension.

01 - Airbag.flac pairs with 01 - Airbag.lrc, in the same folder.

If the names differ by even one character — an extra space counts — the player will not find it. This is the single most common reason for lyrics that "do not show up even though the file is right there".

Some players can also read lyrics embedded in the file's metadata. The upside is that they travel with the file; the downside is that they are harder to edit.

Making your own LRC

If a song you love has no LRC anywhere — common for local and independent music — you can build one. The process:

  • Write out the full lyrics as plain text first, one line per sung line
  • Open it in an LRC editor, or play the track and tap a key as each line begins
  • Clean up the timestamps, especially in fast passages
  • Test by playing the whole song, then adjust the offset if needed

For a four-minute song this usually takes 10–15 minutes. Exhausting across an entire collection, but reasonable for the songs that genuinely matter to you.

Why lyrics fall out of sync

Three common causes, all fixable:

  • You have a different version of the song. The LRC was timed against the album version, but your copy is the single edit with a shorter intro. Everything shifts.
  • Your file has silence at the start. Some rips include a second or two of silence that the reference version does not have.
  • The timings were rough to begin with. Some LRC files are made quickly and with little precision.

For the first two causes, offset solves it in a single line.

How EarTea helps

EarTea searches several lyric sources at once and saves the result as an LRC file with the correct name, so your music player picks it up immediately.

EarTea's built-in player also displays lyrics with line-level and word-level highlighting, with text size settings from very small to very large — useful when you play it on a big screen from across the room.

Try it on one favourite album: moving lyrics change how you hear even songs you already know by heart.

Open EarTea