Skip to content

LRC File Generator

Turn lyric lines into a deterministic simple LRC file with centisecond timestamps, optional song tags, an exact preview, and local download.

Privacy: your files never leave your device. All processing happens locally in your browser.

How to use

  1. 1.Enter 1–500 non-empty lyric lines, using one line for each display event.
  2. 2.Set the first MM:SS.xx timestamp, a 0.01–600.00 second interval, and optional title, artist, and album tags.
  3. 3.Generate the complete simple LRC text, inspect the first and last timestamps, download it, and retime individual lines in the target player or editor.

About LRC File Generator

LRC File Generator creates a simple synchronized-lyrics text file from lyric lines and a regular timing interval. Enter one display line per row, choose the first timestamp in MM:SS.xx form, and set the number of seconds between successive lines. Optional title, artist, and album values become ti, ar, and al metadata tags. The exact generated text appears in the preview, and Download saves that same text with an .lrc extension.

This tool implements the widely used simple LRC subset rather than claiming a formal universal standard. A timed line has a bracketed minutes, seconds, and centiseconds value immediately followed by the lyric text, such as [01:23.45]Example line. QuickLRC documents this de-facto form, and the independent Subforge parser and formatter source confirms that minutes contribute sixty thousand milliseconds, seconds contribute one thousand, and two fractional digits represent centiseconds.

The first timestamp must contain two or three minute digits, exactly two second digits from 00 through 59, a period, and exactly two centisecond digits. Valid examples include 00:00.00, 09:59.99, 10:00.00, and 123:45.67. The product supports timestamps through 999:59.99. It does not emit hour fields, colon-separated frames, three-digit milliseconds, enhanced word-level angle-bracket timestamps, karaoke duet markers, or player-specific extensions.

Interval accepts 0.01 through 600 seconds with no more than two decimal places. The value is converted to an integer number of centiseconds before any rows are produced, so repeated addition does not accumulate binary floating-point drift. For a 00:12.34 start and a 2.50-second interval, three lines receive 00:12.34, 00:14.84, and 00:17.34. If the final calculated timestamp would exceed 999:59.99, generation fails and nothing is silently truncated.

Lyrics may contain up to five hundred non-empty lines and fifty thousand input characters, with at most five hundred characters on one line. Windows, old Mac, and Unix line endings are normalized before generation. Blank input rows are removed. Disallowed control characters are rejected rather than inserted into a text file that a player may parse inconsistently. The generator does not alter spelling, punctuation, capitalization, language, or copyright notices inside ordinary lyric text.

Optional metadata is deliberately narrow. Title becomes [ti:value], artist becomes [ar:value], and album becomes [al:value]. Each value is trimmed, limited to 120 characters, and cannot contain square brackets or control characters, preventing one field from injecting an extra LRC tag or line. Empty metadata fields are omitted. A blank line separates emitted metadata from the timed lyrics for readability, but the timed rows remain ordinary plain text.

Download uses UTF-8 text without an added byte-order mark. The filename is derived from the title when available; unsafe filename punctuation becomes hyphens, and a blank title uses synced-lyrics.lrc. Editing any input clears the previous preview. Temporary download object URLs are revoked after direct use and when the component unmounts, so an older file cannot remain presented as the result of newer text.

A fixed interval is only a starting draft. Real vocals rarely begin at perfectly equal spacing, and this page does not listen to audio, detect speech, transcribe lyrics, align phonemes, identify beats, or estimate performance timing. After download, open the LRC beside the exact recording and adjust individual timestamps in a dedicated editor. Different music players support different metadata tags, timestamp precision, encodings, long minute values, and enhanced-LRC extensions. Always test the file in the target player.

Users must have permission to reproduce and distribute the lyric text they enter. This utility does not supply copyrighted lyrics, search a catalog, identify a song, confirm ownership, or grant a synchronization license. It simply formats user-provided text. All content and arithmetic stay in the current browser tab; no lyric text is uploaded to Lizely, stored in an account, or sent to an AI service.

The reliable contract is intentionally small: validate the de-facto centisecond timestamp subset, convert a bounded decimal interval to exact centiseconds, preserve bounded lyric text, emit only optional ti/ar/al tags, show the complete untruncated file, and download the exact preview. Compatibility beyond that subset remains the responsibility of the player and workflow chosen later.

Methodology & sources

Normalize CRLF, CR, and LF input into 1-500 bounded non-empty lyric lines. Parse a de-facto simple LRC start timestamp with 2-3 minute digits, seconds 00-59, and two centisecond digits. Parse a 0.01-600.00 second interval into integer centiseconds, add it by line index without floating drift, and reject a final time above 999:59.99 without truncation. Trim optional title/artist/album fields, reject brackets and controls, emit only ti/ar/al tags, and place one [mm:ss.xx] timestamp before each preserved line. Preview and UTF-8 download use the identical string; stale Blob URLs are revoked.

Frequently asked questions

Is LRC an official universal standard?
No. LRC is a de-facto family of formats. This tool emits a conservative simple subset with [mm:ss.xx] line timestamps plus optional ti, ar, and al tags.
Does the generator listen to audio and align each lyric automatically?
No. It assigns a fixed centisecond interval. Use the result as a draft and adjust individual timestamps against the exact recording in a dedicated editor.
Why should I test the file in my music player?
Players differ in supported metadata, timestamp precision, encoding, long minute values, and enhanced-LRC extensions. The page cannot guarantee every player interprets the same file identically.