Add karaoke mode with on-demand vocal separation via Demucs #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/karaoke-mode"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
When the user toggles karaoke mode on a Navidrome track, the backend
downloads the track, runs htdemucs (4-stem) via Demucs to separate
vocals, sums the non-vocal stems into an instrumental WAV, and caches
it under data/stems/. The Intel N150 iGPU (torch.xpu) is used when
available, falling back to CPU.
Three new API endpoints: GET/POST /api/karaoke/{id}/status|prepare|stream.
The frontend polls every 3s while processing, then seamlessly reloads
the track at the current playback position with the karaoke stream.
When karaoke first becomes ready, the NowPlaying panel auto-opens so
lyrics are visible for a full karaoke experience.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
When the user toggles karaoke mode on a Navidrome track, the backend downloads the track, runs htdemucs (4-stem) via Demucs to separate vocals, sums the non-vocal stems into an instrumental WAV, and caches it under data/stems/. The Intel N150 iGPU (torch.xpu) is used when available, falling back to CPU. Three new API endpoints: GET/POST /api/karaoke/{id}/status|prepare|stream. The frontend polls every 3s while processing, then seamlessly reloads the track at the current playback position with the karaoke stream. When karaoke first becomes ready, the NowPlaying panel auto-opens so lyrics are visible for a full karaoke experience. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>View command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.