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 here
mm— 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.40] I remember when, I remember
[00:15.90] I remember when I lost my mind
[00:19.60] There was something so pleasant about that place
[00:23.20] Even your emotions had an echo
[00:27.00] In so much space
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:Rolling in the Deep]
[ar:Adele]
[al:21]
[length:03:48]
[by:community_creator_name]
[la:en]
[offset:0]
[source:https://example.com/where-you-got-the-audio]
[license:CC0]
[00:12.40] There's a fire starting in my heart
[00:15.80] Reaching a fever pitch and it's bringing me out the dark
| 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.
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 — Tied to the Beat]
[la:en]
[length:03:30]
[by:stable-ts large-v3]
[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