Show HN: OnKey – I'm a bad singer, so I built an app to show where I'm off-key

220 points by dsmurrell a day ago on hackernews | 91 comments

HummingBirdGif | a day ago

How are you detecting pitch?

[OP] dsmurrell | a day ago

For the user's pitch OnKey uses CREPE-tiny (https://github.com/marl/crepe) but ported to Rust with the model running on ONNX Runtime. For the singer's pitch also CREPE but the full version.

The vocal separation for the song uses UVR: https://github.com/Anjok07/ultimatevocalremovergui

You can find more details here: https://singonkey.app/docs/how-it-works

wnissen | a day ago

What a fun idea! I love that the song doesn't have to be programmed in by the developer. Will give it a try.

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!

[OP] dsmurrell | a day ago

Not played Rock Band myself only some Guitar Hero.

https://www.themusiclab.org looks cool, I'll give it a try today when I get a chance.

nopurpose | a day ago

Didn't know that external apps can interact with Youtube in a tab in Safari.

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.

[OP] dsmurrell | a day ago

> I never dare to try if not alone

Yes, this was me. My confidence has improved through practise to a point where it only half killed me to post that demo video. My family still ask me to relocate when I'm doing this around them... so I think you can hit the pitches and still not sound amazing.

Unfortunately, the way it works, and to avoid any copyright issues, it can't really operate on phones because you can't listen to other apps on them. Maybe the only way is to share your learnt pitch tracks (trained on the laptop) with a mobile companion app.

james_marks | 19 hours ago

Listening to someone practice music is unpleasant to many people, regardless of ability.

I wouldn’t take their request to “go somewhere else” as an indictment.

manlymuppet | a day ago

The main demo video uses the Red Hot Chilli Peppers as an example. A singing app, for learning to sing, and Anthony Kiedis used as the model.

Red Hot Chilli Peppers. Anthony Kiedis.

It's like if you had let Shaquille O'Neal teach you how to shoot threes.

manlymuppet | a day ago

I now realize this comment may read much more mean-spirted than I intended--not my intention!

This is a great and cool app. I am just joking. Sorry to be an ass.

[OP] dsmurrell | a day ago

Not at all! It's accurate :)

I'd definitely still let Shaquille O'Neal show me how to shoot threes. Dunking on the other hand could be an issue.

[OP] dsmurrell | a day ago

Yes, I got this from a friend... "Lol, I could t tell the difference between you and Tony Kiedis!"

I'm terrible at detecting sarcasm usually, but this one was easy for me.

jansan | 22 hours ago

I had to look it up and maybe it helps others understand: Shaquille O'Neal was bad at shooting threes and only made one three-pointer in his entire professional career (he attempted 22).

stevage | 21 hours ago

He was also terrible at free throws.

It's weird how famous he got.

yCombLinks | 18 hours ago

Tom Brady got 28 rushing touchdowns in 20 years. Josh Allen has 8 in the last 6 games. Weird how famous Tom Brady got.

grokys | 22 hours ago

At least they're not using him to learn lyric writing.

mkesper | a day ago

This is a great learning tool! I wish I could use it on Linux. :)

[OP] dsmurrell | a day ago

Noted, I haven't done a feasibility test yet, but I do have an issue up here to vote on: https://github.com/dsmurrell/onkey/issues

It's got 3 thumbs up but no indication of which OS they're from... maybe I need two issues.

pheraph | a day ago

I think my daughter will love this. How about some simple gamification mechanism? A score or a star rating on how well you performed, maybe combined with a difficulty level?

[OP] dsmurrell | a day ago

Each song has a difficulty rating from 1 to 5. You can use this to filter your library.

And you can track your scores over the takes you did of a sing in your history. So I think OnKey has you covered on these.

Let me know if it matches what you expect when you try it out.

pheraph | a day ago

Awesome, I'm checking it out right now. Just a few quick notes:

- By “difficulty,” I meant that you can set a skill level that's a bit more forgiving if you miss the mark, as opposed to a “pro” level, which may be stricter. I’m thinking especially of kids, who might have more fun with it that way. It would also be nice to have a personal profile to choose from, with your own library (?) or at least your own presets (difficulty, progress, etc.).

- It took me a little while to figure out how the app works. You start a song in Apple Music, and the app records it. I had somehow expected a large search bar in the app that I could use aside from the music suggestions to get started.

