Gramophone includes a full-featured synced lyrics engine capable of parsing multiple lyric formats, resolving word-level timing, and displaying translations alongside the original text.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/foedusprogramme/gramophone/llms.txt
Use this file to discover all available pages before exploring further.
Supported formats
LRC
Standard, extended (karaoke), and compressed LRC files.
TTML
Timed Text Markup Language, as used by Apple Music. Supports word- and syllable-level synchronization.
SRT
SubRip subtitle format.
Where lyrics come from
Gramophone looks for lyrics in two places, checked in this order:Embedded metadata
Lyrics embedded directly in the audio file. Gramophone reads:
- ID3 tags:
USLT(unsynced),SYLT/SLT(synced), andUSLTin MP4 files - Vorbis comments: the
LYRICSkey (used in FLAC, OGG, and Opus files)
LRC format details
The LRC parser is designed to handle a wide range of real-world files, including many edge cases not covered by any single specification.Simple LRC
Simple LRC
The standard format: each line is prefixed with a
[mm:ss.xx] timestamp.Compressed LRC
Compressed LRC
A single lyric line associated with multiple timestamps. Used when the same line repeats at different points in the song.
Extended LRC (karaoke / word-level)
Extended LRC (karaoke / word-level)
Word-level timestamps embedded inside the line using angle brackets. Each Extended LRC without a line-level sync point is also supported:
<mm:ss.xx> marker indicates when the following word should be highlighted.iTunes dual-speaker extension
iTunes dual-speaker extension
Lines can be prefixed with
v1:, v2:, or enclosed in [bg: ] to indicate different speakers or background vocals. This extension is used by some iTunes-sourced LRC files.[offset:] header tag
[offset:] header tag
The standard
[offset:] header tag is supported. When present, all line timestamps in the file are shifted by the specified number of milliseconds.Timestamp format variations
Timestamp format variations
Gramophone accepts several timestamp formats that appear in the wild:
| Format | Example |
|---|---|
[mm:ss] | [00:11] |
[mm:ss.xx] | [00:11.22] |
[mm:ss.xxx] | [00:11.222] |
[mm:ss:xx] | [00:11:22] |
[mm:ss:xxx] | [00:11:222] |
Multiline format
Multiline format
Lines between two consecutive sync points are treated as the lyric text for the earlier timestamp. This allows reading multi-line lyric blocks that are technically not part of any published specification.
Translation support
Translation support
Two translation conventions are supported:
- Type 1: Two separate LRC files (e.g. Japanese and English) concatenated into one file. Each file may have its own
[offset:]tag. - Type 2: The translated line placed directly below the original line, sharing a timestamp.
TTML format
Gramophone parses TTML (Timed Text Markup Language) as used by Apple Music. TTML supports word- and syllable-level synchronization with speaker attribution, enabling the same dual-speaker and background vocal distinctions as the iTunes LRC extension.SRT format
Standard SubRip subtitle files (.srt) are supported. These provide line-level timing without word-level synchronization.