example.com/path/to/article
000 points · username · 0 hours ago
example.com232 points · 91 comments · 3 days ago · dsmurrell
I was pretty terrible at singing, now I’d say I’m bad but not terrible. This is because I’ve been using a singing app (won’t name it here) that scores me on my pitch and timing throughout the song so that I can improve.
Lately however, the app I’ve been using has flooded their song list with songs that aren’t originals. I didn’t like this at all as for me, it’s easier to try to improve when you’re singing along to the original.
So, I asked an agent (Claude Code) if it could write some code to listen to Spotify and also listen to me and see if it could detect both pitches and score me. It impressed me by writing some Python and showing me my pitch in the terminal!
It couldn’t go all the way though and detect the singer’s pitch in real time.
So I found the next best setup and built OnKey, a Mac app that needs to listen to the song once (it doesn’t save it) and then when it’s learnt the song (takes a couple of minutes), you can sing along to the pitch track that it’s learnt. OnKey is free to use and open source under the MIT license.
It can listen to Spotify, Apple Music, and YouTube playing in your browser with the right permissions.
During the build I found that someone had done something similar in Nightingale, but this requires a library of songs exported to disk and who has this in 2026 (maybe some of you ;) - but we need to help the normies too).
You can check out a demo video on the site of me singing (warning given) here: https://singonkey.app
The app sends out to find the song info (short Shazam fingerprint, and looks up song details), lyrics (from LRCLIB), and checks for updates.
The app never sends the music (it doesn’t save this to disk) and your voice. Everything you’d expect to stay private does.
It’s still weak in a few places:
- when the song’s backing is noisy it’s hard to pick the pitch track out
- sometimes it gets a note an octave off
- it’s limited to Apple Silicon Macs, M1 or later, and only macOS 14.2 up because extra drivers aren’t required past this point
- the scoring is built for beginners like me so it’s fairly easy on you
Would love for people to try it out and let me know what works and what doesn’t for them!
sligbad
wnissen
Have you played the Rock Band and similar "rhythm games" that were all the rage in the Wii era? I don't know that it helped my singing per se but gave some incentive to practice.
In case anyone is interested, you can test your relative pitch perception (as opposed to producing the pitch) in this excellent Yale site: https://www.themusiclab.org/quizzes/td I got 15th [sic] percentile!
stevage
These requests do go out:
Shazam (Apple): a short signature of the music app's sound, not the audio and never your mic, to name a song OnKey hasn't learned when the music app doesn't say what's playing.
LRCLIB: the song's artist, title, album and length, to fetch lyrics.
iTunes Search and Lookup (Apple): an artist and title, or the ID Shazam returned, for covers and the song's length. The cover images come from Spotify's, Apple's or YouTube's image hosts.
GitHub: a check for a new version a minute after launch and once a day, and its download.
I really appreciate this level of transparency. Wish it was the standard.
abktya
fourneau
If you haven't done any karaoke using DAM/JoySound, etc they have a scoring mode that sits at the top that does two things: one, help you sing on key because we all suck, and two, score then rank you against other singers (anonymously.)
I couldn't tell from the demo, but do you get access to the audio ahead of time? My karaoke project stopped in its tracks because I couldn't afford to secure rights to music and there didn't seem to be a great legal solution to get audio.
enzoaguado
This kind of app is great for getting started and getting a taste of what singing involves, but it would be awesome to cover these other aspects as well, or at least mention their existence for aspiring singers.
nopurpose
Looks nice, I sing so badly that I never dare to try if not alone. Maybe this app will help me to improve just little that I can sing along happy birthday quietrly in a corner without anyone turning heads.
busssard
My little sister asked me to turn music into notation. I built https://om-intelligence.ch/projects/vocal-notation/vocal-not...
feel free to integrate that into your app, the architecture might be a way around mac only..
It might be able to turn any song into singable notation then.
pheraph
drltaidev
I've thought about these kinds of apps a lot recently, and am also working on some (not for singing though), I have a programming background (and a PhD in Machine Learning) but still I am impressed by what Claude Code can do so I'm hardly writing a single line of code myself any more. Asking for the right things is still important of course.
criddell
I started thinking about this when trying to play along with stuff on YouTube and discovering that the entire song is sharp (likely sped up during mixing or mastering). Would you describe those songs as being off-key?
TZubiri
bita_nidir
One of my methods for my pet projects is just to wait for someone else to do it, worked this time :)
I might chuck this into Claude when I have tokens to spare and see how it'll do with my feature request. Are there any specific apple silicone limitations you can remember? I'll send you a PR if you're interested?
HummingBirdGif
ChrisMarshallNY
Here's a stress test: https://www.youtube.com/watch?v=hMzIk2pUuNU
mkesper
aidenn0
mandeepj
lukemichael
hungryhobbit
it’s limited to Apple Silicon Macs, M1 or later,
:(
Macs and Linux are so similar now, I hope you'll consider porting someday.
hensenjuang
julianromano
robofanatic
zug_zug
[deleted]
dyauspitr
viraptor
I like the idea though. I was using a paid app doing something similar in the past. Keen to get back into it.
infossgmllc
manlymuppet
Red Hot Chilli Peppers. Anthony Kiedis.
It's like if you had let Shaquille O'Neal teach you how to shoot threes.
[deleted]
Part of the struggle is really listening to yourself, and learning how to pick up on your own mistakes.
I hope the tool is helpful, and I hope I don't sound too curmudgeonly when I say don't let the time making and maintaining tools for practice detract from the most important thing, the ur-tool of all learning: more practice.
(Ask me how I know! A common trap for programmers!)