- Even though I hadn’t set up Spotify (it wasn’t even displayed), it was still enabled in the settings.

- This is probably a bit outside your scope, but in the german song “An Tagen wie diesen, Die Toten Hosen” some (final) syllables get cut off, and sometimes the bars go down even though the melody goes up (or are the notes transposed an octave when they no longer fit within the scale?).

That's for now, I’ll keep an eye on the project and create issues if my observations become more consistent. Thanks for the project!

[OP] dsmurrell | a day ago

> By “difficulty,” I meant that you can set a skill level that's a bit more forgiving

Got it! If anything, it's on beginner level right now and is very forgiving and I need to add maybe two levels above it with pro being at the top. Let me know if you think it needs something even more forgiving than how it works currently and I can try to build that in as a 4th level.

> I had somehow expected a large search bar in the app that I could use aside from the music suggestions to get started.

Yeah, the app relies on you finding the music in the way you normally do in your music players, I'll try and make this clearer. Once you have a few songs in your library however, then you can use that to navigate through them or search them up by difficulty and play them.

> Even though I hadn’t set up Spotify (it wasn’t even displayed), it was still enabled in the settings.

Thanks, will check that out.

> or are the notes transposed an octave when they no longer fit within the scale?

Do you mean this... Now and then a note bar is drawn an octave off its neighbours. The cause is the note model (GAME) choosing the wrong octave for that note. It happens most on pop with heavy backing, where a backing vocal or instrument sits an octave away. I've tried to fix, but the evals get worse so I've not managed to fix that issue yet.

There are definitely some issues I haven't been able to solve yet and it creates terrible pitch tracks for some songs. I have an eval set that I'm optimising through changes so hopefully it gets better over time. It might be at the limits of what's possible with the vocal separation, but I'm hoping that it can get better than it is right now with time and effort.

If you yourself sing an octave above or below, it will draw adjust and score you as on key.

> That's for now, I’ll keep an eye on the project and create issues if my observations become more consistent.

Thank you!

pheraph | a day ago

PS: There seems to be a bug on my machine. When I press the Play button in the Library, the song screen opens, but the previous song performance is still open there and nothing happens. I have to press the "in Apple Music" in the library; then it switches to Apple Music, where I press Play again and switch back to OnKey. Can't OnKey start playback on its own?

[OP] dsmurrell | 23 hours ago

Thanks, taking a look now, I'm seeing a few weird things myself here. I'll try to make this smoother and push a new release. Switching from songs loaded in Apple Music to songs loaded in Spotify doesn't work too well at the moment.

viraptor | a day ago

Ok, I'll be that one today. This seems entirely vibe coded... why is it using webview/tauri? It could be so small and smooth in swift with just a small change to the prompt. People used electron/tauri/whatever to make things easier to write and maintain, but if we're just vibing things anyway, can we go back to respecting resources, please?

I like the idea though. I was using a paid app doing something similar in the past. Keen to get back into it.

[OP] dsmurrell | 23 hours ago

You're not wrong. I do have a coding background which helps but I'm new to Rust. It started in Python with a web frontend so it somewhat evolved into this.

> why is it using webview/tauri?

Using these makes it easier to port to the other platforms later if I choose to.

About 365 of the 420 MB is the AI models which I decided to bundle so that the app wouldn't have to download additional things after the install.

My agent tells me that writing in native Swift would save (estimate) about 100–170 MB, out of about 1.4 GB when the models are active. And then I'd have to maintain the interface in two or three ways if I decided to make versions for other platforms.

If it does grow though and there are a lot of Mac users, this might be worth it though as you suggest. But I have a lot of project that go precisely nowhere so I always keep this in mind :)

viraptor | 5 hours ago

I meant runtime resources more than the download size itself. It's still 200MB+ per instance of a webview app. Which is not a huge amount on its own, but that's what everyone thinks... and then we get a number of apps with webviews each adding up.

bita_nidir | 20 hours ago

In a small defence to webview/tauri, it's pretty smooth and fast, and multi platform free of charge. I'd have done this in Tauri too, but that's just my voice. But I otherwise totally agree with you.

enzoaguado | a day ago

