Playback queue
Build the set list as people choose songs, see what’s next, remove requests, or clear the queue when plans change.
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, Plex Media Server, Jellyfin, or Navidrome. 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.
Select music libraries on a local or remote Plex Media Server. Hosted discovery and direct LAN URL + token connection are both supported.
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.
Switch between table and grid views, sort by multiple columns, and run bulk actions across any filtered song list.
Build and manage the set list while people choose songs, with a clear next-up view and per-song controls.
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.
Paste timed LRC or Enhanced LRC for instant playback, or plain lyrics for alignment. Browse LRCLIB matches, edit existing lyrics, and optionally sing over the original mix without separating stems.
Session playback, a customizable lyrics and pitch layout, key/tempo controls, scoring, and audio-reactive backgrounds.
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.
Keep playback in a dedicated window or browser tab while the menu stays open for queue management.
Place lyrics at nine screen positions and independently scale lyrics and the pitch graph from 50–250%.
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.
Build the set list as people choose songs, see what’s next, remove requests, or clear the queue when plans change.
Keep karaoke playing in a dedicated window or browser tab while the main menu stays free for live queue management.
Place lyrics where they work best and scale lyrics and the pitch graph independently with a live preview.
Run analysis, metadata refreshes, realignment, and cache actions across the current filtered song list.
Sort the compact table by multiple columns with clear priorities that stay saved between sessions.
Test microphone recording and playback in Settings, with ASIO support available on Windows.
Point Nightingale at your music: a local folder, Plex Media Server, Jellyfin, or Navidrome. 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.