[HN Gopher] Nightingale - open-source karaoke app that works wit...
       ___________________________________________________________________
        
       Nightingale - open-source karaoke app that works with any song on
       your computer
        
       Author : rzzzzru
       Score  : 464 points
       Date   : 2026-03-18 08:06 UTC (14 hours ago)
        
 (HTM) web link (nightingale.cafe)
 (TXT) w3m dump (nightingale.cafe)
        
       | rzzzzru wrote:
       | 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.
        
         | antihero wrote:
         | This looks like awesome awesome fun! Will let you know how it
         | runs. What a wonderful idea <3
        
         | solstice wrote:
         | Excited to try this out. How well does WhisperX deal with
         | lyrics in say Mandarin or Cantonese? Does it output Hanzi?
        
           | rzzzzru wrote:
           | 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 wrote:
         | Struggled somewhat with _Tjamuku Ngurra_ by the Tjintu Desert
         | Band, absolutely nailed Mariah Carey 's _Ken Lee_.
        
           | philsnow wrote:
           | ( https://knowyourmeme.com/memes/ken-lee )
        
         | whilenot-dev wrote:
         | 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 wrote:
           | Periods in song lyrics?
        
             | gaudystead wrote:
             | I'm guessing they mean punctuation in general?
        
           | rzzzzru wrote:
           | 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 wrote:
             | 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
        
         | evanjrowley wrote:
         | 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!
        
           | rzzzzru wrote:
           | hi!
           | 
           | 1. Maxwell+ should work well 3. I would need to explore, you
           | can join the discord or the mailing list on the website!
           | 
           | cheers!
        
         | throwaway743 wrote:
         | Just tried No_4mat's 1992... unfortunately it didn't work :(
        
         | samtp wrote:
         | I just want to say how much I love that you used Dean Blunt in
         | the example video
        
           | rzzzzru wrote:
           | one of my favorite artists and this one is one of my favorite
           | tracks in general. cheers!
        
       | 10729287 wrote:
       | 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 !
        
       | rjh29 wrote:
       | I think you nailed it. Does it support pitch/tempo controls?
        
         | rzzzzru wrote:
         | not yet, but it's a great feature request!
        
           | fekunde wrote:
           | Amazing product. Second the pitch control feature request
        
       | integralid wrote:
       | >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 wrote:
         | 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
        
       | caipira wrote:
       | 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 wrote:
         | 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.
        
       | ETlol wrote:
       | VirusTotal says the .EXE is flagged by 1 security vendor but
       | threat is low
        
         | rzzzzru wrote:
         | hey, thanks! would be happy if you open it as issue on gh
        
       | dmd wrote:
       | 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 wrote:
         | 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 wrote:
           | Yeah, I did that. I think the problem is when there are
           | multiple singers harmonizing it only removes one.
        
             | rzzzzru wrote:
             | 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)
        
       | mynameajeff wrote:
       | 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.
        
         | rzzzzru wrote:
         | please try it out and share your feedback afterwards!
         | 
         | both transcript/alignment might not work perfectly, but it
         | really depends on the song
        
         | echoangle wrote:
         | 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
        
         | wossab wrote:
         | What would you consider the best "Singstar-like" alternative
         | atm?
        
       | hasbot wrote:
       | 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
        
       | manbash wrote:
       | This is very cool. I couldn't find it it already supports duets.
       | I assume it won't.
        
         | rzzzzru wrote:
         | stay tuned for more features!
        
       | spacesxbt27 wrote:
       | this is more nuanced than the title suggests. worth reading the
       | whole thing
        
       | reddalo wrote:
       | Looks amazing. I've been using Karafun [1], a paid service, but
       | this seems promising.
       | 
       | [1] https://www.karafun.com/
        
         | kikokikokiko wrote:
         | Karafun is a paid service? I've seen their karaoke songs on
         | Youtube for over a decade, I thought that was their business
         | model.
        
           | reddalo wrote:
           | 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.
        
         | mock-possum wrote:
         | 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.
        
           | reddalo wrote:
           | Psst... if you sign up to their Premium tier you can play
           | songs from their "Community" (i.e. user uploaded songs). If
           | you sign up to the "Pro" tier, you can play even more songs
           | that are normally locked from their catalogue (but you'll
           | have to manage rightsholders authorization yourself).
        
       | upsuper wrote:
       | 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.
        
         | rzzzzru wrote:
         | hi! answered here https://github.com/rzru/nightingale/issues/7
        
       | arvinsim wrote:
       | I am getting a virus detected error when downloading from Chrome.
        
         | rzzzzru wrote:
         | it's a false positive, however feel free to build from the
         | source while I'm figuring out what the virus trigger is about
        
       | Eckter2 wrote:
       | 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
        
         | rzzzzru wrote:
         | hi there! pitch scoring is now pretty simplistic and the
         | feature you're describing is not implemented. it's a great
         | feature request tho!
        
       | skatedbear wrote:
       | 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.
        
         | rzzzzru wrote:
         | I'm not sure whether the analysis would work swiftly enough on
         | steam deck, it might be better to analyze on a desktop device
         | and transfer ~/.nightingale/songs to the steam deck. just
         | saying!
        
       | Gormo wrote:
       | Just downloaded source and built this to play around with it. I
       | was a bit surprised that the first thing it did when I ran it was
       | to start downloading binaries from the internet. It went off to
       | fetch FFMpeg from some remote server, but I already have FFMpeg
       | installed. Then it tried and failed to install its own Python
       | interpreter, which is another thing that's already present on the
       | system.
       | 
       | How come this is trying to install its own vendored dependencies,
       | including executable binaries, instead of checking for what's
       | already installed? That approach can lead to both security and
       | performance issues.
       | 
       | Edit: the Python _download_ isn 't failing, but rather the
       | application itself is looking for the executable interpreter in
       | `lib` rather than `bin` once the download completes. I built the
       | release tarball in the git repo, and I'm pretty amazed that such
       | a basic error could make it into release code.
       | 
       | Further edit: I tried using the build script in the tarball
       | rather than just doing a `cargo build -r`, and it started trying
       | to install Docker containers! Docker to build a desktop
       | application! What is going on here?
        
         | ramesh31 wrote:
         | >How come this is trying to install its own vendored
         | dependencies, including executable binaries, instead of
         | checking for what's already installed? That approach can lead
         | to both security and performance issues.
         | 
         | Because the person who vibecoded this had no idea they should
         | have been doing that.
        
           | user34283 wrote:
           | Personal attacks directed at people who build OSS are not
           | cool, even if you take issue with their supposed use of AI or
           | vendoring of dependencies.
        
             | bheadmaster wrote:
             | Vibe coders are NOT programmers, they are leeches, feeding
             | from the blood of the open source.
        
               | stavros wrote:
               | Yeah yeah. This app is open source too.
        
               | bheadmaster wrote:
               | That's even worse, they're polluting the open source
               | space with AI slop. Anyone learning from open source will
               | _not_ learn anything useful from it.
        
               | stavros wrote:
               | Man, nobody is learning anything any more, those days are
               | gone. Programming with actual code is a niche hobby or a
               | hyperspecialized profession now, like demoscene coders.
               | 
               | Besides, even before LLMs, it's not like anyone ever said
               | "you shouldn't have open sourced this, we can't learn
               | from your code". We just didn't bother reading that code.
               | 
               | Telling off people who contribute is not OK.
        
               | bheadmaster wrote:
               | AI slop is not a contribution.
        
               | user34283 wrote:
               | I doubt that you know the OP's background and knowledge.
               | 
               | If someone on here would direct at me the insinuation
               | that a flaw in my software was the result of me having
               | "no idea" about what I am doing, we would not be having a
               | civil discussion.
               | 
               | In my view personal attacks should be flagged, but I
               | don't have that ability because my account does not have
               | enough Karma.
        
               | bheadmaster wrote:
               | Look at the commit history. Vibe coded in 10 days, with
               | obvious AI generated commit messages. Look at the diffs.
               | 
               | If you can't tell AI slop from handwritten code, that's
               | your problem. I won't censor myself because of your
               | opinions.
        
               | user34283 wrote:
               | There is no need for me to look at "obvious AI generated
               | commit messages" or check whether the code is
               | handwritten.
               | 
               | Personal attacks are still against the rules of this
               | site, and that's why you, or in this case the commenter
               | before you, should have censored themselves. This is not
               | a matter of opinions.
        
               | bheadmaster wrote:
               | Calling a duck a duck is not a personal insult, no matter
               | how much the duck dislikes being called a duck.
        
               | shimman wrote:
               | It reminds me of the billionaires that like to constantly
               | tell people they could have "studied physics" when it's
               | so obvious they would fail out of any intro calculus
               | class (let's also ignore that they could easily pay for
               | the top tutors to "study physics") but just want to code
               | as smart and not come across as a moron, you're going to
               | see the same thing with vibe sloppers too.
        
           | solvik wrote:
           | It's a desktop app for mostly non-technical users, so
           | bundling the runtime is a deliberate tradeoff to reduce setup
           | friction and machine-specific breakage.
           | 
           | That said, an optional "use system environment if available"
           | mode could make sense for advanced users. A PR for that would
           | be welcome, as long as it also handles the real complexity
           | involved: platform differences, Python package compatibility,
           | GPU backends, and missing system/compiler flags.
        
             | Gormo wrote:
             | > It's a desktop app for mostly non-technical users, so
             | bundling the runtime is a deliberate tradeoff to reduce
             | setup friction and machine-specific breakage.
             | 
             | That's not a very reasonable justification, considering
             | that dynamic linking of dependencies has been industry
             | standard in software designed for "non-technical users" for
             | the past thirty years or so, and is basically a solved
             | problem.
             | 
             | I can understand having a downloadable archive that already
             | includes things like FFMpeg and Python for _Windows_ users
             | (with everything already included in appropriate locations,
             | so no runtime downloads necessary).
             | 
             | But this is an _especially_ bad practice for Linux, since
             | most of the vendored dependencies are already installed by
             | default on pretty much every Linux distro, and package
             | managers are designed to sort out and install appropriate
             | dependencies on behalf users, so that the  "non-technical"
             | among them aren't exposed to the massive risks of having
             | application software retrieve and execute arbitrary
             | binaries from the internet.
             | 
             | The only thing it somewhat makes sense for would be the AI
             | models it's retrieving, but even that ought to be
             | implemented via a separate download/update script and not
             | just baked into the main application runtime without even
             | prompting the user that it's about to download a huge
             | dataset.
             | 
             | > A PR for that would be welcome, as long as it also
             | handles the real complexity involved: platform differences,
             | Python package compatibility, GPU backends, and missing
             | system/compiler flags.
             | 
             | These are the sort of things that config scripts at build
             | time are designed to handle. It's already using Cargo here,
             | which should be able to handle all of this just fine, so
             | it's very perplexing to see that it isn't being used for
             | this purpose, and what should be build-time dependency
             | resolution is instead being palmed off to the application
             | itself at runtime. That is an extremely strange -- and
             | potentially dangerous -- approach.
        
               | marssaxman wrote:
               | > dynamic linking of dependencies has been industry
               | standard
               | 
               | So it has, and I've been hating the excess complexity it
               | brings for most of that thirty years! I'm glad to see the
               | recent swing back toward self-contained executables.
               | Where this author went wrong was not in vendoring the
               | app's exact dependencies, which is a good idea, but in
               | trying to download them and install them separately on
               | first launch, rather than including them in the app
               | bundle, where they can remain isolated from the rest of
               | the system.
        
               | Gormo wrote:
               | > So it has, and I've been hating the excess complexity
               | it brings for most of that thirty years!
               | 
               | It reduces complexity compared to the administrative and
               | security mess of every application having its own version
               | of every library, let alone its own version of external
               | tools and interpreters.
               | 
               | > I'm glad to see the recent swing back toward self-
               | contained executables.
               | 
               | I wish there was one. Static linking is a great solution
               | for this. Instead, we're seeing dynamically linked
               | libraries being bundled alongside of executables in a way
               | that increases complexity vastly.
               | 
               | > Where this author went wrong was not in vendoring the
               | app's exact dependencies, which is a good idea, but in
               | trying to download them and install them separately on
               | first launch, rather than including them in the app
               | bundle, where they can remain isolated from the rest of
               | the system.
               | 
               | Agreed. Dependency resolution at build time is normal.
               | Dependency resolution in user mode at runtime is crazy.
        
             | charcircuit wrote:
             | Such a setting will cause more headaches for the developer
             | since it explodes their support matrix. Supporting a single
             | version of dependencies and shipping those is a much more
             | scalable solution for delivering high quality software.
        
               | Gormo wrote:
               | Quite the opposite, in fact: if the app gains popularity
               | that people start looking to build and package it for
               | their respective OSes or distribution channels, the
               | author will be inundated with support requests on account
               | of doing dependency management in such an unusual and
               | risky way.
               | 
               | "Normal" users wouldn't even encounter anything here, as
               | they'd just install prebuilt binary packages with all of
               | the dependencies already sorted out. As things stand, the
               | application trying to install its own dependencies at
               | runtime is creating a whole new class of user-facing
               | issues to generate escalations (such as the app's failure
               | to locate the Python interpreter it itself had just
               | installed).
        
               | charcircuit wrote:
               | >in such an unusual and risky way
               | 
               | There is more risk in the shenanigans people who package
               | software for distros do. Kdenlive suffered from big
               | damage to their reputation due to all of the crashes
               | packagers added by using incorrect versions of
               | dependencies.
               | 
               | >"Normal" users wouldn't even encounter anything here, as
               | they'd just install prebuilt binary packages with all of
               | the dependencies already sorted out.
               | 
               | That's the benefit of just shipping what the developer
               | released instead of swapping out dependencies under
               | developers' feet.
        
           | rzzzzru wrote:
           | hey both!
           | 
           | thanks for your feedback and reports, I'd be happy if they
           | are added as issues on github.
           | 
           | as said in the separate comment, I really wanted an app to be
           | as "grandma-proof" as possible, therefore I really wanted to
           | have one binary that does the magic for you. it's a karaoke
           | app, not a tool that is aimed at engineers.
           | 
           | we can indeed look at the local packages before downloading
           | an executable, it's just not done yet but might be added in
           | the future.
           | 
           | I've built this project out of passion and it's 100% open-
           | source and free, so please keep this in mind when
           | criticizing.
        
             | mentalgear wrote:
             | While I can understand that, why not replace python deps
             | with wasm versions ?
        
               | rzzzzru wrote:
               | Simply because I was not aware of this option, that's it.
               | Happy to consider it and also happy to receive
               | contributions.
        
             | Gormo wrote:
             | > I really wanted an app to be as "grandma-proof" as
             | possible, therefore I really wanted to have one binary that
             | does the magic for you.
             | 
             | Probably the best way to do that is to design, build, and
             | distribute it like any other normal desktop application,
             | and not come up with idiosyncratic and experimental methods
             | for invoking bog-standard libraries and language
             | interpreters.
             | 
             | On Windows, just include the necessary binaries as part of
             | the application distribution itself, in hardcoded paths,
             | without any runtime download of executables from unclear
             | sources.
             | 
             | On Linux, use system defaults resolved at build time
             | through a normal config script -- any "grandma users" on
             | Linux will end up installing from distro repos, AppImage,
             | Flatpak, etc, all of which have their own methods for
             | handling dependencies, and is definitely not something the
             | application should be trying to do by itself post-install.
        
               | rzzzzru wrote:
               | noted, mate, and thanks for the feedback, really!
               | 
               | I'm not experienced in building desktop apps per-se, so I
               | went with the thing that looked reasonable to me. all
               | your comments are valid tho. I'll take a look how can I
               | resolve this in the future.
               | 
               | cheers!
        
         | rzzzzru wrote:
         | I'm just using cross https://github.com/cross-rs/cross to build
         | cross-arch. you can still use `cargo build`, it will just work.
        
           | Gormo wrote:
           | It did, but then the application didn't work because it
           | couldn't find the Python interpreter that it itself
           | downloaded into its own config directory.
        
         | raincole wrote:
         | > instead of checking for what's already installed
         | 
         | Plenty of software come with their own Python runtime. Even
         | Blender uses its own Python runtime. I can name so many apps
         | with embedded Python runtime: Blender, Houdini, Bitwig,
         | Substance Painter, Krita, etc. Checking for what's already
         | installed isn't the norm. In Krita's case, it uses installed
         | Python to build it... and in the building process it builds
         | another Python runtime for its own!
         | 
         | This app should have probably bundled the runtime instead of
         | downloading a new one though.
         | 
         | > install its own vendored dependencies
         | 
         | > lead to both security and performance issues
         | 
         | npm install and pip -r theoretically have the same kind of
         | security issue. How many projects on github run this kind of
         | command during build process? My guess is in the order of
         | millions.
        
           | throw_await wrote:
           | All reasonable Linux distro will patch these stupid things to
           | usw the system interpreter.
        
             | Gormo wrote:
             | And even if the build scripts are downloading deps, having
             | the application itself install dependencies to the user's
             | home directory at runtime is unheard of.
        
             | raincole wrote:
             | It's not how it works. You can just install whichever linux
             | distro of your favorite, download blender or krita, and see
             | it uses its own python by default yourself.
             | 
             | And thankfully it's not how it works. If it were it'd break
             | plugin ecosystems of _many_ apps completely.
        
               | ajsnigrutin wrote:
               | gentoo (a lot of lines removed):                 $ strace
               | blender-4.4        ..       openat(AT_FDCWD,
               | "/usr/lib64/libpython3.13.so.1.0", O_RDONLY|O_CLOEXEC) =
               | 3       ...       openat(AT_FDCWD, "/usr/lib/python3.13",
               | O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 12       ...
               | 
               | No issues with plugins
        
         | bityard wrote:
         | This is unfortunately becoming more common.
         | 
         | Just yesterday, I went to try out some cool new AI thing that
         | was here on the front page of HN. It's written in Python.
         | Great, I thought, that means I can put it into a virtualenv and
         | just rm the whole tree when I'm done and my system will be
         | exactly in the same state it was previously.
         | 
         | But sadly... no... the first time I ran it, this Python program
         | started downloading and installing Node/NPM, and all kinds of
         | other stuff to my machine WITHOUT even asking for permission.
         | Sorry app developers, but my machine and my home directory are
         | my workplace. They are curated property, you are NOT allowed to
         | just install whatever you wish.
         | 
         | I expect this kind of behavior from programs whose only
         | supported installation method is a curlpipe. (And I do avoid
         | those.) I do not expect it from programs that claim to be
         | installable by pip, or ship their own binaries. These NEED to
         | be called out as vulnerable to supply-chain attacks at worst
         | and extremely disrepectful to users at best.
        
           | LtWorf wrote:
           | I would, for safety, run the whole thing under a different
           | user.
        
         | jsjshsshhs wrote:
         | welcome to the millenial way of doing things
         | 
         | always assumes internet is connected
         | 
         | always assumes everything is trusted
        
         | ravenstine wrote:
         | > How come this is trying to install its own vendored
         | dependencies, including executable binaries, instead of
         | checking for what's already installed? That approach can lead
         | to both security and performance issues.
         | 
         | I've been sympathetic to your viewpoint, and I can see why this
         | kind of thing is becoming more common.
         | 
         | The idea that users can reliably supply their own vendor
         | libs/execs for applications is a bit of a fantasy. Devs working
         | on fixing issues caused by the user having a strange issue due
         | to the version of Python or whatever that they have installed
         | is largely a waste of time when the application can "simply"
         | ship with the exact dependencies it expects. This is especially
         | true when it comes to open source work. Dealing with weird edge
         | cases because the user has a version of FFMPEG installed that,
         | for whatever reason, is missing h264, is work that nobody asked
         | for. Given that the audience of this kind of app is a general
         | one (not specific at all to devs) then it doesn't make sense to
         | require other system packages to be present; if things like
         | Python and FFMPEG are not required and will be downloaded
         | anyway as part of the app install process, then there's no
         | point in not _always doing that_. If you think about it, it 's
         | hardly different from any other sort of software dependency.
         | The dependencies are just relatively bigger.
         | 
         | Personally, I have no desire for my applications to use other
         | executables on my system unless I request that they do so
         | explicitly. I'm sympathetic to the idea from a mere efficiency
         | perspective, especially when it comes to developer tooling. But
         | a karaoke app? No offense, but why care? A Python interpreter
         | will be anywhere between 50 and 200 megabytes. FFMPEG is even
         | smaller, especially if you don't enable every single feature
         | and codec. Compared to how ridiculously bloated your average
         | basic mobile app is (without anything like a built in JIT),
         | bundling a desktop application with something like Python
         | provides a lot of power relative to the number of bytes added.
        
           | Gormo wrote:
           | > The idea that users can reliably supply their own vendor
           | libs/execs for applications is a bit of a fantasy.
           | 
           | That's why package managers and OS repos exist. Users
           | shouldn't have to even be aware of this sort of stuff. In
           | this case, though, when the application starts trying to
           | download and install its own dependencies at runtime, instead
           | of everything already being sorted out at build time, the
           | user is _made_ aware of dependency resolution, and now has to
           | deal with the issues involved.
           | 
           | > This is especially true when it comes to open source work.
           | Dealing with weird edge cases because the user has a version
           | of FFMPEG installed that, for whatever reason, is missing
           | h264, is work that nobody asked for.
           | 
           | And that's what config tests at build time solve for, and
           | have solved for decades.
        
         | HWR_14 wrote:
         | > How come this is trying to install its own vendored
         | dependencies
         | 
         | "Why does this new software do X?" is probably answered by "the
         | vibe worked on my system"
        
         | mft_ wrote:
         | It's probably pertinent to mention that the Python installation
         | ecosystem is a hot mess, with multiple ways of installing
         | Python (e.g. standard Python installer, multiple different
         | packages managers on different OSes, Conda, and myriad package
         | managers which can also install Python. And of course, these
         | can all be in different locations, and may have different
         | approaches to installing libraries.
         | 
         | Which is to say, I don't blame the author for wanting a single
         | installation that his app can manage and rely on, even though I
         | wish it was different.
        
           | cynicalkane wrote:
           | The app is vibecoded. The author isn't making decisions about
           | these tradeoffs and possibly wasn't aware of the implications
           | of these decisions at all. The robot they used tried to
           | fulfill its given prompts at the expense of everything else,
           | which is why it's looking in bad directories and trying to
           | install Docker environments in the build script.
           | 
           | I suspect that some of the author's comments in this thread
           | are vibe-written, also. They are LLM-flavored and contrast
           | strongly vs. their regular commenting.
        
           | LtWorf wrote:
           | It's not open source if it has to download binaries from the
           | internet to run.
        
             | avadodin wrote:
             | I agree with the sentiment but that definition would make
             | open source Windows programs not open source either.
        
         | ljm wrote:
         | This guy just discovered static linking.
         | 
         | May he enjoy an eternal debate about static and dynamic
         | linking, strong types and duck types, tabs and spaces, vim and
         | emacs, less and more, and Kickers and Rockport.
        
           | mghackerlady wrote:
           | there's a difference between static linking and downloading
           | your dependencies over the net
        
             | ljm wrote:
             | What dependencies, these days, are not downloaded over the
             | net?
             | 
             | If someone put this app on CDs and gave them out at a
             | supermarket, well, it worked for AOL 30 years back but not
             | now.
        
               | gbin wrote:
               | You don't want to add untrusted binary download sources
               | in your Linux system. Your distrib is already doing that.
               | This is not strictly about "downloads from the internet"
               | of course
        
       | mft_ wrote:
       | Big karaoke fan, so thanks for doing this. I'm processing a first
       | test song as I write. The pitch scoring sounds really interesting
       | as both a competitive and maybe also a training tool.
       | 
       | A couple of immediate small pieces of feedback:
       | 
       | * The colour scheme on the queue/nn% buttons is really low
       | contrast - white on pale yellow is very hard to read
       | 
       | * the 'models' button (bottom left) - I assumed this would give
       | me details about which models are available, and the sizes, but
       | instead deleted the downloaded models without warning. Maybe add
       | a 'are you sure you want to...' check?
        
         | mft_ wrote:
         | Processed Kenny Rogers' The Gambler perfectly - took out the
         | lead vocal but left the backing vocals.
        
         | rzzzzru wrote:
         | hey, thanks for the feedback, both noted!
        
       | ccozan wrote:
       | This is just for English language? I have some older Japanese
       | stuff I would love to sing!
        
         | rzzzzru wrote:
         | so, as answered in one of the other threads - for me the
         | transcript model performed poorly back in the days, however
         | since then I've added lyrics lookup and tweaked a bunch of
         | parameters, so it is worth trying!
        
       | danvoell wrote:
       | Nice work! If you are looking for ways to enhance this or
       | complementary routes, one thing I was thinking about recently...
       | As a musician, often I play songs I don't know the lyrics to. It
       | would be cool to have an app that could follow along karaoke
       | style with the words, as I sing and as the band plays. Right now
       | I clip a phone to the mic stand, but after a lyric or two, I lose
       | my place. This is probably multitudes more complex based on every
       | "band/vocals" sounding different, but just something I was
       | thinking about.
        
         | ted537 wrote:
         | Yeah I think this is quite tricky. Even spotify screws up the
         | sync halfway through the song somewhat frequently
        
       | EGreg wrote:
       | This is great! I thought of doing something like this for
       | Karaoke, but was wondering about the copyright implications of
       | doing it server-side.
       | 
       | We already do this for ingesting podcasts and cutting their clips
       | with text being highlighted as people speak. AssemblyAI also
       | supports speaker diarization.
       | 
       | For videos recorded using our own livestreaming studio, we can
       | bypass all this by using Web STT and TTS APIs resulting in
       | perfect timing and diarization without the need for server side
       | models.
        
         | charcircuit wrote:
         | It's problematic even client side since you don't have a sync
         | license to show words timed to the song. A bunch of other
         | licenses are needed too for the lyrics themselves and to
         | process the original file into the instrumental.
        
           | bethekidyouwant wrote:
           | You're not showing them it's at your house
        
             | charcircuit wrote:
             | I'm not talking about public performance licenses.
        
       | MediaMonitorWD wrote:
       | virus detected
        
         | rzzzzru wrote:
         | it's a false positive, however feel free to build from the
         | source while I'm figuring out what the virus trigger is about
        
       | mentalgear wrote:
       | Cool, but on Firefox no lyrics are displayed on the website's
       | demo.
        
       | notdefio wrote:
       | This gave me a blast to the past to Nightingale, the media player
       | built on top of Firefox. It was a Firefox fork that was aiming to
       | be a more powerful alternative to iTunes/Winamp. But since it was
       | built on Firefox, you could also use it as an all-in-one media
       | player and web browser.
       | 
       | The homepage still exists, but it looks like many of the other
       | pages like the blog and wiki are long gone. It hasn't been active
       | in probably over a decade.
       | 
       | https://getnightingale.com/
        
         | CarVac wrote:
         | Was that a songbird followup?
        
           | lillesvin wrote:
           | Indeed it was.
           | 
           | > [...] users forked Songbird and created a Windows, Mac, and
           | Linux compatible derivative under the name Nightingale.
           | 
           | [Source: https://en.wikipedia.org/wiki/Songbird_(software)]
        
       | OpenDQV wrote:
       | i'm at the homepage of this project and i like it! will give it a
       | try at the weekend - as a family we LOVE karaoke!
        
         | rzzzzru wrote:
         | thanks, share your feedback afterwards!
        
       | lucideer wrote:
       | > _separates vocals, transcribes lyrics_
       | 
       | ML has come a long way but I have yet to encounter anything that
       | does this reliably with speech, never mind song lyrics.
       | 
       | > _works with any song on your computer_
       | 
       | I'd be shocked if this is true.
        
         | rzzzzru wrote:
         | it is as good as the models are. it is not perfect, especially
         | for non-major languages, but it works.
        
       | Babkock wrote:
       | I just realized a couple weeks ago that the Japanese invented
       | karaoke.
        
       | harvey9 wrote:
       | I would like the option to put the original music video as the
       | background, like you can in Ultrastar
        
       | nephihaha wrote:
       | I haven't tried this but I would be very sceptical about the
       | transcription of lyrics. Is there some way to correct errors?
        
       | levysoft wrote:
       | This app is really amazing, congrats!!!
        
       | HaloZero wrote:
       | Would it possible to port this to car play? Or does the embedded
       | python not work for iOS apps?
        
         | HaloZero wrote:
         | Bah it has quite a few dependencies which I imagine won't fly
         | on iOS. More possible to build a remote streaming capability to
         | it.
        
       | bmn__ wrote:
       | Can the software dump the recognised pitch and lyrics and timings
       | to Performous text format? There's no formal specification, but
       | examples are available on https://performous.org/songs
        
       | rgilliotte wrote:
       | Looking at the commit history, this came together pretty fast.
       | Assuming it's AI-assisted (hard to know for sure), it's a good
       | example of the opposite of the "AI replaces developers"
       | narrative.
       | 
       | AI is making whole categories of projects viable that simply
       | weren't before. Not because they were technically impossible, but
       | because they were too time-consuming for a niche audience to
       | justify the effort.
       | 
       | Thanks for the cool project! (testing now)
        
         | LtWorf wrote:
         | Similar software existed at the time of windows 95. A pentium 2
         | could do it.
        
       | inkianj82 wrote:
       | the comments here are better than the article lol
        
       | nytrox wrote:
       | Thank you, I wait to try it this week-end !
        
       | melonpan7 wrote:
       | Looks like a fun project, excited to try it out this weekend!
        
       ___________________________________________________________________
       (page generated 2026-03-18 23:00 UTC)