Singing is about so much more than just hitting the right notes. Breath management is one of the most important skills you can develop to improve your singing. Proper vocal technique helps you avoid injuring your voice when tackling difficult songs. Learning to recognize and use techniques like belting, twang, head voice, chest voice, vocal fry, etc., can really bring your singing to life. Prosody and rhythm training help you develop good timing (one of the most important aspects of music), and there's so much more to it.

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.

[OP] dsmurrell | 23 hours ago

I'm not great at any of these things. I do agree with you... do you have links to good resources in this regard? Maybe I can start by linking to them, and then later building the features that make sense into the app.

yawgmoth | 21 hours ago

I like Dan Callaway on YouTube. Jeff Rolka is another good teacher. However, singing is complicated and choosing which exercises you'll use to teach folks ... You need 1. Vowel alignment 2. Coordination of voices 3. Breath support and vocal tension management 4. Mouth shape, tongue placement.

And then there's "how to read a song", deciding which words are emphasized, where to breathe, modifications to fit your voice, etc.

[OP] dsmurrell | 18 hours ago

Thanks, will check these out!

NikolaNovak | 18 hours ago

If you're willing to elaborate - For what goals and stages, do you require these?

----

Background to my question: I was looking for music teachers for myself and my kids (guitar and piano), and I found two types:

1. Royal Conservatory Curriculum, Lesson 1, Page 1, firmly, formally, and without deviation: You MUST learn notation, theory, and proper everything, first. THEN, 5 years later, you get to have fun :)

2. Let's have fun! If you like it and stick with it, we can tackle advanced topics in a customized manner and see where it takes us :)

I find approach #1 is only valid for people who know they will go far and stick with it (either because their parents force them, or for some other, rare, intrinsic motivation); but it hugely discourages huge number of people who don't have such long-term motivation and dedication yet - it postpones the rewards and makes the initial curve super steep.

So my question is: For a completely casual, random person who sings terribly and wants to get "a little bit less embarrassing / dip their toes"; isn't pitch training usually the first step for them to enable their hearing, rather than the complex vocal techniques?

fg137 | 16 hours ago

I doubt you'll get an answer here, and people in "type 1" don't want to talk about type 2.

My take, without directly addressing your questions: "have fun" doesn't go very far, and you'll discover that if you want to be good at anything, you'll need to put in many hours of practice with endless repetition and go through setbacks and self doubt, none of which is fun. And for sure there are singers and musicians that never go through formal training, including at the highest levels, they are few, when most musicians you know have been learning music since they were kids.

NikolaNovak | 15 hours ago

Absolutely agreed that effort is needed to reach ranks above beginner; my main point/peeve is the steepness of the curve from "nothing" to "beginner", not the work definitely required to go from "Beginner" to "intermediate" let alone "Expert".

My approach, from "nothing" to "beginner", is to give a taste of the "target" - how fun and rewarding it can be. A 7 year old kid who learns how to play Mario Galaxy theme on piano, gets motivated and excited, and then goes through the effort; vs the 7 year old who's sent to music lessons and they spend 2 months on perfect finger positioning for C-major scale. Similarly for adults and guitar - I find teaching them 4 simple chords and strumming which cover 40% of pop songs in 2-4 weeks, gets them hooked and willing to then invest the effort, vs starting with notation and theory and picking hand positioning etc on day 1.

