[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)