13 comments

  • rzzzzru 5 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.

    • whilenot-dev 2 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

      • djtango 2 hours ago
        Periods in song lyrics?
      • rzzzzru 48 minutes 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"

        • rzzzzru 37 minutes 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
    • solstice 2 hours ago
      Excited to try this out. How well does WhisperX deal with lyrics in say Mandarin or Cantonese? Does it output Hanzi?
      • rzzzzru 31 minutes 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
    • defrost 2 hours ago
      Struggled somewhat with Tjamuku Ngurra by the Tjintu Desert Band, absolutely nailed Mariah Carey's Ken Lee.
    • antihero 3 hours ago
      This looks like awesome awesome fun! Will let you know how it runs. What a wonderful idea <3
  • mynameajeff 1 hour 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.
    • echoangle 3 minutes 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

    • rzzzzru 47 minutes ago
      please try it out and share your feedback afterwards!

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

  • 10729287 3 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 !
  • reddalo 25 minutes ago
    Looks amazing. I've been using Karafun [1], a paid service, but this seems promising.

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

  • dmd 1 hour 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?
    • rzzzzru 46 minutes 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

      • dmd 42 minutes ago
        Yeah, I did that. I think the problem is when there are multiple singers harmonizing it only removes one.
        • rzzzzru 0 minutes 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)
  • manbash 50 minutes ago
    This is very cool. I couldn't find it it already supports duets. I assume it won't.
    • rzzzzru 48 minutes ago
      stay tuned for more features!
  • caipira 2 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?
    • rzzzzru 45 minutes 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.
  • integralid 2 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.

    • rzzzzru 35 minutes 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
  • ETlol 2 hours ago
    VirusTotal says the .EXE is flagged by 1 security vendor but threat is low
    • rzzzzru 45 minutes ago
      hey, thanks! would be happy if you open it as issue on gh
  • hasbot 55 minutes 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

  • spacesxbt27 43 minutes ago
    this is more nuanced than the title suggests. worth reading the whole thing
  • rjh29 3 hours ago
    I think you nailed it. Does it support pitch/tempo controls?
    • rzzzzru 44 minutes ago
      not yet, but it's a great feature request!
  • jamesvzb 1 hour ago
    surprised this isn't talked about more
    • rzzzzru 44 minutes ago
      I've just made it public a few days back :)

      need more pioneers to try it out and spread the word!