As specific to singing matter at hand, it is my understanding that pitch training will have an immediate, early, quick, and lasting benefit (which is, however arguably, benefited by the app in the post), vs saying "well you can't sing if you don't also do these 5 intermediate-level things right away" (unfair representation, but I've been on the receiving end of it:).

I have a close friend who's an opera singer, and absolutely did proper training from early age, daily, for years -- but, most of us aren't and won't be; my primary point is that early stages of training/learning shouldn't necessarily be the same.

yw3410 | 14 hours ago

No. Pitch is not super important (and almost certainly will iron itself out as the ear improves) and can be a marker of the other issues.

I completely agree with OP that breath management is the number one issue I hear in a beginner.

compiler-guy | 11 hours ago

In my experience, the people who subscribe to type 1 are afraid that a potential Mozart or Beethoven won't reach their full potential because of bad habits and bad instruction. And the people who subscribe to type 2 are afraid that some kid won't have the pleasure of making music because they can't even start making music for years under strict type 1 tutelage.

There are many more people who never make music because it wasn't fun when they tried than potential Mozarts and Beethovens.

jansan | 23 hours ago

You probably cannot imagine how bad some people are at singing. I have people near me who sing completely out of tune, so much that it hurts. I am not an Apple guy, so I cannot test the app myself, but I will definitely send the link at least to those who know themselves that they are terrible at singing, hoping that Christmas will be less painful for my ears this year.

whynotmaybe | 21 hours ago

Please don't mix stereotypes, it's not because I own a Mac mini that I'm an apple guy. Macos is mandatory if you want to publish an app on the app store.

biinjo | 21 hours ago

They spoke directly at op and you responded for some reason. Op made an iOS only app and that’s most likely why they referred to them as ‘an apple guy’.

Nobody was saying “everyone who owns a Mac Mini” or “everyone who ever has published an iOS app” is ‘an Apple guy’.

whynotmaybe | 18 hours ago

Anyway, for the same reason, just because you make an iOS only app doesn't make you an "apple guy".

LluisGerard | 19 hours ago

I've been doing classes for more than a year with an online teacher and it's been amazing and when watching the demo I saw so many of the mistakes I've done in the past and yet the app keeps saying to the singer GREAT and PERFECT but the coordination is all over the place, not to mention an octave lower and in a very monotone way (lack of prosody or emotions).

And it makes sense, you can't add emotions until you cover some of the basics.

This app can work really well once you have breath and placement nailed down and you just want to focus on pitch, but it feels like it can me misleading to people to think they sing good.

[OP] dsmurrell | 18 hours ago

The scoring is overly lenient at the moment. If I added a few new modes for how harshly someone is scored, I'd add harsher modes.

> and in a very monotone way

You should hear me speak, people start yawning :)

OnKey intentionally ignores octaves when scoring so that you can sing inside of your range without straining your voice.

mrkstu | 16 hours ago

Support transposition and maybe a range finder…

fg137 | 17 hours ago

This.

As an amateur musician who can afford private lessons, I cannot understate how important a teacher is in music learning. You can try to learn things on your own and mess with these stuff, but a teacher goes a long way. They spot your mistakes instantly and help you progress efficiently.

I understand that it is not financially viable to everyone, but seriously, if you are able to, get some professional guidance.

abktya | a day ago

I am sure this app will be very useful for my wife and daughter, who spent the whole day singing at the top of their lungs. It will also be a benefit for me, as I’ll get to hear more accurate notes.

[OP] dsmurrell | 23 hours ago

Great. Let me know your feedback here, in the GitHub as an issue, or on Discord!

hensenjuang | 23 hours ago

Can you exclude a section from scoring if it picked up a backing vocal instead of the melody?

[OP] dsmurrell | 23 hours ago

Not at the moment but it would be a good feature, I'll try to see what's possible here.

robofanatic | 22 hours ago

Great idea. Does it work with any language? Or just English?

[OP] dsmurrell | 21 hours ago

Works with other languages. Personally, I love this song: TRINIX - Vaitimbora feat. Mari Froes

But find it hard to sing to as I don't speak Brazilian Portuguese so it's hard to match the words.

I will ask my friend if it works for him as he speaks the language.

drltaidev | 21 hours ago

I like the idea, I definitely think there is potential in apps helping with teaching music, of course this isn't anything new, but the direct feedback possibilities have improved a lot with recent ML / AI advancements. As others said, singing is so much more than just hitting the right notes of course, so understanding the scope of the tool is important. But still, it's a neat idea. It's awesome that AI coding tools have made it so much easier to work out these ideas... but also tricky because everyone seems to make their own now, and it's not even per se the best ones that survive.

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.

[OP] dsmurrell | 21 hours ago

Yep, this would have taken me maybe a few months (possibly a year) before, learning what I needed to know, and AI brought it down to about 10 days. Also have an ML background but this didn't come into play building this, I got my agent to do the research on what tools were available and which I could use based on their licenses, then created an eval set and tried the tools against one another until I landed on the best set.

Credits for the libs I used are here: https://singonkey.app/docs/credits

stevage | 21 hours ago

> 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.

[OP] dsmurrell | 21 hours ago

Thank you. I run Little Snitch myself so I can see what's talking out.

TZubiri | 21 hours ago

While an approach of associating "notes" with frequencies and singing right with "hitting the frequencies" is what you may naively consider. I think it's more important to get the intervals right, you can take any starting frequency, and as long as you get the intervals right it will sound right, even if the frequency itself isn't perfect. Whereas if you use a frequency based approach like this you will have an absolute frame of reference instead of a relative one

