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