Standard LRC is the most widely supported lyrics format. Each line of lyrics is prefixed with aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/6xingyv/accompanist-lyrics-core/llms.txt
Use this file to discover all available pages before exploring further.
[mm:ss.xx] timestamp, and optional ID3-style header tags carry metadata such as the song title, artist, and album. EnhancedLrcParser handles both standard LRC and the Enhanced LRC extension from a single object—you do not need to choose between them.
Format
A well-formed LRC file looks like this:Metadata tags
The following header tags are recognised and surfaced on the returnedSyncedLyrics object:
| Tag | Field | Notes |
|---|---|---|
[ti:…] | SyncedLyrics.title | Song title |
[ar:…] | SyncedLyrics.artists | Slash-separated artist names; colon separates role from name |
[al:…] | (parsed but not stored on the model) | Album name |
[offset:…] | (parsed but not applied) | Signed integer millisecond offset; recognised but not used to shift timestamps |
[length:…] | (parsed but not stored) | Total track duration as an integer in milliseconds |
Multiple artists
The[ar:] tag can hold several artists separated by /. An optional role prefix separated by : is also supported:
Artist(role, name) in SyncedLyrics.artists.
Translation lines
A translation is encoded as a second line that shares the same timestamp as its primary line but carries different text content. The parser detects this automatically and stores it inSyncedLine.translation:
SyncedLine where content = "Hello world" and translation = "你好世界".
Detection
EnhancedLrcParser considers content parseable when it contains at least one [dd:dd.dd] (or [dd:dd.ddd]) timestamp pattern:
Usage
EnhancedLrcParser is a Kotlin object (singleton)—no instantiation required:
Accessing the result
SyncedLine carries the following fields:
| Field | Type | Description |
|---|---|---|
content | String | The lyric text |
translation | String? | Translation if a same-timestamp line was found |
start | Int | Start time in milliseconds |
end | Int | End time in milliseconds (set to the next line’s start) |
When the LRC content also contains syllable timing brackets (
<mm:ss.xx> or [mm:ss.xx] inside a timestamped line), EnhancedLrcParser produces KaraokeLine instances instead of SyncedLine. See the Enhanced LRC page for details.