Beltr turns the songs already on your computer into karaoke on your TV, and every phone in the room becomes a remote and a mic.
Beltr is living-room karaoke built on your own music library. It removes the vocals from songs you already own, times the lyrics to them word by word, and puts them on the TV while guests join from their phones. All of the processing runs on your own computer or home server.
Home karaoke has mostly become a subscription: a licensed catalog rented by the year, limited to whatever it carries this month. The alternative, lyric videos, is hit and miss. Meanwhile the music people already own sits in a folder, and the karaoke discs they bought years ago need a machine to play. Beltr starts from the other end. Your library is the catalog and your own hardware does the work, so there is nothing to rent.
What it does
Your music folder is the catalog
Point Beltr at a folder or an Apple Music library and every MP3, FLAC and WAV appears, searchable by artist, album and genre. Nothing is copied or moved.
Vocal separation on your machine
On-device AI splits each song into vocals and instrumental in a minute or two. Nothing is uploaded.
Lyrics timed word by word
Lyrics come from LRCLIB or your own paste and are aligned to the vocal track. When none exist, a local speech model drafts them first.
Phones join with a QR code
Guests queue songs, control playback and sing from their phones, with live pitch scoring. There is no app or account to set up.
Plays and exports karaoke files
CDG, MP3+G, .kar, .mid and Thai NCN files play with lyrics read straight from the file, and songs export to MP3+G, CDG or .kar for hardware machines.
Runs on a home server too
The same engine ships as a Docker image for Unraid and other home servers, in CPU, NVIDIA and Intel GPU builds.
How it’s built
One inference runtime, and no PyTorch
Separation, alignment, fallback transcription and pitch all run on ONNX Runtime. Dropping PyTorch took two to three gigabytes out of each installer. Rather than switch aligners, the existing wav2vec2 model was exported to ONNX and its Viterbi pass rewritten in NumPy, so word timing stayed compatible with a version already measured at a 0 ms median start offset across 3,085 words.
One protocol for six clients
The TV page, the web remote and four native apps all speak the same WebSocket room protocol, and the JSON the server emits is the contract. Scoring is ported to Swift and Kotlin and checked against golden vectors produced by running the real JavaScript scoring under Node, so a score means the same thing on every screen.
Built for the machine you have
Separation runs one song at a time so memory stays bounded, and a song is handed over as soon as it can be sung while the rest finishes in the background. A home-server install can send separation to a faster Mac or PC on the network and falls back to its own CPU when that machine is off.
Old formats through the same pipeline
MIDI, .kar and NCN files are rendered at import into the same vocal-and-instrumental layout as separated songs, so the TV, the mixer and scoring need no special cases. Legacy text encodings such as TIS-620, Shift-JIS and Big5 are detected on import.
One tag builds every platform
Pushing a version tag builds signed and notarized macOS builds, Windows builds including a Microsoft Store package, Linux packages, multi-architecture container images and a Homebrew cask update. A final step checks every image tag and architecture. It was added after one release shipped without its GPU pack.
On the record
Releases
83 public desktop releases between May 21 and September 24, 2026
Tests
About 800 test files across Python, JavaScript and Playwright
Surfaces
A desktop app, four native companion apps and three container builds
Companion apps
Beltr Remote
A free companion app that makes a phone a wireless mic and remote for Beltr.