LRC format reference
LRC is a simple text format: one lyric line per row, each prefixed with a timestamp. Tied to the Beat uses the standard spec plus a couple of optional game-specific tags.
The basic timestamp
[mm:ss.xx] lyric text heremm: minutes, two digits (00to59)ss: seconds, two digits (00to59)xx: hundredths of a second, two digits (00to99)
Some editors export three-digit milliseconds (mm:ss.xxx): that works too. Both are read correctly by the game.
Example
[00:12.09] Boom, boom, hear the bass, feel it shake the whole wide place[00:17.04] Clap your hands and stomp your feet, techno kids bring all the heat[00:26.15] Be so deep, it makes us fly[00:30.08] Jump so high, we touch the sky[00:33.74] Sing together, one, two, three
Metadata header (optional)
At the top of your file you can include ID tags. All are optional (the game auto-fills title/artist from MP3 tags) but including them in the LRC helps external tools and makes your file self-contained.
[ti:Bass Boom Kids][ar:Lilex][al:Workshop bootstrap][length:03:30][by:community_creator_name][la:en][offset:0][source:https://pixabay.com/music/...][license:Pixabay License] [00:12.09] Boom, boom, hear the bass, feel it shake the whole wide place[00:17.04] Clap your hands and stomp your feet, techno kids bring all the heat
| Tag | Meaning | Required? |
|---|---|---|
[ti:...] | Song title | No, read from MP3 |
[ar:...] | Artist | No, read from MP3 |
[al:...] | Album | No |
[length:mm:ss] | Total duration | No |
[by:...] | LRC author / creator | No |
[la:xx] | ISO language code (en, es, ja, …) | Yes: affects word→effect dictionary |
[offset:±ms] | Global shift in milliseconds (negative = earlier) | No |
[source:URL] | Where the audio came from: direct link (Pixabay page, CC recording, your own upload, etc.) | Yes: required on Workshop for uploads not composed by you |
[license:NAME] | Short license name: Pixabay License, CC0, CC-BY 4.0, Public Domain, Own recording, … | Yes: when [source:] is present |
Instrumental markers
Songs have solos, intros, outros, and breaks: parts with no vocals. Mark them explicitly with [instrumental] so the game triggers a special instrumental wave instead of falling back to default spawns:
[00:00.00] [instrumental][00:12.40] First verse starts here[01:45.20] And the chorus repeats[02:30.00] [instrumental][02:58.50] Final chorus
[instrumental] is the only marker the game reads. Other conventions you may have seen in karaoke apps ([solo], [intro], [outro], [♪], etc.) are not recognized: map all of them to [instrumental] when converting from another format. The game also accepts the localized form for your language: in this catalog, that's the bare word "Instrumental" (no brackets) which the lyrics editor inserts automatically.
Supported languages (30)
Use the language code (matching the game's catalog) in the [la:...] tag:
en: English
es-ES: Spanish (Spain) · Español
es-419: Spanish (Latin America)
fr: French · Français
it: Italian · Italiano
de: German · Deutsch
pt-BR: Portuguese (Brazil)
pt-PT: Portuguese (Portugal)
nl: Dutch · Nederlands
pl: Polish · Polski
cs: Czech · Čeština
hu: Hungarian · Magyar
ro: Romanian · Română
bg: Bulgarian · Български
uk: Ukrainian · Українська
ru: Russian · Русский
el: Greek · Ελληνικά
tr: Turkish · Türkçe
da: Danish · Dansk
no: Norwegian · Norsk
sv: Swedish · Svenska
fi: Finnish · Suomi
ja: Japanese · 日本語
ko: Korean · 한국어
zh-Hans: Chinese Simplified · 简体中文
zh-Hant: Chinese Traditional · 繁體中文
th: Thai · ไทย
vi: Vietnamese · Tiếng Việt
id: Indonesian · Bahasa Indonesia
ar: Arabic · العربية
Why the language matters. The game maps specific words to specific gameplay effects: fire, ice, rain, lightning, love, dark, etc. Each language has its own curated dictionary. The wrong language tag means words won't trigger the right effects and your track will feel flat.
Common mistakes
- Missing leading zeros:
[0:12.4]breaks some parsers. Always pad to[00:12.40]. - Wrong encoding: save as UTF-8, never ANSI. Non-Latin characters turn into
???otherwise. - Blank lines with timestamps:
[01:23.00]with no text is treated as end-of-line, which collapses pacing. Use[01:23.00] [instrumental]instead. - Duplicate timestamps: two lines with the same
[mm:ss.xx]. The second one is ignored. - Non-monotonic timestamps: each line should start after the previous one. Going back in time confuses the game.
A complete working example
This is the exact format of the Workshop's bootstrap item Bass Boom Kids: the reference every upload follows:
[ti:Bass Boom Kids][ar:Lilex][al:Workshop bootstrap][la:en][length:03:30][by:Lilex][offset:0][source:https://pixabay.com/es/music/melod%c3%adas-para-ni%c3%b1os-felices-bass-boom-kids-425502/][license:Pixabay License (free commercial use, no attribution required)][genre:electronic][ve:1] [00:00.00] [instrumental][00:12.09] Boom, boom, hear the bass, feel it shake the whole wide place[00:17.04] Clap your hands and stomp your feet, techno kids bring all the heat[00:20.42] [instrumental][00:26.15] Be so deep, it makes us fly[00:30.08] Jump so high, we touch the sky[00:33.74] Sing together, one, two, three[00:36.84] This is our kids' melody
Made by the Tied to the Beat community · Discord