[OP] dsmurrell | 20 hours ago

Agreed, but if you're singing to the song, then you'd have to match the vocal pitch of the singer otherwise there would be a clash.

Some other singing apps allow you to transpose the entire song but it's easy for them because they play the music. In OnKey's case, it would have to silence the music from the player then replay it shifted up or down. So this might be possible, I'd have to do some experimentation.

> Agreed, but if you're singing to the song, then you'd have to match the vocal pitch of the singer otherwise there would be a clash.

It might be useful to allow just matching the note. E.g., if the singer is singing C5 count the user singing C4 as a match.

bita_nidir | 21 hours ago

Wow, this is brilliant, thanks for sharing it! I've had pretty much this app way down on my TODO list for the last 20 years. I was planning a Linux and violin support too.

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?

[OP] dsmurrell | 19 hours ago

The Mac only parts are in https://github.com/dsmurrell/onkey/tree/main/src-tauri/nativ.... I believe that Linux would need PipeWire and MPRIS in their place.

> One of my methods for my pet projects is just to wait for someone else to do it, worked this time :)

Happy to be of service!

PRs welcome.

sligbad | 19 hours ago

I have thoughts about this pedagologically. I think these kinds of tools can be helpful, but the number of rhythm students I have seen who need to break out of the dependence on a visual metronome is rough.

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

[OP] dsmurrell | 19 hours ago

Makes sense! You can enable mini mode (top right) so that you can sing without the pitch track and program at the same time :D... then listen back to your take along with the original and see how you're tracking score wise.

npunt | 10 hours ago

Agree, a good teaching tool is one that understands the scaffolds are only temporary and is constantly seeking ways to reduce the presence of scaffolds as learners increase in skill. Most tools don't take on a pedagogical lens so essentially view the user's skill as static, and thus seek to maximally reduce friction because that is what is assumed to add value. This often comes at the expense of the learner.

A more generalized view is that the design of software should aim for some optimal level of friction between the person and the task (a two-way optimization), rather than simply try to diminish it (one-way).

Also, this is a neat product :)

robotomo | 5 hours ago

I had an idea some time ago for a pitch training app that works aurally rather than visually. Basically it's a reverse auto tune. You wear headphones and hear your pitch errors exaggerated, forcing you to sing more accurately.

atoav | 2 hours ago

I feel beyond being able to play precise rhythms and pitches, there is great value in being able to be off-grid in a meaningful, purposeful way.

While it is useful to be able to be precisely on grid if you want to be so — be it with the timing of your notes or the pitches played — many musicians I know are so overly fixated on the metrum of click track or the accurate pitch the forgot how to feel the ebs and flow that comes with great music that is just played in its own space and time. And pitch is no different here, sliding into or out of pitch of being able to sing/play slightly of grid is a very powerful skill.

But technique as the ability to pull it off is one thing, the knowledge when to use it and how much only comes with years of practise.

Nowadays many beginning musicians tie themselves so much to these grids, they can't imagine playing without them. To quote a musician that was asked by the sound engineer to play without click to make the track less mechanical: "That is allowed?"

julianromano | 17 hours ago

This is great, any idea of extending it to musical instruments?

[OP] dsmurrell | 16 hours ago

Thank you.

I suspected that extracting played notes out of songs might be more difficult than vocals, but my agent is telling me that it might be possible given its context around the models the app is currently using. I'll experiment with this.

It might only work for single note instruments.

fourneau | 17 hours ago

You built the scoring feature of karaoke that I failed to build a few years ago, this is awesome!

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.

[OP] dsmurrell | 17 hours ago

Thanks!

OnKey only listens to what you play through your other apps, then it uses what it's heard to learn the notes and then discards the song and never saves it to disk.

This means that you need to let it listen to the song the first time it plays. You can sing to that song blind (no pitch track) and it will still score you at the end.

What I do is let it listen while a playlist plays through, then when I re-listen it lines up the pitch track with the music as it plays through my music source again.

