A standalone desktop editor for creating, timing, and fine-tuning word-level TTML lyric files. Built primarily for Lokal Music, but fully compatible with any system supporting rich TTML (including Spicy Lyrics).
- Project & Session Management: Dedicated project workspaces with automatic background saving (up to 20 restore points), crash recovery, and persistent state across launches.
- Smart Lyric Ingestion: Automatic search & pull via LRCLIB.net, or import local
.lrc,.ttml, and.txtfiles. Includes side-by-side spellcheck/diff with LRCLIB sources. - Spicy Lyrics Automation: Auto-normalizes text on input (splits compound words, moves parenthetical text to background vocal tracks, and handles punctuation cleanly). Includes metadata validation on export.
- Waveform Editing: Interactive audio waveform with zoom support (
Ctrl + Scroll), region markers, colored vocal boundaries, and bulk timestamp shifting (Ctrl + Click + Drag). - Multi-Layer Vocal Support: Native support for Main, Background (
x-bg), and Duo/Harmony (x-alt) vocal layers with instant slot swapping. - Live Karaoke Preview: Refactored real-time preview with customizable styles, smooth auto-scrolling, lyric blur effects, and click-any-word-to-seek playback.
- Audio Engine Tuning: Speed playback dropdown, pitch preservation toggle, and manual audio latency offset adjustments to counteract audio buffer delays.
- Theme & Preset System: Fully customizable UI themes with exportable/importable
.ltthemepreset files.
npm install
npm run dev
npm run build
- Load Audio: Open your local track (
.mp3,.flac,.m4a,.ogg,.wav,.aac,.opus). - Import Lyrics: Click Search LRCLIB to fetch lyrics online, or Import File to load an existing
.lrc,.ttml, or.txt. - Prep & Structure:
- Enable Spicy Lyrics Prep in settings to auto-sort background vocals and hyphenated words.
- Manually split words with
\in the editor box if needed.
- Time Words:
- Select a line and word chip.
- Play audio and hit
Sto mark start times,Eto mark end times. - Use
Tab/Shift+Tabto move between word chips smoothly.
- Adjust & Refine:
Ctrl + Click + Dragon the waveform to bulk-shift timing (great for mismatched intro lengths).- Toggle Tap-to-Time or use the speed dropdown for precise millisecond alignment.
- Export: Click Export TTML (or Export LRC). The built-in validator will warn you of any missing metadata or overlapping timestamps before saving.
| Input | Action |
|---|---|
Space |
Play / Pause audio |
S |
Set selected word Start to current playhead |
E |
Set selected word End to current playhead |
Tab / Shift+Tab |
Next / Previous word chip |
→ / ← |
Seek ±0.1s |
Shift + → / Shift + ← |
Seek ±1.0s |
Ctrl + Scroll |
Zoom in / out on audio waveform |
Ctrl + Click + Drag |
Bulk shift lyrics on waveform |
| Double-click word | Jump playhead directly to word start time |
| Click Preview Word | Jump playhead to word in Live Preview |
| Type | TTML Role | Color Identifier |
|---|---|---|
| Main Vocals | (default) | White / Active Highlight |
| Background Vocals | ttm:role="x-bg" |
Purple |
| Duo / Harmony | ttm:role="x-alt" |
Orange |
Once exported:
- Open Lokal Music and play the corresponding track.
- Open the Fullscreen Lyrics view.
- Click Import (top right) and select your
.ttmlfile.
Distributed under the MIT License.


