v0.9.0 — free & open source

Your music library,
turned into karaoke.

Nightingale splits out the vocals, aligns every word of the lyrics, and scores your pitch in real time — with key & tempo controls and audio-reactive backgrounds. One self-contained app, no cloud, no setup.

Everything included

Built for the whole set list

From where your music lives to how it sounds on the mic — every step of the karaoke pipeline is handled in one app.

Explore docs

Library & sources

Pick where Nightingale reads your music from — a local folder, or a Jellyfin or Navidrome server. Run it as the desktop app, or self-host the web build so any device in the house can open it.

📁 Folder library

Point at any folder and Nightingale scans the supported audio, video, and UltraStar files inside.

🎬 Jellyfin

Play straight from your Jellyfin library. Songs cache locally on first play so karaoke runs the same as a folder library.

💿 Navidrome

Same idea for Navidrome (audio only). Login details are kept encrypted on disk.

🌐 Self-hosted web mode

Run Nightingale on a Linux box on your home network. Open it from any browser at <hostname>.local — one install script handles the rest.

🧭 Sidebar filters

Browse by quick filters, metadata buckets, artists, and albums. Analyze All and optional auto-analysis help queue your library faster.

🗂️ Flexible storage

Choose a main data folder, then split cache, models, videos, and vendor tools into separate folders from Settings.

📦 Single binary

ffmpeg, Python, PyTorch, and the ML models are all bootstrapped on first launch. Nothing to install.

Lyrics & audio

Word-level lyrics, multi-language ASR, CJK forced alignment, and an in-app editor for when the automatic result needs a human pass.

🎤 Stem separation

Vocals are isolated from instrumentals using the UVR Karaoke model or Demucs. Guide vocal volume is adjustable.

📝 Word-level lyrics

WhisperX transcribes and aligns every word to the audio. Existing lyrics from LRCLIB are used when available.

🈯 CJK lyrics

Japanese, Chinese, Cantonese, and Korean songs get per-character forced alignment with romanized readings (Hepburn, pinyin, Jyutping, Revised Romanization) shown above each token.

🗣️ Pluggable ASR

Choose Whisper (default, broad coverage) or Parakeet v3 (experimental) for ~25 European languages. NeMo on CUDA, ONNX everywhere else.

🎼 UltraStar songs

Drop USDX song folders into your library — pitch and lyrics come straight from the file, no analyzer pass needed. Experimental.

✏️ Lyrics editor

Use an analyzed non-USDX song's Actions button to edit its lyrics. When LRCLIB has multiple matches, a second tab lets you carousel through them and apply one with a click. Saving re-runs alignment.

Playback & visuals

Pitch scoring, mic latency calibration, key/tempo controls, lyrics placement, and 10 audio-reactive shader backgrounds plus video flavors.

🎯 Pitch scoring

Sing into your mic and get scored in real-time. Star ratings and per-song scoreboards track your progress.

🎚️ Key and tempo shifts

After analysis, adjust key and tempo from the song list to match your voice and comfort level.

🎬 Video file support

Drop .mp4 or .mkv files into your library. Vocals are separated and the original video plays as the background.

🌌 Audio-reactive backgrounds

10 GPU shaders that react to your mic input in real time, 5 Pixabay video flavors, plus the source video for video files.

🎙️ Mic monitoring + latency

Optional live mic monitor, adjustable gain (0–200%), and a beep-based latency test for tighter scoring.

Quality of life

Per-player profiles, full gamepad navigation, touch playback controls, and signed in-app updates on macOS and Windows.

👤 Player profiles

Multiple profiles with separate score histories. Switch between singers without losing anyone's records.

🎮 Gamepad + touch support

Navigate menus with a controller and use on-screen playback controls on touch devices.

⬆️ In-app updates

On macOS and Windows: auto-checks at launch, badges the sidebar avatar when a release is available, and installs signed updates with one click. On Linux the Update entry opens GitHub Releases for a manual download.

Latest release

What's new in v0.9

See full docs

Run it in Docker

Host Nightingale for your whole home with a single container. Point it at your music folder and open it from any phone, tablet, or laptop on your network, with optional GPU speed-ups.

Sing in Cantonese

Cantonese joins Japanese, Mandarin, and Korean with full lyric support and romanized readings shown above each word, so you can follow along even if you don't read the characters.

Sharper lyric timing

New alignment options make the words light up more accurately in time with the music, and they're noticeably faster on modern graphics cards and Apple Silicon.

Cleaner vocal detection

A new sensitivity slider keeps quiet intros and soft singing from getting cut off.

Easier-to-read settings

Analysis options now explain in plain language what each choice actually does.

Smoother lyrics

Finished lines stay on screen until the next one begins, instead of blinking away the moment they end.

The pipeline

From track to stage in four steps

Read pipeline docs
01

Source

Point Nightingale at your music: a local folder, or a Jellyfin or Navidrome server. Run it as the desktop app or the self-hosted web build — either way, the pipeline is the same.

02

Separate

UVR Karaoke or Demucs splits the track into vocals and instrumental. Audio is extracted from video files automatically; songs from a server are cached locally on first play.

03

Transcribe

Synced lyrics are looked up on LRCLIB first. If nothing's found, WhisperX (or Parakeet v3, experimental) transcribes the vocals with word-level alignment. CJK songs get romanized readings above each token.

04

Play

Playback includes highlighted lyrics, pitch scoring, key/tempo controls, mic monitoring, and dynamic backgrounds.

Runs everywhere

One binary, every desktop

Native builds for Linux, macOS, and Windows. GPU acceleration via CUDA or Metal when available, with a CPU fallback everywhere else.

Linux x86_64 · aarch64
macOS ARM · Intel
Windows x86_64
Newsletter