Hey all! Wanted to share a project I've been working on - Nightingale, a karaoke app that works with any song in your music library.
You point it at a folder of music, it separates vocals from instrumentals, transcribes lyrics with word-level timing, and plays it back with synced highlighting and pitch scoring. Works with video files too.
Built with Bevy for rendering and UI - shader backgrounds, adaptive scaling for TV setups, gamepad navigation. The audio/ML side uses Python (Demucs, WhisperX), but the app ships as a single binary and bootstraps its own Python environment + models on first launch. No system dependencies needed.
Some things that might be interesting from the Rust side:
- Bevy for a non-game desktop app with GPU shaders, video playback, and real-time audio
- Embedding and managing a Python runtime from Rust (downloading uv, creating a venv, running analyzer scripts as child processes)
- Real-time pitch detection from microphone input
- ONNX Runtime integration for the UVR model
- Cross-platform builds for Linux/macOS/Windows including Apple Silicon
Open source (GPL-3.0): https://nightingale.cafe
Would love any feedback!
