rzru/nightingale

Machine learning powered Karaoke app (with scores!)

What it solves

Nightingale allows users to turn any song in their existing music library into a karaoke track. It removes the need for pre-made karaoke files by automating the separation of vocals from instruments and the generation of synchronized lyrics.

How it works

The system uses a Rust-based core and a React frontend, utilizing a local Python analyzer powered by neural networks. This analyzer handles vocal separation (via UVR Karaoke or Demucs) and lyrics processing (through automatic transcription, alignment, or external sources like LRCLIB). To ensure performance, the analyzer runs as a persistent process to avoid model startup delays, and results are cached using BLAKE3 hashes.

Who it’s for

Music lovers and karaoke enthusiasts who want to create custom karaoke tracks from their own local audio/video files or connected media servers like Plex, Jellyfin, and Navidrome.

Highlights

  • Neural Vocal Separation: Uses ML models to strip lead vocals from songs.
  • Automated Lyrics: Supports automatic transcription and alignment for word-timed lyrics.
  • Flexible Library Integration: Connects to local folders and popular media servers.
  • Karaoke Features: Includes pitch scoring, key and tempo adjustment, and multiplayer support for 2-4 players.
  • Visual Customization: Offers dynamic backgrounds via GPU shaders, video, or images.
  • Cross-Platform: Available as a native desktop app (Windows, macOS, Linux) or a self-hosted web app.

Related

  • Project
  • Project
  • Project
  • Project
  • Project