A minimal, completely local, cross-platform, and browser-compatible Enhanced LRC creator. Import your audio and optional LRC/TXT/SRT and start syncing lyrics line-by-line or word-by-word.
![]() |
![]() |
| Desktop | Mobile |
-
Designed to create Enhanced LRC, handling line-by-line, word-by-word timestamping.
-
Supports Standard LRC, Enhanced LRC, plain text, and SubRip subtitle files (SRT).
-
Works completely within your system, does not send any data to a server. Uses localStorage to store draft and settings.
-
synced+ uses wavesurfer.js to draw a waveform that acts as the audio timeline. It also uses the hover and zoom plugins for more precise timestamping, and regions for visual representation of lyric lines.
-
Creating a lyric file only requires you to import your audio file. However, you can also import your own lyric file or paste from the clipboard (which automatically checks input format) for resuming progress or ease of use. Uses jsmediatags to automatically read and write the metadata tags of your audio to the LRC file.
-
Prevents time fields from being set to illegal values that will return errors by adjusting other fields accordingly.
-
Watch your lyric file compile in realtime in a preview sidebar.
-
Choose from a selection of colour palettes I totally don't use in my IDEs.
synced+ can be run as a website, desktop/mobile application, or run locally from source code.
-
Head over to synced+'s GitHub Pages site.
-
Head over to the releases page to download the latest Tauri-based app.
-
Self-Hosted (requires Node.js)
Clone the repository, open a terminal in
/synced-plus-master/src/, and runnpx serve .to start a local server.
-
Load Audio: Click on the Open Audio button to load a track. Metadata input fields will automatically be filled if your audio file has them.
-
Load Lyrics / Add Lines: Click on the Import button to load a lyric file or paste from the clipboard.
-
Sync Lines / Words: Use the timestamp button inside a time field to set its value to the current playback time.
To sync words, click on the Expand button to see the word container. When a time has been set for a word, clicking on the word jumps audio playback to its time.
By default, line end timestamps create a new, empty line in the LRC file, a common practice in LRC creation. This can be changed in the settings. -
Export: Click on the Export button to select your desired format and download it.
| Hotkeys | |
|---|---|
| Space | Play/Pause |
| Left/Right Arrow | Jump 1 second forward/backward |
| Ctrl + Z | Undo |
| Ctrl + Shift + Z / Ctrl + Y | Redo |
| < | Slow Down +0.25x |
| > | Speed Up +0.25x |
Note: Hotkeys can be customised in the settings panel.
synced+ is written in vanilla HTML/CSS/JS, but it does use two crucial libraries:
- wavesurfer.js – Waveform rendering, playback controls, current playback time fetching.
- jsmediatags – Reading and writing of audio metadata tags for files supported by the library.
Additionally, it uses Tauri to work as a desktop and mobile application.
AI has been used to generate the GitHub workflows, colour palettes for the themes (except for Default and Evil Calamity), rough draft for LICENSES.md, and to guide with Tauri integration.
synced+ is licensed under Mozilla Public License 2.0. See the LICENSE file for details.
For full legal notices, copyright, disclosures, and open-source attributions regarding the assets used, see LICENSES.md.


