LRC: The Complete Guide to Synchronized Lyrics Format
Long before Spotify added real-time lyrics scrolling and Apple Music highlighted individual words as a song played, there was LRC — a plain text format invented in the late 1990s that solved the same problem with nothing more than timestamps and a text editor. LRC files remain surprisingly relevant today, powering karaoke software, music players on Android, and a network of lyrics databases with hundreds of millions of entries.
What Is an LRC File?
LRC (Lyrics) is a plain text format that stores song lyrics with timing information, allowing a media player to synchronize displayed lyrics to the currently playing audio. Think of it as a subtitle file specifically designed for music.
A basic LRC file looks like this:
[ar:The Beatles]
[ti:Let It Be]
[al:Let It Be]
[by:LRC Creator]
[offset:0]
[00:00.50]When I find myself in times of trouble
[00:04.20]Mother Mary comes to me
[00:07.80]Speaking words of wisdom
[00:11.40]Let it be
[00:14.90]And in my hour of darkness
[00:18.50]She is standing right in front of me
[00:22.10]Speaking words of wisdom
[00:25.70]Let it be
The [mm:ss.xx] timestamp at the start of each line tells the player when to display that line. As the song reaches each timestamp, the player highlights or scrolls to the corresponding lyric line.
LRC Format Specification
Header Tags
LRC files start with optional metadata tags:
| Tag | Meaning | Example |
|---|---|---|
[ar:] |
Artist | [ar:Daft Punk] |
[ti:] |
Title | [ti:Get Lucky] |
[al:] |
Album | [al:Random Access Memories] |
[by:] |
LRC file creator | [by:johndoe] |
[offset:] |
Global timing offset in ms (+ = later, - = earlier) | [offset:200] |
[length:] |
Song duration | [length:4:07.89] |
Timestamp Format
[mm:ss.xx]Lyric text
mm: minutes (0-59)ss: seconds (00-59)xx: centiseconds (hundredths of a second, 00-99)
Some implementations use three decimal places ([mm:ss.xxx] in milliseconds), but centiseconds are the standard.
Multi-line and Blank Lines
- A blank line in LRC is often represented as a timestamped empty line:
[01:23.45] - Multiple timestamps can point to the same lyric line (for repeated choruses):
[00:45.00][01:23.00][02:01.00]Repeat this line
Enhanced LRC (A2 Extension)
Enhanced LRC, also called A2 format or word-by-word karaoke LRC, adds sub-line timestamps for individual words, enabling word-level highlighting:
[00:00.50]<00:00.50>When <00:01.20>I <00:01.50>find <00:02.10>myself
[00:04.20]<00:04.20>Mother <00:05.00>Mary <00:05.60>comes <00:06.10>to <00:06.40>me
The <mm:ss.xx> tags (with angle brackets instead of square brackets) mark when each individual word begins. This is what modern streaming services like Apple Music and Spotify use internally — though they have their own proprietary formats, the concept is the same as Enhanced LRC.
History
LRC was developed by a company called Xing Technology (no relation to the Chinese social network Xing.com) around 1998-1999 for their portable MP3 player software. As MP3 players proliferated in the early 2000s, LRC became the standard sidecar file for lyric display — you would download both the MP3 and its corresponding .lrc file from lyrics websites like LrcLink, KLyrics, or 163.com (NetEase Music's origins).
The format never went through a formal standardization body. Its specification is largely defined by community consensus and the de facto behavior of the most popular players. This explains why edge cases (three-digit centiseconds, multi-timestamp lines, BOM handling) behave differently across implementations.
LRC vs SRT vs WebVTT
| Feature | LRC | SRT | WebVTT |
|---|---|---|---|
| Designed for | Music / lyrics | Video subtitles | Web video subtitles |
| Timestamp precision | Centiseconds | Milliseconds | Milliseconds |
| Word-level timing | Enhanced LRC only | No | Yes (cue payload) |
| Metadata | Artist/title/album tags | No | Limited via NOTE |
| Styling | No | No | Yes (CSS-like) |
| Software | Music players, karaoke | Video players | HTML5 <track> element |
| Encoding | UTF-8 or GB2312 | UTF-8 | UTF-8 required |
Use LRC for music lyrics; use SRT or VTT for video subtitles. They serve different ecosystems.
Software Support
Desktop Players
- foobar2000 (Windows): with the Lyric Show Panel plugin, displays LRC files side-by-side with music
- Winamp: legacy support with the Lyrics plugin
- Clementine (Linux/Mac/Windows): built-in LRC support
- Rhythmbox (Linux): via plugin
Android
- PowerAMP: excellent built-in LRC support, auto-searches for local LRC files
- AIMP: supports LRC display
- Musicolet: free player with LRC support
Karaoke Software
- UltraStar Deluxe: uses a different format (.txt with UltraStar syntax) but LRC converters exist
- KaraokeKanta (iOS): uses Enhanced LRC for word-highlighting
- Yokee Karaoke: uses synchronized lyrics derived from LRC principles
Streaming Service Equivalents
- Apple Music: uses a proprietary time-synced lyrics format (TTML-based) that is conceptually identical to Enhanced LRC
- Spotify: uses a proprietary JSON-based synced lyrics format
- Musixmatch: provides LRC-style synced lyrics and has a massive community database
Creating LRC Files
Manual Creation
Use any text editor. Open the audio file in a player, note timestamps, and write the LRC file by hand. Tedious but gives full control.
LRC Creation Tools
- LRC Creator (web-based): play audio, tap Enter to mark each line's timestamp, download the LRC file — the fastest method for basic LRC
- MiniLyrics: paid Windows software for semi-automatic lyric timing
- Aegisub (video subtitle editor): while designed for SRT/ASS, its audio timing features can be used to create Enhanced LRC with word-level timing, then exported and formatted
Downloading Existing LRC Files
Databases with community-contributed LRC files:
- Musixmatch (musixmatch.com): largest synced lyrics database; API available
- NetEase Music / 163.com: Chinese music platform with extensive LRC files
- LRClib (lrclib.net): free, open LRC database; API accessible without authentication
- LRCX: extended LRC format with additional metadata used by some Chinese music apps
Encoding Issues
LRC files have a significant encoding pitfall: many files — especially those created for Chinese music — use GB2312 or GBK encoding instead of UTF-8. Opening a GB2312 LRC file with a UTF-8 reader produces garbled text.
Fix: in Notepad++ (Windows), open the file then Encoding → Convert to UTF-8. On macOS, use TextEdit: Format → Make Plain Text, then save with UTF-8 encoding. On Linux:
iconv -f GB2312 -t UTF-8 input.lrc -o output.lrc
Embedding Lyrics vs LRC Sidecar Files
LRC files are sidecar files — they sit alongside the audio file with a matching filename:
Song Name.mp3+Song Name.lrc
An alternative is embedding synchronized lyrics directly in the audio file's metadata:
- ID3v2 SYLT frame (MP3): stores synchronized lyrics in the audio file itself
- iTunes Lyrics field (MP4/M4A): stores unsynchronized lyrics in iTunes-compatible players
Most music players prefer LRC sidecars for synchronized display because the SYLT frame implementation is inconsistent across players.
LRC's simplicity — it is just timestamped text — has kept it relevant for over 25 years. As long as people want to sing along to their music, the humble .lrc file will keep doing its job.
Related conversions
Frequent conversions across the catalogue: