Nightingale – open-source karaoke app that works with any song on your computer
245 points
6 hours ago
| 16 comments
| nightingale.cafe
| HN
rzzzzru
6 hours ago
[-]
I've been working on a karaoke app called Nightingale. You point it at your music folder and it turns your songs into karaoke - separates vocals from instrumentals, generates word-level synced lyrics, and lets you sing with highlighted lyrics and pitch scoring. Works with video files too.

Everything runs locally on your machine, nothing gets uploaded. No accounts, no subscriptions, no telemetry.

It ships as a single binary for Linux, macOS, and Windows. On first launch it sets up its own isolated Python environment and downloads the ML models it needs - no manual installation of dependencies required.

My two biggest drivers for the creation of this were:

    The lack of karaoke coverage for niche, avant-garde, and local tracks.

    Nostalgia for the good old cheesy karaoke backgrounds with flowing rivers, city panoramas, etc.
Some highlights:

    Stem separation using the UVR Karaoke model (preserves backing vocals) or Demucs

    Automatic lyrics via WhisperX transcription, or fetched from LRCLIB when available

    Pitch scoring with player profiles and scoreboards

    Gamepad support and TV-friendly UI scaling for party setups

    GPU acceleration on NVIDIA (CUDA) and Apple Silicon (CoreML/MPS)

    Built with Rust and the Bevy engine
The whole stack is open source. No premium tier, no "open core" - just the app.

Feedback and contributions welcome.

reply
whilenot-dev
3 hours ago
[-]
Just tried it with B.E.D - Walk Away[0], unfortunately it lost track of the lyrics after 30 secs (Model is "large-v3"). Will play around a bit more, as it would be great to have a working karaoke generator.

Some quick feedback:

  - Needs a way to skip for-/backwards during playback to validate the result
  - Sentences seem to be recognized (first letter has uppercasing), but periods aren't added
  - Needs an option to edit results from the track analysis
Thanks for keeping it FOSS!

[0]: https://www.youtube.com/watch?v=_MFT4H3VoNE

reply
djtango
3 hours ago
[-]
Periods in song lyrics?
reply
rzzzzru
1 hour ago
[-]
hey mate! thanks for your feedback.

indeed, I'm running to two problems on the analyzer side: 1. align model sliding off (especially w/ chorus/back vocals present) 2. transcript skipping parts of lyrics in lyrics-heavy tracks (I tried a lot of russian rap, lol)

happy for contributions as I'm not that experienced w/ machine learning side of the project, mostly it was emperical "tweak the parameters and look what is changed"

reply
rzzzzru
1 hour ago
[-]
also model only affects the transcript job (I need to make it clearer in the UI). For the alignment, it's a single model provided by whisperx
reply
evanjrowley
41 minutes ago
[-]
Amazing work! I am thrilled someone was motivated to approach this problem and develop a creative solution like this. There are very limited options for Karaoke, especially in the FOSS space. Most Karaoke apps are super limited and that's driven many Karaoke enjoyers I know to YouTube in search of the songs they want to sing. This solution would give them the power to do even more songs, even better than what's out there now!

Questions for you:

1. What CUDA capability level is necessary for Nvidia GPU accelleration to work?

3. Are there any plans to support iGPU/NPU accelleration on AMD and Intel? Asking because those chips are most common in the mini computers sold at low cost these days.

My family members who love Karaoke and will be happy to try this. Looking forward to it!

reply
solstice
3 hours ago
[-]
Excited to try this out. How well does WhisperX deal with lyrics in say Mandarin or Cantonese? Does it output Hanzi?
reply
rzzzzru
1 hour ago
[-]
I haven't tried Mandarin and Cantonese, but tried Japanese. back at that time, it performed poorly. however, I've tweaked a bunch of settings since then, so maybe it has changed. Hanzi is a supported font and can be output, but the transcript/alignment quality might not be the best
reply
defrost
3 hours ago
[-]
Struggled somewhat with Tjamuku Ngurra by the Tjintu Desert Band, absolutely nailed Mariah Carey's Ken Lee.
reply
philsnow
22 minutes ago
[-]
reply
antihero
4 hours ago
[-]
This looks like awesome awesome fun! Will let you know how it runs. What a wonderful idea <3
reply
upsuper
46 minutes ago
[-]
Really nice project, I'm looking forward to trying it!

Would it be possible to process songs on one device, and then use the result in another, or even multiple? Or would it be possible to run as separate server / client?

I ask mainly because the device I connect to my TV is definitely not the most powerful one, so it would be nice if I can preprocess the songs elsewhere.

reply
Eckter2
32 minutes ago
[-]
Very nice!

I've worked on a small toy project with a similar purpose in the past [1], though it's not nearly as polished as yours, and I've made some questionable decisions here and there.

I have questions about pitch tracking. It seems you do track the pitch for scoring, and there's a line at the top of the screen that seems related but that I can't figure out. For my use case, an important feature of karaoke apps is displaying how "high" the next note should be sung, or at least some hints. Is it something your app can do and I just haven't figured it out? Or would it be a feature request?

[1] https://github.com/eckter/karaoke_helper

reply
rzzzzru
12 minutes ago
[-]
hi there! pitch scoring is now pretty simplistic and the feature you're describing is not implemented. it's a great feature request tho!
reply
skatedbear
8 minutes ago
[-]
So cool! I'll try it with the steam deck. Being able to go to a party with just the deck and a microphone and have a karaoke with any song people want sounds good.
reply
10729287
4 hours ago
[-]
Open source, local and passion driven. The kind of news that make me believes in humanity again. Thank you, can't wait to try it this week-end !
reply
mynameajeff
2 hours ago
[-]
My wife is a huge karaoke fan. I'm especially interested in the pitch scoring since we usually play the karaoke games on older consoles for that exact feature. Nobody really makes games like that anymore without a subscription (and most of these good modern karaoke platforms are exclusive to east asia anyways). If this works well this could make for some really fun social events, looking forward to trying this.
reply
echoangle
1 hour ago
[-]
I don’t want to take away from OPs project (which seems really nice) but have you tried Ultrastar Deluxe ( https://usdx.eu/ ) in combination with USDB ( https://usdb.animux.de/ )?

There’s also a program for automatically downloading the songs: https://github.com/bohning/usdb_syncer

reply
wossab
33 minutes ago
[-]
What would you consider the best "Singstar-like" alternative atm?
reply
rzzzzru
1 hour ago
[-]
please try it out and share your feedback afterwards!

both transcript/alignment might not work perfectly, but it really depends on the song

reply
dmd
2 hours ago
[-]
This looks great, but I don't understand what it's supposed to do. I assumed the idea was "remove the lyrics" but of the 5 songs I tried (from Cry Cry Cry, Indigo Girls, and Suzanne Vega), none seemed to have any change from the original at all - it's showing the words on the screen (and the timing is perfect) but it's not removing the singing at all. How do you turn off the singing?
reply
rzzzzru
1 hour ago
[-]
hey!

you can use + / - buttons on the keyboard to change the level of guidance according to your preference, generally there is a controls legend in the top right corner

https://nightingale.cafe/docs/controls

reply
dmd
1 hour ago
[-]
Yeah, I did that. I think the problem is when there are multiple singers harmonizing it only removes one.
reply
rzzzzru
1 hour ago
[-]
indeed! the stem separation model is not ideal. you can try to change the stem separation model in the settings and reanalyze the song (make sure to click the trash button and then analyze, refresh button does not refresh the stems, only the transcript/alignment)
reply
reddalo
1 hour ago
[-]
Looks amazing. I've been using Karafun [1], a paid service, but this seems promising.

[1] https://www.karafun.com/

reply
mock-possum
5 minutes ago
[-]
Unfortunately karafun, like so many other systems, has egregious holes in its catalog. I hate playing the “this song? No… this song? No… this song? No…” game.
reply
kikokikokiko
23 minutes ago
[-]
Karafun is a paid service? I've seen their karaoke songs on Youtube for over a decade, I thought that was their business model.
reply
reddalo
13 minutes ago
[-]
Yes, the free songs on YouTube aren't customizable: there's a low voice guide that you can't turn off (or turn up...), and you can't change tempo.

You can do this from their huge catalog of songs, using their official app or their web client: https://www.karafun.com/web/

Plus, they have music quizzes you can play with many people using smartphones as remote controls. It's super fun for parties where people don't want to sing all the time.

reply
arvinsim
36 minutes ago
[-]
I am getting a virus detected error when downloading from Chrome.
reply
caipira
3 hours ago
[-]
This looks amazing! looking forward to test it on the weekend. Does it work well on a raspberry pi with 4 gigs of ram?
reply
rzzzzru
1 hour ago
[-]
oof, since it uses quite heavy models locally I would expect it to struggle on such hardware. M1+ macs & nvidia gpus work the best and fastest.
reply
integralid
3 hours ago
[-]
>app that works with any song on your computer

Impressive, very nice. Now let's see my death metal collection.

Just joking! Very nice, thanks for open-sourcing it.

reply
rzzzzru
1 hour ago
[-]
No joke, feel free to try it! The beauty of the approach is that you don't have any limitations. Just be prepared to degraded experience, sometimes models struggle even with the simplest pop tracks :D
reply
manbash
1 hour ago
[-]
This is very cool. I couldn't find it it already supports duets. I assume it won't.
reply
rzzzzru
1 hour ago
[-]
stay tuned for more features!
reply
hasbot
1 hour ago
[-]
I hate to be that guy that points out other projects but YARG has vocals and there are a slew of songs that can be used.

https://www.yarg.in

https://www.enchor.us/?&hasVocals=true

reply
ETlol
3 hours ago
[-]
VirusTotal says the .EXE is flagged by 1 security vendor but threat is low
reply
rzzzzru
1 hour ago
[-]
hey, thanks! would be happy if you open it as issue on gh
reply
rjh29
4 hours ago
[-]
I think you nailed it. Does it support pitch/tempo controls?
reply
rzzzzru
1 hour ago
[-]
not yet, but it's a great feature request!
reply
spacesxbt27
1 hour ago
[-]
this is more nuanced than the title suggests. worth reading the whole thing
reply