It's a very cool little game! One suggestion: could you make it so you can noodle around on the keyboard without submitting the answer and then once you've worked it out, have a submission mode? Right now, it's frustrating that if you enter a wrong note, it shows a message, so you can't experiment on the keyboard to try to work it out.
Having both modes could be good. Default allows pre-noodling and enabled gives satisfaction of being correct one-shot (or falls back to retry with noodle).
It be nice if you mapped the keys to the user keyboard kinda like ableton, for people who dont have a midi controller handy
White Keys: The keys from ‘A’ to ‘L’ on your keyboard correspond to the white keys on a piano, covering a full octave from C to D.
Black Keys: The keys in between, like ‘W’ and ‘E’, correspond to the black keys or the sharp notes on a piano.
from : https://www.electrikjam.com/use-your-keyboard-as-a-midi-cont...
Can you name a piece of software that uses this scheme? Or, better still, the OG software that used it. If I steal this, I'd like to have something to call it. (I've seen this scheme before: I think it might be used by the keyboard built into the Squeak image that comes with Scratch 1.4.)
The earliest I've used was Protracker, which was the most popular tracker in the early heyday of the format (late 80s - early 90s), but the earlier Soundtracker was the OG "tracker", and probably used the same layout, but I'm not sure. https://www.exotica.org.uk/wiki/Soundtracker_History
But if FL Studio (formerly FruityLoops) and Renoise use the same layout, as others have said, then those are probably going to resonate with a wider modern audience :D Or maybe just call it "FL Studio / Renoise / tracker layout"?
I don't do computer keyboard note entry any more, but I still have the muscle memory for that 4-row layout from hours spent with it in the late 90s :D And I'd totally use it in your game. (My MIDI keyboards are kinda too far away from the mouse and monitor.)
renoise use that convention https://files.renoise.com/manual/Renoise%20User%20Manual.pdf (page 38). I used psycle modular music in 1999 and I know that it was not the first tracker-like software to use that convention but it's as far as my memory goes.
As a classically trained pianist, I'll say the following commentary regarding this thread: there are many ways to learn to "play the piano" and no one is going to agree on "the right way" because there's no true way.
This project is a good way to practice basic sheet music reading as well as to aurally recognize notes and phrases; teaching would require some cultivation of understanding the context and nomenclature. Thanks for sharing!
Thanks! I definitely agree. Additionally, I always recommend (depending on location, cost, etc) that it’s worth hiring a proper piano teacher, especially at the beginning.
There’s just no substitute for having someone there in person watching your hands, correcting small ergonomic issues, fingering, and so on. Build those fundamentals now so you don’t have to unlearn bad habits later!
I like the game up until 7 or 8 notes, but it keeps adding note.
I couldn't find a setting to freeze the difficulty where it's comfortable and where the melody can still be construed to make sense.
When adding more notes, it breaks the flow and turn a training for pitch practicing into a memory game for rain man, even more so when we make a mistake and must redo the melody partially.
Hmm - I was hoping that the Practice Mode would cover this, but I think there's probably some room to add an option where you can freeze the difficulty level - I'll see if I can add this later in the evening.
The "construed melody" is a harder problem. I've been playing around with the idea of using a markov model or even borrowing what CPU Bach did to try to create more coherent melodies over time.
Transformers are nice. You can train a very minimal network that can output reasonable sequences very easily. They won't be high quality, or too pretty, but they will "make sense" way more than randomness and (usually) change keys in a coherent way.
Hey viraptor! I haven't even thought about using transformers but that sounds like a great idea. The current generator is just a standard random walk across the major/minor intervals and could definitely use some TLC!
I took several years of Suzuki piano method when I was a kid. Suzuki focuses initially on developing the ear.
During lessons, we did this kind of stuff all the time. I would close my eyes and my instructor would play a series of notes and I would need to play them back by ear.
I would also listen to whatever song I was learning before I went to be bed and again when I woke up in the morning, visualizing every note.
Give me a guitar today and I can work out pretty much any song I hear on the radio in under a minute just by listening.
EDIT: To be clear, I also played a LOT of guitar and piano. Ear training was in addition to the hard work of becoming a player.
It's really a great way to train your ear, and fun, too. I can play ukulele, but mostly just to strum and play songs to, but a few years ago I just started picking notes to try to recreate melodies of songs I knew or heard recently. At first it was slow-going with lots of searching on the fret for the right note, but over time I worked up the skill to mostly get the melody on the first few tries. It was the most amazing feeling to realize I could listen to a song and then reproduce it by ear.
I found that it's also an excellent way to "feel" the structure of a melody as well since you're essentially building it up again. Of course you could read music to see the actual melody, but working it out this way feels a bit more intimate.
My disconnect is I can't read sheet music. So I can hear it, then memorize where it is on the piano/keyboard... but that just teaches you play piano by ear. It doesn't teach you how to play music in the traditional sense.
I guess this showing you the sheet music as you find the notes can help with that, but as others noted - I'd like a "mess around" mode, before a "test" mode.
I have a great ear and am terrible at reading sheet music. Fine if you aspire to be a rock guitarist. Not so fine if you aspire to be a classical pianist.
Funny, but I'm final tired of my poor sight reading and have set a goal for 2025 to average one hour of piano playing from sheet music per day.
And I agree...a "mess around" mode on the app would be great. Feels almost punitive when I make a mistake.
If you're looking to improve your sight-reading and don’t mind playing church music, I highly recommend picking up a second-hand copy of an old Episcopal Church hymnal (I like the 1940 edition). All the pieces are four-voice and the rhythms are relatively simple, so you can concentrate on sight reading. Good luck!
Sounds like a good idea. Right now, I'm splitting my time between drill based content (Bartok, Gurlitt, Kunz, etc), beginner classical pieces, and the occasional blues.
Funny, but in church, I spend more time than maybe I should sight reading hymns during the sermon. :)
Great technical demo, but the usability feels unpolished. So here's a little bit of feedback of trying this out on a piano: Just because my piano has 88 keys doesn't mean they are all useful for ear training. The very low and very high notes shouldn't be used, at least not by default. Also they don't even show up properly in the sheet.
As the melodies get longer and longer with each win, this devolves quickly into a memory game. I'd like to keep playing ear training, but I struggle with remembering what sequence of notes came at steps 8+.
This is somewhat aggravated by completely resetting the current level and replaying the whole melody after a single mistake. If I keep making a mistake in note 10, I get all the notes over and over again, which is a bit maddening.
Good point - it's a bit of a hack and I didn't point it out but technically you could play the lowest/highest notes when you configure your midi device that you would like to practice with.
I'll need to put in some proper limitations or possibly add 8va type symbols to more properly limit to a grand staff.
I hate that I can't do a second one after finishing the first task... I know this is supposed to be this magic user engagement trick where people come back day after day because there's no other way to use it, but it's not for me if I can't choose when to play a game or practice a skill
Yeah fair enough, it does have a practice mode after you complete the daily challenge so you can keep playing around with it. There aren’t many tunes added at the moment though.
Interesting, but it shows the first note, and after you play it, it shows the next note, so I have to not to look at the notes when trying to guess them.
Also, too complicated for a beginner, I would start with things like "guess which note is higher" or "how many notes are played simultaneously".
As a beginner I can say that I cannot hear notes and intervals, but I can hear if they go up or down, and I usually pick the notes by playing different notes and comparing them. But your app makes me start from the beginning for every mistake, so it becomes a little difficult.
Just bought a digital piano as New Year present to myself. So far I am doing single-note-a-time melodies from my child's practice book and so far enjoying my slow progress, but I am really struggling. Spent 3 evenings on a single simplest song and still can't play it end to end reliably.
I have to sign every note with a letter in a music book because only other way to "read" music sheet for me is count lines for each note, which is unbearably slow.
I wonder if there is any modern (AI, bluetooth midi app, etc) way to get over initial hurdles easier?
That's good question. While I think my app might help with your ability to pick out notes - it's not going to assist with stuff like proper pianistic ergonomics, fingering, etc.
I’ve heard some people say that the Piano Adventures Player app is a nice little tool because it serves as a supplement to the books themselves.
Funnily, I felt the opposite when I learnt to read music a few years back - that even though I was extremely slow, I could now (theoretically) read and learn to play any music, just slowly! You'll get faster and better with practice, as with everything. I'm still slow. Just not as slow. But crucially I'm fast enough that it's not the bottleneck anymore, getting the notes under my fingers is.
Former band kid who also just got a digital keyboard. Ime learning to read the staff just came from putting in the time on the instrument, but I’m also looking for ways to speed that up. I had the idea of making flashcards and even putting it into an SRS like Anki to see if I can make the process of (re-)learning the staff faster and make it stick. If you come across anything that would help I’m interested too!
I've found that a colorful note guide (such as: https://www.amazon.com/dp/B0BC8NVW4Q) to be very helpful. Without it, I felt completely lost when looking at sheet music.
This is great! Please consider even easier settings for kids. Maybe 2 notes (not 4) as the min starting point and slower ramp up as you succeed.
Also, I think the missed the first note UI could feel a little nicer. Something about the popup/hiding the music takes you out of the flow. Possibly just a subtitle would be enough with an encouraging message. There is a big difference between failing to do the whole pattern and failing the first note so definitely worth refining the feedback here.
This is good feedback - I'll add it in the next version! I actually wrote this for my younger sister but she already has some musical training so it isn't as geared towards beginners.
I keep hitting the start button -- which switches to a different melody -- when I want to hit the listen button -- which re-plays the current melody.
I feel like "listen" should be the first, more prominent button and "start" should be moved to the end and renamed to something more meaningful like "ahh shit, give me a different one"
Just a quick compatibility issue: for some reason, my midi board triggers a key input both when I press it down, and when I let it go. I'm assuming that it might just be something wrong with my board, but I did want to let you know in case there might be some nuance you haven't considered with respect to the midi commands. I know my first crack at it didn't distinguish between note-on and note-off commands, for instance.
I can add a bit of information to what might be behind this bug.
In MIDI, there are NOTE_ON and NOTE_OFF events, for when you press and release each key. The NOTE_ON has pitch and velocity parameters. The NOTE_OFF just has pitch parameter (maybe it has velocity as well I can't quite remember, it's off the point). So if you push middle C, it might look like this:
NOTE_ON 60 (middle C) 98 (velocity),
NOTE_OFF 60
Some keyboards never send NOTE_OFF events, instead they send NOTE_ON with velocity 0. On these keyboards, pressing middle C looks like this:
NOTE_ON 60 98,
NOTE_ON 60 0
Both are valid MIDI streams, and all stream processors should react appropriately to both. This app likely does not correctly map zero velocity NOTE_ON events to NOTE_OFF with the same pitch.
Sweet! Thanks for the follow up. I hope it's a straightforward fix!
Aside from that, nice work on the app! Looking forward to giving it another try.
ETA: a shameless plug, but since you may have an interest in this kind of thing - I built and published a free, online midi piano (and drum kit) available for anyone to use. It's pretty bare-bones and doesn't really explain itself, but in case you ever want to use it, check out https://midi-speaker.com/
works with midi input as well as keyboard and touch/mouse input. it only has the two sampled instruments, but it's great for a groove in a pinch!
Okay I think it's fixed - I'm testing for NOTE_ON with velocity of 0. Let me now if that solves it for you. I simulated a test of it because my midi controller just sends the regular NOTE_ON/NOTE_OFF messages!
Tried out your site - super clean interface. I noticed you are using the Salamander Grand Piano samples. For some weird reason I thought that those samples were pretty huge (50+ MB) but it loaded up pretty quick so great job!
Absolutely awesome. Move the help button off the keyboard. Let the user select whether or not the replay should always play after a mistake. Many issues with learning the longer sequences in practice mode can be difficult if the replay freezes the keyboard every time you hit a wrong key.
I actually spent an hour with it without pause, so in terms of comparing this to highly successful cutting edge AI announcements with playgrounds, I'm digging THIS a lot more today.
Also the sound is very high quality. Having built various A440 piano synths from scratch, the fidelity of the sound is superb. One thing I noticed was that the sound buffer has a memory issue at some point (after about 40 minutes of continuous practice) that causes the sound to start crackling. Maybe something to do with memory storage or something isn't getting flushed when the channel goes idle (no sound playing). Will fiddle. Nice work!
Oh bizarre - thanks for letting me know about this! I'm using a pretty old soundfont player that is sadly no longer maintained so I wonder if that's causing issues.
A cool feature would be a piano key color fading transition when you hit the key, which will adapt someone's memory more quickly to being able to complete the sequence with multiple retries.
Should be as simple as adjusting the color interpolation in an animation on a piano key to its gain (not sure how low the sound API is for this, but you should be able to track the key's moving average on amplitude over 10 frames and bound it to get a fade effect that takes the key press strength into consideration).
Perhaps you can even use a Simon Says color theme suited to the app's theme to work in a nice easter egg. Lots of cool things with this!
This is really cool! As someone who has basically no piano training, this is fun! Perhaps there could be some super-easy mode where you actually highlight the keys while you're playing the sounds (in simon mode) to help the super noobs train their ears.
This is great - bookmarked!
I've connected my casio midi keyboard to it, hope it will help me with getting the right key of a song (I can work out a tune already, but sometimes in the wrong key)
One improvement that would help me a lot is to control the playback speed. My brain needs to start a bit slower as some of the sequences are fairly fast for my brain right now.
I don't have a midi piano. Wondering if it is easy for you to support my inputs using microphone. I think there will be several noobs like me with the same problem.
I'd like more tries to pick out the notes when pecking at the on-screen keyboard. I don't need to hear the pattern again, I need to learn where the note pitches are on the keyboard.
One of the important keys in learning is engagement. If you frustrate the student preventing them from progressing at their own rhythm they will disengage, losing interest in what you are teaching.
I really like this idea. Simple interface, a single goal, it and it doesn't claim to be a full piano course. However, the user experience is incredibly frustrating for amateur players like myself. For some reason i have to hold down each previous note or else it fails? And often when I do play the right note I get no feedack to say so. Another thing is the annoying wait between listening to the piece and playing every time. It would be nice if user input immediately cut out the example piece
Wait, you have to hold down each previous note? So at the end of a four-note sequence you are physically depressing four keys? Hmmm... that sounds like a bug to me.
Hah, very cool! I have a variation on that in an experimental version of some software I wrote and found it to be really interesting to compare experienced pianists' performance on it versus newbies. And that is the main reason why it is still unreleased, it is very hard to design a good educational tool so kudos on shipping!
Thanks jacquesm! I’ve met such a wide variety of pianists (jazz, pure extemporaneous players, hobbyists, strict Suzuki, etc.) that it would be very cool to see that kind of breakdown.
It is a fascinating domain, if I can give you any tips it would be to research early language acquisition, there is a lot of gold in those studies that I think will transfer fairly well to music learning.
Very cool! Love the simplicity of this. Built a similar mode in Midiano (also a midi webapp, but focused on playing MIDI files). But this is much cleaner for a quick exercise. Mine never really got past the prototype stage though. Safe to say, I'll be coming back to this thread for ideas when I do get around working on it again :)
Thanks Bewelge! I took a look at Midiano - it's very polished! Were you inspired by Synthesia? I know it has a combination of falling note + sheet notation as well~
Definitely inspired by it - I had been using Synthesia myself to play piano. But it started more as a "Oh you can use MIDI on the web?"-realisation and grew from there
As someone who practices music 2 to 3 hours a day. I love this. I think people are coming at it as if it were a video game or designed to be a "portfolio project" but as a musician, I think you really created something awesome and lets me practice on what I'm most insecure about....my ear.
Hey polarbearballs (I feel a bit funny writing this name),
Thanks for the feedback - I'm glad you found it useful! I literally made it because I was thinking about the old Simon toy which plays a set of consonant notes (G, C, E, G) and thought it would be a fun way to practice playing by ear!
This looks great. Just started learning piano and ear training has been on my list and this Simon-style approach seems way more engaging than traditional exercises.
The MIDI support is a nice touch. Haven't connected my keyboard yet though.
Gonna try this out.
Fun app! One of the things I wish it had if it can record the ambient notes and match it (like one of those guitar tuner apps). Playing by ear is something I've done all my life and any user can have any instrument matching the notes
I read that line by Mark Antony from Julia Caesar to my 3yo yesterday morning. He usually shushes me by putting his hand over my mouth while I am speaking, but this time he did not. It felt good.
Nice project! I'm not very strong at note recognition, so I see the “Wrong note” message quite often (which is totally fine), but the frequent blinking feels a bit distracting. You might consider making the feedback a little less visually intense.
For those starting out, I recommend going into settings and only choosing the key of C major, which is all the white keys. Then advance onto more keys after that.
I have a really niche use case that this fulfills. I have perfect pitch, but terrible working memory (can't remember more than 4 notes at time). This is a nice way to try to improve it.
Very nice! One of my friends is the exact opposite: they have a pretty poor sense of pitch but a prodigious working memory. They can take a brief glance at a couple of pages of sheet music and instantly reproduce it.
This is as much a sight singing app as it is piano by ear. I did a lot of these kinds of drills studying for the Music Theory AP exam in high school. Very useful
Okay, okay, not quite (FFT libraries are a thing), but pressing buttons on a keyboard is leagues easier than reliably detecting (and filtering noise from) tones coming through a microphone! Not a bad suggestion though
Hey souenzzo - it should repeat the same exercise when you fail in Practice Model. If you want it to mimic Simon, just set "Show Last Note" in the Settings.
I'll look into this, is it possible that you have Silent Mode enabled? I tested the app on an old iPad and it worked okay but unfortunately I don't have any other iOS devices.
iPhone 14 in Firefox (still Safari under the hood of course) - no silent mode, no sleep/DND/etc., volume turned up (confirmed via other browser tab playing YT) - and still no sound from the app.
I’m guessing you may be using a JavaScript API which possibly doesn’t exist in whatever version of Safari (fuck Safari…fuck Apple’s control of browsers…etc).
My advice: Use the free tier of BrowserStack to test basic functionality on a wide range of devices (assuming they still have a free offering…). Also check “caniuse” to see if all the JS APIs you’re using are available on a wide range of devices.
Hey EdNutting - that's a good idea about Browserstack! Yeah my circle of friends only have android phones and/or iPads and we haven't encountered this issue yet.
If you get a chance, could you see if the Metronome works? It'll only play if you're in the middle of a game but it doesn't use the old soundfont-player, just direct web audio.
The starting difficulty is too high for your average beginner. Start with just one interval, then increase. Also, you should let people try a few times rather than just allowing one attempt.
Thanks for the feedback. I've adjusted the Practice Mode so you can turn the starting sequence down to a single note. The "grace note" allowance (see what I did there) for allowing a player to sort of find the right note has been asked for a few times - I'll try to get that implemented later this weekend!
If you could see analytics you would see I am the worst player at this game. But it is cool - can you actually plug in a keyboard to your laptop and use it? If so, what would HN recommend I get? As mentioned I suck at musical instruments but it could be a cool hobby to see if I can learn anything.
Haha - I don't collect any telemetry so your secret is safe. Yeah - if you've got a USB midi keyboard plugged in - the game should autodetect it and just work.
If you're looking for something portable that just works (and don't need a weighted action) - IK Multimedia makes a 37-key controller that is cheap and decent. It's frequently on sale for about $80-120 and probably could be had for cheaper secondhand.
Thanks! It's on my TODO list! I've got several guitars (acoustic, electric, and nylon) so I want to make sure I can get a good level of pitch detection accuracy before I add a mic feature to it~
Nice! I was wondering to make something similiar for guitar. It is little weird that this is not widely used technique. Just blindly repeat the tone you hear, then move to tone sequences. Nice job!
Thanks for the feedback! I'd love to adapt this to support universal pitch detection - with the number of guitar tuner apps out there it's not like it should be TREMENDOUSLY difficult (famous last words).
Please don't cross into personal attack on HN generally, and especially please not in Show HN threads. It's not what this site is for, and destroys what it is for.
> With all due respect, I'll stack up anything I've ever created against anything of yours at any time
I realize the GP comment was a provocation, but please don't respond to a bad comment by breaking the site guidelines yourself. That only makes things worse.
Hacker News has become weirdly anti-hacker in the last 5 or so years, so please keep building stuff and keep posting it. This is literally what HN is supposed to be. The "AI slop" tirade is just bottom of the barrel bandwaggoning for upvotes because it's popular to hate AI today
Thanks for the support. Honestly, I probably shouldn’t get so defensive either, it’s a bad habit and a pretty poor "evolutionary holdover" in the internet age of anonymity and social media.
I thought one way to help mitigate my emotional responses was to desensitize myself, but who really wants to expose themselves to the requisite sufficient threshold of personal attacks? That’s not exactly a fun callus to develop.
One of the counterintuitive aspects of the LLM boom is that agentic coding allows for more weird/unique projects that spark joy with less risk due to the increased efficiency. Nowadays, anything that's weird is considered AI slop and that's not even limited to software development.
No, "LLMs can only output what's in their training data" hasn't been true for awhile.
I'm normally in the camp of "why flood HN with AI crap" and if you are not a musician then I can see why this seems unnecessary. But as a musician, this is a great learning tool. Every musician should be able to play by ear (and I had to ramp up the difficulty substantially to get a bit of a challenge). AI generated or not, this is useful.
Yeah I've been playing 40 years and did a stint in music school. Other than fat-fingered note entry errors my ear nailed all the ones I did. IMO this seems to start from a pretty advanced level off the bat.
I've been playing piano for 40 years, tend to hate anything with AI-buzzwords anywhere adjacent to it. But I generally think this particularly one is a good thing.
Curious what you mean by no attempt to teach. We learn multiplication tables by rote. Are flash cards a genuine instrument of learning? The only way to learn intervals is to practice identifying them. This is how you do it. You can read about music theory (and should) but the only way to build your listening skills is to practice it starting with basic stuff.
This teaches intervals like Duolingo teaches language rules. You sort of pick them up because you need them to figure out the small melody it plays. But you don't get the concept of a 'fourth' or a 'fifth' and there's never a moment where the actual rules are explained.
That said, I think it's very useful for what it is and highlights that whatever your view on AI, there is a niche here that AI can fill that people otherwise would just not build either because they don't think it is interesting, or because no one would pay enough for it.
I addressed that. You should read a book to learn the definition of intervals. But in addition, there's no substitute for ear training. Grinding on interval identification is just as valid as this. Once you get to a level where you can identify intervals on the keyboard, the skills are pretty transferable. But there's just no way to learn what a fifth sounds like by reading a book. You need something like this. There is probably room to add a mode that says "this is a fifth" after you identify a fifth. Or to choose a named interval or chord quality based on hearing it. But I don't think any of that diminishes the utility of what's here.
FWIW I think it's probably more useful to play what you hear than it is to be able to name it. Although they're both good.
Right, and I addressed all that as well. I doubt we are in serious disagreement here and calls for me to “read a book” are frankly rude. I think you need to be more generous in the interpretation of others words because I actually disagree with the original poster for the most part, but you obviously have a different definition of “teach” than he. Flash cards don’t teach. They assist memorization or practice. Memorizing times tables doesn’t teach multiplication except trivially for the numbers you’ve memorized. It does assist in learning multiplication. Likewise this ear training can trivialize learning and identifying intervals later but is not itself “teaching intervals”.
I'm not asking you to read a book. Sorry for being unclear. The reading a book stuff all started from this in my original comment:
> You can read about music theory (and should) but the only way to [...]
My point is just that "you" (an abstract you) can learn music abstractly and in practice. Some things require book reading. Some things require practice and listening. Nothing intended about the cgriswald "you".
I know how to do long-hand multiplication and have memorized the 12x12 multiplication table. I'm not sure which one is more valuable, but I think they complement each other.
I'm not sure if we actually disagree about anything, except maybe the relative value of knowing what an interval sounds like vs what it's called.
Ah, apologies for my misunderstanding. Maybe I should be more generous in interpreting others words. I don’t think we disagree about that either. To me it isn’t about “What it’s called” but about the concept itself. Intervals are “hidden” in this ear training. You get them for free but you don’t necessarily learn that the pattern is there at all. I can agree that the doing ability is more important than the concept but it’s not just about the name. That’s just what we have to use to talk about it.
The key thing is that you teach multiplication tables in a structured, incremental manner. Yes, it's just rote memorization, but the structure makes it way easier. You don't just dump all tables on the student at once and start quizzing them until they get it.
Imo not being able to select a subset of intervals to train heavily limits how useful this is.
There are plenty of musicians here saying this is useful for them or would be useful while learning.
As meta commentary, those not in a subgroup sometime fail to see utility of a thing built for that subgroup and it's easy to feel a sense of superiority "oh how dumb and trivial this thing is", but it may be better to first have curiosity and see how the intended audience responds. Often it's not dumb or trivial, you're missing context and experience to see the value.
I've played the piano for years. Your immediate conclusion that my dislike must stem from inexperience instead of a more nuanced place strikes me as the exact kind of thing you're lamenting in your comment.
As the other poster said, your comment didn't really leave any room for nuance, it was "ai bad". And it's also clear you're too egoistic/defensive to reflect on it.
Other commentary is you're not owed courtesy you yourself didn't give.
It’s the typical “engineer thinking they’re smarter than everyone else” trope. From my experience, engineers fall squarely in the middle of the bell curve. The AI hate is just used as justification, so I don’t even take it that seriously. And fwiw, as someone that played piano when I was younger, this is 100% a useful tool. In fact, during quarantine I was learning to play guitar and used tools like this to learn which string is which by ear.
I think this is much better as a relative pitch training tool for people with a very basic background in piano and music in general. I would have loved something like this back in high school to use for practicing over and over.
I think "teach" is a high bar, but I do think it's a good practice tool.
My one and only complaint is that sometimes the melodies it generates are tough to play back because they don't really sound like a real melody and I have to fight my brain telling me to play back the one that would actually sound good. Sort of like having to memorize a random string of words vs memorizing a normal sentence.
As someone that like to play piano and guitar - I could see this immediately as something to improve my skills and playing by ear
For me I was thinking a thought I almost never think and is long forgotten "where is that old home button in my browser so I can set this as my homepage, or maybe I have to solve 2-3 of these before I can log in to my computer" xD
"insubstantive" is a nice word - software that is modifiable by the user at run time - I guess like scripting "it's just throw away" or emacs bit of elisp and keyboard macro and move on "insubstantive"
Embrace the insubstantive! Otherwise - enjoy when you have a "problem" sitting down and having to abstract more and find the general and solve for "N" because the time investment was high and the tools did not allow for this sort of sketching, insubstantive, throwaway type thing.
- Ability to play with PC keyboard, other apps already have some type of interface to type with keyboard, of course it might change depending on keyboard layout, but it's pretty standard and it happens that the keys aren't usually alighned, so you can have one row be whites and the upper row being blacks.
- Maybe the waiting times between new notes in simon says can be faster? The "You Win" is a bit slow and it feels like forever, breaking the pace of the music.
- Difficulties can be increased as well, Simon Says currently seems like it only does very small intervals, (feels like sheet based is a bit different but maybe not). Maybe it can be configured to allow a wider range of intervals, making it more difficult.
The other similar product that I've seen is an app called Yousician that did this for guitar but it was microphone based. This is very neat.
It's a very cool little game! One suggestion: could you make it so you can noodle around on the keyboard without submitting the answer and then once you've worked it out, have a submission mode? Right now, it's frustrating that if you enter a wrong note, it shows a message, so you can't experiment on the keyboard to try to work it out.
Thanks everyone for the feedback! I've added a bunch of new updates, just thought I would consolidate to this message since its pinned near the top.
*Changes*
- Ableton keyboard layout for ladidahh also thanks for a user name that I had to type about four times because of my phone's autocorrect! :)
- Tempo sliders for practice and Simon modes
- Lock icon which lets you freeze the difficulty at a certain number of notes in Practice mode instead of constantly increasing
- Floating display window in settings which displays stave and note that you are currently playing on a midi keyboard.
*Future Updates*
- Noodle time (let you play around to experiment before going O'Reilly Live)
- Markov or Transformer (thanks viraptor) approach to generate more sonically pleasing melodies
- Pianistic echoes (caetris24) - an optional visualization for the onscreen keyboard almost like a heat map pattern
- Fix the weird iPhone audio issue (EdNutting had some good advice on this)
- still looking at adding the Tracker 4-layout as proposed by moosedev
*Helpful fixes*
- Some midi controllers don't send a corresponding NOTE_OFF, instead they send a NOTE_ON with velocity of 0 (Thanks ta2112 for this helpful info)
That's a good idea - I'll try to get that implemented this evening.
Having both modes could be good. Default allows pre-noodling and enabled gives satisfaction of being correct one-shot (or falls back to retry with noodle).
You read my mind sir! Also, great work by OP, I really needed this since a long time!
came here to write this comment, +1!
another +1
It be nice if you mapped the keys to the user keyboard kinda like ableton, for people who dont have a midi controller handy
White Keys: The keys from ‘A’ to ‘L’ on your keyboard correspond to the white keys on a piano, covering a full octave from C to D. Black Keys: The keys in between, like ‘W’ and ‘E’, correspond to the black keys or the sharp notes on a piano. from : https://www.electrikjam.com/use-your-keyboard-as-a-midi-cont...
This, but (or "and") use the 4-row layout that dozens of tracker programs used[0], to fit over 2 octaves on the computer keyboard.
On a US keyboard:
QWERTYUIOP[] is the white keys starting at middle C. (The row above is the black keys; the 2 key plays C#.)
ZXCVBNM,./ is the white keys starting an octave lower. (S plays a low C#.)
The two ranges overlap; e.g. Q and , both play C in the same octave.
Grew up composing music on a computer this way when my (musical) keyboard didn't have MIDI and I couldn't afford a better one :)
[0] https://en.wikipedia.org/wiki/Music_tracker
Can you name a piece of software that uses this scheme? Or, better still, the OG software that used it. If I steal this, I'd like to have something to call it. (I've seen this scheme before: I think it might be used by the keyboard built into the Squeak image that comes with Scratch 1.4.)
The earliest I've used was Protracker, which was the most popular tracker in the early heyday of the format (late 80s - early 90s), but the earlier Soundtracker was the OG "tracker", and probably used the same layout, but I'm not sure. https://www.exotica.org.uk/wiki/Soundtracker_History
But if FL Studio (formerly FruityLoops) and Renoise use the same layout, as others have said, then those are probably going to resonate with a wider modern audience :D Or maybe just call it "FL Studio / Renoise / tracker layout"?
I don't do computer keyboard note entry any more, but I still have the muscle memory for that 4-row layout from hours spent with it in the late 90s :D And I'd totally use it in your game. (My MIDI keyboards are kinda too far away from the mouse and monitor.)
FL Studio (fka Fruity Loops) uses this layout, or something very close to it.
renoise use that convention https://files.renoise.com/manual/Renoise%20User%20Manual.pdf (page 38). I used psycle modular music in 1999 and I know that it was not the first tracker-like software to use that convention but it's as far as my memory goes.
Also a possibility: An on-screen keyboard. I'd happily click the keys. Or even the lines on the staff for that matter.
Clean project, well done.
As a classically trained pianist, I'll say the following commentary regarding this thread: there are many ways to learn to "play the piano" and no one is going to agree on "the right way" because there's no true way.
This project is a good way to practice basic sheet music reading as well as to aurally recognize notes and phrases; teaching would require some cultivation of understanding the context and nomenclature. Thanks for sharing!
Thanks! I definitely agree. Additionally, I always recommend (depending on location, cost, etc) that it’s worth hiring a proper piano teacher, especially at the beginning.
There’s just no substitute for having someone there in person watching your hands, correcting small ergonomic issues, fingering, and so on. Build those fundamentals now so you don’t have to unlearn bad habits later!
I like the game up until 7 or 8 notes, but it keeps adding note.
I couldn't find a setting to freeze the difficulty where it's comfortable and where the melody can still be construed to make sense.
When adding more notes, it breaks the flow and turn a training for pitch practicing into a memory game for rain man, even more so when we make a mistake and must redo the melody partially.
Hmm - I was hoping that the Practice Mode would cover this, but I think there's probably some room to add an option where you can freeze the difficulty level - I'll see if I can add this later in the evening.
The "construed melody" is a harder problem. I've been playing around with the idea of using a markov model or even borrowing what CPU Bach did to try to create more coherent melodies over time.
Thanks for the feedback!
Transformers are nice. You can train a very minimal network that can output reasonable sequences very easily. They won't be high quality, or too pretty, but they will "make sense" way more than randomness and (usually) change keys in a coherent way.
Hey viraptor! I haven't even thought about using transformers but that sounds like a great idea. The current generator is just a standard random walk across the major/minor intervals and could definitely use some TLC!
I took several years of Suzuki piano method when I was a kid. Suzuki focuses initially on developing the ear.
During lessons, we did this kind of stuff all the time. I would close my eyes and my instructor would play a series of notes and I would need to play them back by ear.
I would also listen to whatever song I was learning before I went to be bed and again when I woke up in the morning, visualizing every note.
Give me a guitar today and I can work out pretty much any song I hear on the radio in under a minute just by listening.
EDIT: To be clear, I also played a LOT of guitar and piano. Ear training was in addition to the hard work of becoming a player.
It's really a great way to train your ear, and fun, too. I can play ukulele, but mostly just to strum and play songs to, but a few years ago I just started picking notes to try to recreate melodies of songs I knew or heard recently. At first it was slow-going with lots of searching on the fret for the right note, but over time I worked up the skill to mostly get the melody on the first few tries. It was the most amazing feeling to realize I could listen to a song and then reproduce it by ear.
I found that it's also an excellent way to "feel" the structure of a melody as well since you're essentially building it up again. Of course you could read music to see the actual melody, but working it out this way feels a bit more intimate.
My disconnect is I can't read sheet music. So I can hear it, then memorize where it is on the piano/keyboard... but that just teaches you play piano by ear. It doesn't teach you how to play music in the traditional sense.
I guess this showing you the sheet music as you find the notes can help with that, but as others noted - I'd like a "mess around" mode, before a "test" mode.
I think it depends on your end goal.
I have a great ear and am terrible at reading sheet music. Fine if you aspire to be a rock guitarist. Not so fine if you aspire to be a classical pianist.
Funny, but I'm final tired of my poor sight reading and have set a goal for 2025 to average one hour of piano playing from sheet music per day.
And I agree...a "mess around" mode on the app would be great. Feels almost punitive when I make a mistake.
Hey RyanOD,
If you're looking to improve your sight-reading and don’t mind playing church music, I highly recommend picking up a second-hand copy of an old Episcopal Church hymnal (I like the 1940 edition). All the pieces are four-voice and the rhythms are relatively simple, so you can concentrate on sight reading. Good luck!
https://hymnary.org/hymnal/HPEC1940
Sounds like a good idea. Right now, I'm splitting my time between drill based content (Bartok, Gurlitt, Kunz, etc), beginner classical pieces, and the occasional blues.
Funny, but in church, I spend more time than maybe I should sight reading hymns during the sermon. :)
Great technical demo, but the usability feels unpolished. So here's a little bit of feedback of trying this out on a piano: Just because my piano has 88 keys doesn't mean they are all useful for ear training. The very low and very high notes shouldn't be used, at least not by default. Also they don't even show up properly in the sheet.
As the melodies get longer and longer with each win, this devolves quickly into a memory game. I'd like to keep playing ear training, but I struggle with remembering what sequence of notes came at steps 8+.
This is somewhat aggravated by completely resetting the current level and replaying the whole melody after a single mistake. If I keep making a mistake in note 10, I get all the notes over and over again, which is a bit maddening.
Good point - it's a bit of a hack and I didn't point it out but technically you could play the lowest/highest notes when you configure your midi device that you would like to practice with.
I'll need to put in some proper limitations or possibly add 8va type symbols to more properly limit to a grand staff.
Funny, I posted my (less cool) version of this exact idea last week: https://keybykey.app
Hey I like yours as well! They're both different though. Your app is more focused on the ability to reproduce specific pieces.
Mine's based on the old electronic toy Simon - infinite and progressively more difficult.
https://en.wikipedia.org/wiki/Simon_(game)
You should definitely add midi controller support though - WebMidiJS makes it pretty simple.
https://webmidijs.org
> come back tomorrow!
I hate that I can't do a second one after finishing the first task... I know this is supposed to be this magic user engagement trick where people come back day after day because there's no other way to use it, but it's not for me if I can't choose when to play a game or practice a skill
Yeah fair enough, it does have a practice mode after you complete the daily challenge so you can keep playing around with it. There aren’t many tunes added at the moment though.
This is great, and fun, and rewarding, thanks!
Interesting, but it shows the first note, and after you play it, it shows the next note, so I have to not to look at the notes when trying to guess them.
Also, too complicated for a beginner, I would start with things like "guess which note is higher" or "how many notes are played simultaneously".
Oh, you can adjust that in the Settings - there's actually three different ways in Practice Mode:
- Show All Notes - all notes in the sequence are displayed in the staff (which pages to next groups of notes as you play)
- Show Next Note - only the next note to play is shown
- Show Last Note - this only shows the previous note that you got correct forcing you to rely entirely on ear training
Beginner modes like "higher/lower" are an interesting idea. Thanks for the feedback!
As a beginner I can say that I cannot hear notes and intervals, but I can hear if they go up or down, and I usually pick the notes by playing different notes and comparing them. But your app makes me start from the beginning for every mistake, so it becomes a little difficult.
Just bought a digital piano as New Year present to myself. So far I am doing single-note-a-time melodies from my child's practice book and so far enjoying my slow progress, but I am really struggling. Spent 3 evenings on a single simplest song and still can't play it end to end reliably.
I have to sign every note with a letter in a music book because only other way to "read" music sheet for me is count lines for each note, which is unbearably slow.
I wonder if there is any modern (AI, bluetooth midi app, etc) way to get over initial hurdles easier?
That's good question. While I think my app might help with your ability to pick out notes - it's not going to assist with stuff like proper pianistic ergonomics, fingering, etc.
I’ve heard some people say that the Piano Adventures Player app is a nice little tool because it serves as a supplement to the books themselves.
https://pianoadventures.com/resources/piano-adventures-playe...
Good luck on your journey!
Funnily, I felt the opposite when I learnt to read music a few years back - that even though I was extremely slow, I could now (theoretically) read and learn to play any music, just slowly! You'll get faster and better with practice, as with everything. I'm still slow. Just not as slow. But crucially I'm fast enough that it's not the bottleneck anymore, getting the notes under my fingers is.
Keep at it!
Former band kid who also just got a digital keyboard. Ime learning to read the staff just came from putting in the time on the instrument, but I’m also looking for ways to speed that up. I had the idea of making flashcards and even putting it into an SRS like Anki to see if I can make the process of (re-)learning the staff faster and make it stick. If you come across anything that would help I’m interested too!
I've found that a colorful note guide (such as: https://www.amazon.com/dp/B0BC8NVW4Q) to be very helpful. Without it, I felt completely lost when looking at sheet music.
Keep at it! It takes a few years, but so long as you practice new things consistently and every day you'll keep getting better and better.
I mean it took me like eight years as a kid to get good at this. It's just a slog. All learning is exponential.
This is great! Please consider even easier settings for kids. Maybe 2 notes (not 4) as the min starting point and slower ramp up as you succeed.
Also, I think the missed the first note UI could feel a little nicer. Something about the popup/hiding the music takes you out of the flow. Possibly just a subtitle would be enough with an encouraging message. There is a big difference between failing to do the whole pattern and failing the first note so definitely worth refining the feedback here.
This is good feedback - I'll add it in the next version! I actually wrote this for my younger sister but she already has some musical training so it isn't as geared towards beginners.
As a non-musical person, I went looking for how to set it to 1 note!
I keep hitting the start button -- which switches to a different melody -- when I want to hit the listen button -- which re-plays the current melody.
I feel like "listen" should be the first, more prominent button and "start" should be moved to the end and renamed to something more meaningful like "ahh shit, give me a different one"
other than that, cool.
Just a quick compatibility issue: for some reason, my midi board triggers a key input both when I press it down, and when I let it go. I'm assuming that it might just be something wrong with my board, but I did want to let you know in case there might be some nuance you haven't considered with respect to the midi commands. I know my first crack at it didn't distinguish between note-on and note-off commands, for instance.
I can add a bit of information to what might be behind this bug.
In MIDI, there are NOTE_ON and NOTE_OFF events, for when you press and release each key. The NOTE_ON has pitch and velocity parameters. The NOTE_OFF just has pitch parameter (maybe it has velocity as well I can't quite remember, it's off the point). So if you push middle C, it might look like this:
NOTE_ON 60 (middle C) 98 (velocity), NOTE_OFF 60
Some keyboards never send NOTE_OFF events, instead they send NOTE_ON with velocity 0. On these keyboards, pressing middle C looks like this:
NOTE_ON 60 98, NOTE_ON 60 0
Both are valid MIDI streams, and all stream processors should react appropriately to both. This app likely does not correctly map zero velocity NOTE_ON events to NOTE_OFF with the same pitch.
Hey catapart,
Thanks for the feedback. Oof that's weird. Maybe I'm triggering some kind of odd aftertouch?
EDIT: Just saw ta2112's note. That's super helpful I'm definitely only responding to standard MIDI NOTE_ON and NOTE_OFF messages.
I'll try to get this fixed this evening.
Sweet! Thanks for the follow up. I hope it's a straightforward fix!
Aside from that, nice work on the app! Looking forward to giving it another try.
ETA: a shameless plug, but since you may have an interest in this kind of thing - I built and published a free, online midi piano (and drum kit) available for anyone to use. It's pretty bare-bones and doesn't really explain itself, but in case you ever want to use it, check out https://midi-speaker.com/
works with midi input as well as keyboard and touch/mouse input. it only has the two sampled instruments, but it's great for a groove in a pinch!
Okay I think it's fixed - I'm testing for NOTE_ON with velocity of 0. Let me now if that solves it for you. I simulated a test of it because my midi controller just sends the regular NOTE_ON/NOTE_OFF messages!
Tried out your site - super clean interface. I noticed you are using the Salamander Grand Piano samples. For some weird reason I thought that those samples were pretty huge (50+ MB) but it loaded up pretty quick so great job!
Absolutely awesome. Move the help button off the keyboard. Let the user select whether or not the replay should always play after a mistake. Many issues with learning the longer sequences in practice mode can be difficult if the replay freezes the keyboard every time you hit a wrong key.
I actually spent an hour with it without pause, so in terms of comparing this to highly successful cutting edge AI announcements with playgrounds, I'm digging THIS a lot more today.
Also the sound is very high quality. Having built various A440 piano synths from scratch, the fidelity of the sound is superb. One thing I noticed was that the sound buffer has a memory issue at some point (after about 40 minutes of continuous practice) that causes the sound to start crackling. Maybe something to do with memory storage or something isn't getting flushed when the channel goes idle (no sound playing). Will fiddle. Nice work!
Oh bizarre - thanks for letting me know about this! I'm using a pretty old soundfont player that is sadly no longer maintained so I wonder if that's causing issues.
A cool feature would be a piano key color fading transition when you hit the key, which will adapt someone's memory more quickly to being able to complete the sequence with multiple retries.
Should be as simple as adjusting the color interpolation in an animation on a piano key to its gain (not sure how low the sound API is for this, but you should be able to track the key's moving average on amplitude over 10 frames and bound it to get a fade effect that takes the key press strength into consideration).
Perhaps you can even use a Simon Says color theme suited to the app's theme to work in a nice easter egg. Lots of cool things with this!
Okay, I kinda really dig this idea - "pianistic echoes" like ripples in a pond.
Will do! With regard to the icon, it's my fault for doing most of my play testing with an actual midi keyboard.
This is really cool! As someone who has basically no piano training, this is fun! Perhaps there could be some super-easy mode where you actually highlight the keys while you're playing the sounds (in simon mode) to help the super noobs train their ears.
Thanks! That's not a bad idea. So in Simon Mode, as you depress a key we let you see what note you pressed (A3, C4, etc)?
Thanks for the feedback - that should be pretty easy to add as an option in the Settings. I'll see about getting it added this evening!
This is great - bookmarked! I've connected my casio midi keyboard to it, hope it will help me with getting the right key of a song (I can work out a tune already, but sometimes in the wrong key)
Glad you liked it! Good luck with your practice!
Love this!!
One improvement that would help me a lot is to control the playback speed. My brain needs to start a bit slower as some of the sequences are fairly fast for my brain right now.
Thank you
Derp - I didn't even think about adding a control for min/max tempo ranges.
The defaults are currently
- Simon is set to 100-120 BPM
- Practice mode is set to 90-160 BPM
I'll add it to the Settings later this evening. Thanks for the feedback!
Great, thank you!
Nice! Would love to use it.
I don't have a midi piano. Wondering if it is easy for you to support my inputs using microphone. I think there will be several noobs like me with the same problem.
Thanks! It's definitely on my TODO list. Ideally I'd like to add support for pitch recognition for acoustic pianos and guitars.
https://imitone.com/ is what I use.
I'd like more tries to pick out the notes when pecking at the on-screen keyboard. I don't need to hear the pattern again, I need to learn where the note pitches are on the keyboard.
Thanks for the feedback! I'll have to give this some thought. You mean something like a, "X Tries To Get the Next Note?". I could add it as an option.
I think this suggestion you took in an earlier subthread solves GP's problem as well: https://news.ycombinator.com/item?id=46558500
Is that teaching a bad habit though? Is it one of those things where's importantly to be confidently wrong or right?
One of the important keys in learning is engagement. If you frustrate the student preventing them from progressing at their own rhythm they will disengage, losing interest in what you are teaching.
Both things can be true though, right?
Maybe it just needs to reset faster or maybe start more gradually so you can build up muscle memory of intervals.
I really like this idea. Simple interface, a single goal, it and it doesn't claim to be a full piano course. However, the user experience is incredibly frustrating for amateur players like myself. For some reason i have to hold down each previous note or else it fails? And often when I do play the right note I get no feedack to say so. Another thing is the annoying wait between listening to the piece and playing every time. It would be nice if user input immediately cut out the example piece
Wait, you have to hold down each previous note? So at the end of a four-note sequence you are physically depressing four keys? Hmmm... that sounds like a bug to me.
I'll look into it!
Hah, very cool! I have a variation on that in an experimental version of some software I wrote and found it to be really interesting to compare experienced pianists' performance on it versus newbies. And that is the main reason why it is still unreleased, it is very hard to design a good educational tool so kudos on shipping!
Thanks jacquesm! I’ve met such a wide variety of pianists (jazz, pure extemporaneous players, hobbyists, strict Suzuki, etc.) that it would be very cool to see that kind of breakdown.
It is a fascinating domain, if I can give you any tips it would be to research early language acquisition, there is a lot of gold in those studies that I think will transfer fairly well to music learning.
Very cool! Love the simplicity of this. Built a similar mode in Midiano (also a midi webapp, but focused on playing MIDI files). But this is much cleaner for a quick exercise. Mine never really got past the prototype stage though. Safe to say, I'll be coming back to this thread for ideas when I do get around working on it again :)
Thanks Bewelge! I took a look at Midiano - it's very polished! Were you inspired by Synthesia? I know it has a combination of falling note + sheet notation as well~
https://synthesiagame.com
Definitely inspired by it - I had been using Synthesia myself to play piano. But it started more as a "Oh you can use MIDI on the web?"-realisation and grew from there
I love it. Just bought piano to my apartment in SF and always wished simple tool like this existed. thank you!
Great idea! Small nitpick, on my phone the last played key remains highlighted after the "Wrong" message. That got me quite confused in the beginning.
Hey c7b - thanks for the feedback I'll address that. I'm glad the audio is at least working on your phone though~
As someone who practices music 2 to 3 hours a day. I love this. I think people are coming at it as if it were a video game or designed to be a "portfolio project" but as a musician, I think you really created something awesome and lets me practice on what I'm most insecure about....my ear.
Hey polarbearballs (I feel a bit funny writing this name),
Thanks for the feedback - I'm glad you found it useful! I literally made it because I was thinking about the old Simon toy which plays a set of consonant notes (G, C, E, G) and thought it would be a fun way to practice playing by ear!
https://en.wikipedia.org/wiki/Simon_(game)
This looks great. Just started learning piano and ear training has been on my list and this Simon-style approach seems way more engaging than traditional exercises.
The MIDI support is a nice touch. Haven't connected my keyboard yet though. Gonna try this out.
I feel like Bugs Bunny trying to play "Those Endearing Charms". (Mind I can't play, well, anything. I play the radio off key.)
Just waiting for Yosemite Sam to run in and blow himself up.
Fun app! One of the things I wish it had if it can record the ambient notes and match it (like one of those guitar tuner apps). Playing by ear is something I've done all my life and any user can have any instrument matching the notes
Thanks! Honestly I'd love to implement a proper pitch detection so you could play the game with an acoustic guitar.
For sure! keep up the good work
I read that line by Mark Antony from Julia Caesar to my 3yo yesterday morning. He usually shushes me by putting his hand over my mouth while I am speaking, but this time he did not. It felt good.
Nice project! I'm not very strong at note recognition, so I see the “Wrong note” message quite often (which is totally fine), but the frequent blinking feels a bit distracting. You might consider making the feedback a little less visually intense.
Thanks! I see what you're saying - the "Blurred overlay" which says "Sorry Wrote Note!". I could see how that'd be physically jarring after a while.
So you're saying I should add a klaxon? :)
Seriously though - I'll look into a redesign!
There's a question mark button right on top of the high C key. Otherwise, love it.
Derp - that's what I get for testing mostly with my midi controller and not the on-screen piano. I'll update to fix this!
For those starting out, I recommend going into settings and only choosing the key of C major, which is all the white keys. Then advance onto more keys after that.
I have a really niche use case that this fulfills. I have perfect pitch, but terrible working memory (can't remember more than 4 notes at time). This is a nice way to try to improve it.
Very nice! One of my friends is the exact opposite: they have a pretty poor sense of pitch but a prodigious working memory. They can take a brief glance at a couple of pages of sheet music and instantly reproduce it.
Hope this helps you on your musical journey~
This is absolutely amazing! What a fantastic way to engage kids in particular. Big fan and will be telling anyone I can about it.
This is as much a sight singing app as it is piano by ear. I did a lot of these kinds of drills studying for the Music Theory AP exam in high school. Very useful
This is excellent training mode! Thanks for sharing
I suppose the thing you're learning with musical instruments is hand-ear coordination. The eyes are optional.
Bug? It shows me the note and I just have to mash it and then it shows me the next note.
This game is amazing
The help question mark over part of the keyboard isn't great.
Maybe add microphone support and listen to what people play on keyboard piano ?
Sounds like a category 2 situation https://xkcd.com/1425/
Okay, okay, not quite (FFT libraries are a thing), but pressing buttons on a keyboard is leagues easier than reliably detecting (and filtering noise from) tones coming through a microphone! Not a bad suggestion though
Make it repeat the same exercise when I fail.
Hey souenzzo - it should repeat the same exercise when you fail in Practice Model. If you want it to mimic Simon, just set "Show Last Note" in the Settings.
On iPhone, no sound.
I'll look into this, is it possible that you have Silent Mode enabled? I tested the app on an old iPad and it worked okay but unfortunately I don't have any other iOS devices.
iPhone 14 in Firefox (still Safari under the hood of course) - no silent mode, no sleep/DND/etc., volume turned up (confirmed via other browser tab playing YT) - and still no sound from the app.
I’m guessing you may be using a JavaScript API which possibly doesn’t exist in whatever version of Safari (fuck Safari…fuck Apple’s control of browsers…etc).
My advice: Use the free tier of BrowserStack to test basic functionality on a wide range of devices (assuming they still have a free offering…). Also check “caniuse” to see if all the JS APIs you’re using are available on a wide range of devices.
Hey EdNutting - that's a good idea about Browserstack! Yeah my circle of friends only have android phones and/or iPads and we haven't encountered this issue yet.
If you get a chance, could you see if the Metronome works? It'll only play if you're in the middle of a game but it doesn't use the old soundfont-player, just direct web audio.
The starting difficulty is too high for your average beginner. Start with just one interval, then increase. Also, you should let people try a few times rather than just allowing one attempt.
Thanks for the feedback. I've adjusted the Practice Mode so you can turn the starting sequence down to a single note. The "grace note" allowance (see what I did there) for allowing a player to sort of find the right note has been asked for a few times - I'll try to get that implemented later this weekend!
Don’t seem to get any sound on iPhone 16 even after clicking :(
I had to turn off silent mode. I always forget that physical switch for games.
Huh thanks that works but that’s not how silent mode is supposed to function. Still a bug imo.
Disable silent mode.
If you could see analytics you would see I am the worst player at this game. But it is cool - can you actually plug in a keyboard to your laptop and use it? If so, what would HN recommend I get? As mentioned I suck at musical instruments but it could be a cool hobby to see if I can learn anything.
Hey gardenhedge,
Haha - I don't collect any telemetry so your secret is safe. Yeah - if you've got a USB midi keyboard plugged in - the game should autodetect it and just work.
If you're looking for something portable that just works (and don't need a weighted action) - IK Multimedia makes a 37-key controller that is cheap and decent. It's frequently on sale for about $80-120 and probably could be had for cheaper secondhand.
https://www.ikmultimedia.com/products/irigkeys2
Awesome! Now make one for guitar!
Thanks! It's on my TODO list! I've got several guitars (acoustic, electric, and nylon) so I want to make sure I can get a good level of pitch detection accuracy before I add a mic feature to it~
Great work!
My problem isn't memory. It's my ear. It's tin.
Luckily that's a trainable skill. If you care to.
I’ve tried quite a few of these apps/sites, and I like the simplicity of this one.
Nice! I was wondering to make something similiar for guitar. It is little weird that this is not widely used technique. Just blindly repeat the tone you hear, then move to tone sequences. Nice job!
Thanks for the feedback! I'd love to adapt this to support universal pitch detection - with the number of guitar tuner apps out there it's not like it should be TREMENDOUSLY difficult (famous last words).
[flagged]
Please don't cross into personal attack on HN generally, and especially please not in Show HN threads. It's not what this site is for, and destroys what it is for.
https://news.ycombinator.com/newsguidelines.html
https://news.ycombinator.com/showhn.html
[flagged]
> With all due respect, I'll stack up anything I've ever created against anything of yours at any time
I realize the GP comment was a provocation, but please don't respond to a bad comment by breaking the site guidelines yourself. That only makes things worse.
https://news.ycombinator.com/newsguidelines.html
> With all due respect, I'll stack up anything I've ever created against anything of yours at any time.
I love this response. for what its worth there is some thought here on this app.
Hacker News has become weirdly anti-hacker in the last 5 or so years, so please keep building stuff and keep posting it. This is literally what HN is supposed to be. The "AI slop" tirade is just bottom of the barrel bandwaggoning for upvotes because it's popular to hate AI today
Thanks for the support. Honestly, I probably shouldn’t get so defensive either, it’s a bad habit and a pretty poor "evolutionary holdover" in the internet age of anonymity and social media.
I thought one way to help mitigate my emotional responses was to desensitize myself, but who really wants to expose themselves to the requisite sufficient threshold of personal attacks? That’s not exactly a fun callus to develop.
One of the counterintuitive aspects of the LLM boom is that agentic coding allows for more weird/unique projects that spark joy with less risk due to the increased efficiency. Nowadays, anything that's weird is considered AI slop and that's not even limited to software development.
No, "LLMs can only output what's in their training data" hasn't been true for awhile.
Pay me no heed, I'm sure you'd find many of the things I've made insubstantive.
I'm normally in the camp of "why flood HN with AI crap" and if you are not a musician then I can see why this seems unnecessary. But as a musician, this is a great learning tool. Every musician should be able to play by ear (and I had to ramp up the difficulty substantially to get a bit of a challenge). AI generated or not, this is useful.
Yeah I've been playing 40 years and did a stint in music school. Other than fat-fingered note entry errors my ear nailed all the ones I did. IMO this seems to start from a pretty advanced level off the bat.
I've been playing piano for 40 years, tend to hate anything with AI-buzzwords anywhere adjacent to it. But I generally think this particularly one is a good thing.
Curious what you mean by no attempt to teach. We learn multiplication tables by rote. Are flash cards a genuine instrument of learning? The only way to learn intervals is to practice identifying them. This is how you do it. You can read about music theory (and should) but the only way to build your listening skills is to practice it starting with basic stuff.
This teaches intervals like Duolingo teaches language rules. You sort of pick them up because you need them to figure out the small melody it plays. But you don't get the concept of a 'fourth' or a 'fifth' and there's never a moment where the actual rules are explained.
That said, I think it's very useful for what it is and highlights that whatever your view on AI, there is a niche here that AI can fill that people otherwise would just not build either because they don't think it is interesting, or because no one would pay enough for it.
I addressed that. You should read a book to learn the definition of intervals. But in addition, there's no substitute for ear training. Grinding on interval identification is just as valid as this. Once you get to a level where you can identify intervals on the keyboard, the skills are pretty transferable. But there's just no way to learn what a fifth sounds like by reading a book. You need something like this. There is probably room to add a mode that says "this is a fifth" after you identify a fifth. Or to choose a named interval or chord quality based on hearing it. But I don't think any of that diminishes the utility of what's here.
FWIW I think it's probably more useful to play what you hear than it is to be able to name it. Although they're both good.
Right, and I addressed all that as well. I doubt we are in serious disagreement here and calls for me to “read a book” are frankly rude. I think you need to be more generous in the interpretation of others words because I actually disagree with the original poster for the most part, but you obviously have a different definition of “teach” than he. Flash cards don’t teach. They assist memorization or practice. Memorizing times tables doesn’t teach multiplication except trivially for the numbers you’ve memorized. It does assist in learning multiplication. Likewise this ear training can trivialize learning and identifying intervals later but is not itself “teaching intervals”.
I'm not asking you to read a book. Sorry for being unclear. The reading a book stuff all started from this in my original comment:
> You can read about music theory (and should) but the only way to [...]
My point is just that "you" (an abstract you) can learn music abstractly and in practice. Some things require book reading. Some things require practice and listening. Nothing intended about the cgriswald "you".
I know how to do long-hand multiplication and have memorized the 12x12 multiplication table. I'm not sure which one is more valuable, but I think they complement each other.
I'm not sure if we actually disagree about anything, except maybe the relative value of knowing what an interval sounds like vs what it's called.
Ah, apologies for my misunderstanding. Maybe I should be more generous in interpreting others words. I don’t think we disagree about that either. To me it isn’t about “What it’s called” but about the concept itself. Intervals are “hidden” in this ear training. You get them for free but you don’t necessarily learn that the pattern is there at all. I can agree that the doing ability is more important than the concept but it’s not just about the name. That’s just what we have to use to talk about it.
It's ear training, not theory training, right?
Yes, which is why it doesn’t teach intervals, but is still useful.
The key thing is that you teach multiplication tables in a structured, incremental manner. Yes, it's just rote memorization, but the structure makes it way easier. You don't just dump all tables on the student at once and start quizzing them until they get it.
Imo not being able to select a subset of intervals to train heavily limits how useful this is.
There are plenty of musicians here saying this is useful for them or would be useful while learning.
As meta commentary, those not in a subgroup sometime fail to see utility of a thing built for that subgroup and it's easy to feel a sense of superiority "oh how dumb and trivial this thing is", but it may be better to first have curiosity and see how the intended audience responds. Often it's not dumb or trivial, you're missing context and experience to see the value.
I've played the piano for years. Your immediate conclusion that my dislike must stem from inexperience instead of a more nuanced place strikes me as the exact kind of thing you're lamenting in your comment.
As the other poster said, your comment didn't really leave any room for nuance, it was "ai bad". And it's also clear you're too egoistic/defensive to reflect on it.
Other commentary is you're not owed courtesy you yourself didn't give.
> a more nuanced place
Your original comment implies "it's GenAI so it must be bad."
It’s the typical “engineer thinking they’re smarter than everyone else” trope. From my experience, engineers fall squarely in the middle of the bell curve. The AI hate is just used as justification, so I don’t even take it that seriously. And fwiw, as someone that played piano when I was younger, this is 100% a useful tool. In fact, during quarantine I was learning to play guitar and used tools like this to learn which string is which by ear.
I think this is much better as a relative pitch training tool for people with a very basic background in piano and music in general. I would have loved something like this back in high school to use for practicing over and over.
I think "teach" is a high bar, but I do think it's a good practice tool.
My one and only complaint is that sometimes the melodies it generates are tough to play back because they don't really sound like a real melody and I have to fight my brain telling me to play back the one that would actually sound good. Sort of like having to memorize a random string of words vs memorizing a normal sentence.
As someone that like to play piano and guitar - I could see this immediately as something to improve my skills and playing by ear
For me I was thinking a thought I almost never think and is long forgotten "where is that old home button in my browser so I can set this as my homepage, or maybe I have to solve 2-3 of these before I can log in to my computer" xD
"insubstantive" is a nice word - software that is modifiable by the user at run time - I guess like scripting "it's just throw away" or emacs bit of elisp and keyboard macro and move on "insubstantive"
Embrace the insubstantive! Otherwise - enjoy when you have a "problem" sitting down and having to abstract more and find the general and solve for "N" because the time investment was high and the tools did not allow for this sort of sketching, insubstantive, throwaway type thing.
This doesn't really seem 'generic' at all to me?
Click the "?" on the game to see the AI slop popup dialogs blocking other popup dialogs.
The good news is that this means you can quickly make the same app yourself at home, and improve it to suit your needs.
When I go to their homepage, I get a Cloudflare SSL handshake failed error -- feels like a classical vibecode bug.
Very nice, always wanted something like this.
Liked: Sheet/No shit split
Would like:
- Ability to play with PC keyboard, other apps already have some type of interface to type with keyboard, of course it might change depending on keyboard layout, but it's pretty standard and it happens that the keys aren't usually alighned, so you can have one row be whites and the upper row being blacks.
- Maybe the waiting times between new notes in simon says can be faster? The "You Win" is a bit slow and it feels like forever, breaking the pace of the music.
- Difficulties can be increased as well, Simon Says currently seems like it only does very small intervals, (feels like sheet based is a bit different but maybe not). Maybe it can be configured to allow a wider range of intervals, making it more difficult.
The other similar product that I've seen is an app called Yousician that did this for guitar but it was microphone based. This is very neat.
I would also love a button to pause so I can poke around the keyboard to see what it sounds like.