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.
Your music library,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.
From where your music lives to how it sounds on the mic — every step of the karaoke pipeline is handled in one app.
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.
Point at any folder and Nightingale scans the supported audio, video, and UltraStar files inside.
Play straight from your Jellyfin library. Songs cache locally on first play so karaoke runs the same as a folder library.
Same idea for Navidrome (audio only). Login details are kept encrypted on disk.
Run Nightingale on a Linux box on your home network. Open it from any browser at <hostname>.local — one install script handles the rest.
Browse by quick filters, metadata buckets, artists, and albums. Analyze All and optional auto-analysis help queue your library faster.
Choose a main data folder, then split cache, models, videos, and vendor tools into separate folders from Settings.
ffmpeg, Python, PyTorch, and the ML models are all bootstrapped on first launch. Nothing to install.
Word-level lyrics, multi-language ASR, CJK forced alignment, and an in-app editor for when the automatic result needs a human pass.
Vocals are isolated from instrumentals using the UVR Karaoke model or Demucs. Guide vocal volume is adjustable.
WhisperX transcribes and aligns every word to the audio. Existing lyrics from LRCLIB are used when available.
Japanese, Chinese, Cantonese, and Korean songs get per-character forced alignment with romanized readings (Hepburn, pinyin, Jyutping, Revised Romanization) shown above each token.
Choose Whisper (default, broad coverage) or Parakeet v3 (experimental) for ~25 European languages. NeMo on CUDA, ONNX everywhere else.
Drop USDX song folders into your library — pitch and lyrics come straight from the file, no analyzer pass needed. Experimental.
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.
Pitch scoring, mic latency calibration, key/tempo controls, lyrics placement, and 10 audio-reactive shader backgrounds plus video flavors.
Sing into your mic and get scored in real-time. Star ratings and per-song scoreboards track your progress.
After analysis, adjust key and tempo from the song list to match your voice and comfort level.
Drop .mp4 or .mkv files into your library. Vocals are separated and the original video plays as the background.
10 GPU shaders that react to your mic input in real time, 5 Pixabay video flavors, plus the source video for video files.
Optional live mic monitor, adjustable gain (0–200%), and a beep-based latency test for tighter scoring.
Per-player profiles, full gamepad navigation, touch playback controls, and signed in-app updates on macOS and Windows.
Multiple profiles with separate score histories. Switch between singers without losing anyone's records.
Navigate menus with a controller and use on-screen playback controls on touch devices.
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.
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.
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.
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.
A new sensitivity slider keeps quiet intros and soft singing from getting cut off.
Analysis options now explain in plain language what each choice actually does.
Finished lines stay on screen until the next one begins, instead of blinking away the moment they end.
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.
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.
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.
Playback includes highlighted lyrics, pitch scoring, key/tempo controls, mic monitoring, and dynamic backgrounds.
Native builds for Linux, macOS, and Windows. GPU acceleration via CUDA or Metal when available, with a CPU fallback everywhere else.
Nightingale is open-source, free, and built by one person in their spare time. If it brings you joy, consider chipping in — recurring on Patreon or one-off on Ko-fi.