IANAL, but I think that by listening to the music that people already have access to through their subscriptions, not distributing any music, lyrics, or learned melodies i.e. keeping everything for personal use only (see https://github.com/dsmurrell/onkey#using-onkey-fairly), rights aren't required.

I might do the ranking thing later but this brings some form of centralisation to the project which it currently doesn't have, and I haven't worked out how to stop people gaming that.

fourneau | 12 hours ago

Yeah I wouldn’t worry about the rankings as they’re silly at best, but you do get bragging rights for nailing that song.

With respect to rights that’s likely true; too bad streaming services don’t make it easy to use their songs.

busssard | 16 hours ago

i love the feature where you can select a song to compare to.

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.

[OP] dsmurrell | 16 hours ago

Thank you, I'll take a look.

KolmogorovComp | 16 hours ago

really cool! Thanks for sharing
Discussed here:

Turn your singing voice into printable notes (in the browser) - https://news.ycombinator.com/item?id=48900686 - July 2026 (26 comments)

criddell | 16 hours ago

I understand that being sharp or flat from a target note is called being off-key but I'm wondering where that came from? In my head, off-key would indicate that you are singing or playing a note that isn't the key of the piece (like A♯ if you are in the key of C).

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?

dsign | 15 hours ago

I don't understand either what, technically, "off-key" means. I mean, sure, in well-known songs the singer needs to sing certain parts at a certain pitch, and it sounds awful when they don't. But say this is a song you are composing. There, you have your chord progression, but the chords and their notes are some sort of guidance. You may compose the song in such a way that the singer sticks strictly to the notes in the chord as much as possible, but that sounds weird and requires no small amount of singing skill. Or you may keep the singer a perfect fourth or a minor third away from some notes of the chord for part of the melody, "off key", and it may still sound good.

esikich | 14 hours ago

Notes that aren't part of the chord are called passing tones. Typically, they are tones in the diatonic key the song is in. However, there is no requirement for all chords to be diatonic. When they stray from that, different contexts clue you in to what passing tones would be "correct" in that situation. Say an E major chord in the key of C major. You get to use a G# in that case which is not in the C major scale, and the passing tones that are "in key" are informed by the context of the other chords around that E major.

hungryhobbit | 16 hours ago

> it’s limited to Apple Silicon Macs, M1 or later,

:(

Macs and Linux are so similar now, I hope you'll consider porting someday.

[OP] dsmurrell | 14 hours ago

Will do, check out https://github.com/dsmurrell/onkey/issues/1 to register your interest in other platforms. Need to test feasibility.

infossgmllc | 15 hours ago

very nice. My daughter is in choir. I will have check it out.

zug_zug | 14 hours ago

This is great. Thank you, I love this.

[OP] dsmurrell | 13 hours ago

I love that you love this!

mandeepj | 13 hours ago

Great effort in improving your skills! I guess I can use a similar approach to improve my speaking skills?

[OP] dsmurrell | 12 hours ago

I have thought about this for my children who I find hard to understand sometimes :) I'm not sure what the right approach is here, I have some ideas but I'd have to test them to see if they work out.

mandeepj | 12 hours ago

Great. Maybe create a separate repo so we can collaborate? I can fork it too, if you're okay with that. Hopefully more will join in.

[OP] dsmurrell | 12 hours ago

Sure. I'll let you know when I make a start on that one, if you make a start first, let me know!

mandeepj | 10 hours ago

Got the repo here: https://github.com/propellingbits/SpeakRight

I've got some ideas; let's see how much I can pull off in the remaining months of 2026.

dyauspitr | 12 hours ago

Is it just me or do others not care about apps anymore? I’ve just “built” everything I use for my self. Reminders app, note taking apps, song recognizers, plant identifiers, ebook readers, trail running apps, workout apps etc. Only problem is I have to have a scheduled job to redeploy them on my iPhone every week. Is there a way to have a self built app on the iPhone that doesn’t need periodic redeployment?

lukemichael | 12 hours ago

Perfecting your voice through learning rather than AI correction is a much better thing IMO. Keep it up

ChrisMarshallNY | 11 hours ago

Good show!

Here's a stress test: https://www.youtube.com/watch?v=hMzIk2pUuNU

aidenn0 | 11 hours ago

Does it handle vibrato? A lot of the simple "correct pitch" apps ding you for using vibrato.

[OP] dsmurrell | 11 hours ago

It handles some mild vibrato because it's quite lenient on scoring you and if you're off pitch a bit you get full score: https://singonkey.app/docs/scoring

I'll bear this in mind though when I add the harsher scoring modes.