Show HN: I made a MIDI tool to teach me piano
github.com
github.com
If you can afford it, take some lessons in-person!
I wrote a similar tool to help my friend practice piano (being a software person who dabbles in music, seemed like a reasonable idea).
To make sure I was "barking up the right tree" (metaphorically), I also shadowed her for a few piano lessons from a professional. Boy was I wrong!!
It's not that teaching/improving technique via app would be impossible, more that the things involved were completely not what I expected. Lots of stuff having to do with curling her fingers the right way, "don't use that finger, use this other one", "You'll have an easier time if you X instead of Y" &c &c &c.
I still want to someday make a tool to help self-train at piano, but now I realize it's gonna involve a lot of computer vision, rigid body dynamics, and a whole mess of stuff.
I typically use https://www.basicmusictheory.com/c-major-scale to look up scales when I forget. For me this is going to be a quicker & more fun reference manual
All that being said, don't sell your self short. You made a cool tool that makes your process easier and you deserve to be proud of that. :)
Just.. don't fall into the very common trap of thinking "I can build a machine that'll entirely replace $X!" ;-) We can build machines that make $X easier, and easier, and easier but eventually you want a human being there to direct things ;-)
This isn't a diss at ALL, and, full disclosure, I once instrumented a tennis racket ("What if there was a tennis racket that improved your tennis?") and recently started dabbling with the idea of using webcams to teach myself yoga. Note that I know nothing about either tennis or yoga. :)
Edit: Holy crap OP, you know how to SHIP! Impressive home page. I salute you.
Er, uh, I mean, thanks for that link! I have a DSP (audio and MIR specifically) background and... (huge paragraph removed)
I'll just say thanks again.
(and your GLASSTONE submission, 6 years ago, is also the sort of link I enjoy)
Question: wouldn't using the Web MIDI api work cross-platform as well?
It depends on the browser support I think. Luckily I bypassed all that with midir. The MIDI events are emitted to React from Rust: https://github.com/ZaneH/piano-trainer/blob/6cbc15df3f529d86...
Regardless, it was just curiosity on my part - the approach you chose not only is cross-platform now, but also future proof.
I often wondered how well those keyboard with light up keys work for learning…
op-1 is such a beautiful and excellent sounding machine. i'm sure it'll bring you decades of joy.
I could never bring myself to buy one, we(now defunct music tech startup) estimated the BOM cost between $40-140, and I couldn't get over the psychological hump to pay $849 for it. That was about a decade ago and of COURSE every time I see an op-1 on a friend or coworkers desk I have to play with it for an hour or so...
Nice.
And the program helps you memorize & practice scales, fifths and chords
I'm also using it as a reference sheet
You might as well practice implementing data structures as a beginner. You’ll burn out long before you’ve built anything interesting or useful.
Once you get to a certain level of proficiency, you can just "hear" scales and you don't need to practice them any more (aside from for warmups and physical training). However beginners don't have the advantage of this ability.
Not sure what you mean "you can just 'hear' scales". "You don't need to practice them any more"...except for the main reason you play them, for "warmups and physical training"? i.e. you do need to practice them. Or at least, they're the best thing to practise, I've found.
The first few years, they're so your fingers naturally play good fingerings on most things without having to think about it, and finger muscle training. After that, they're for, I guess, warming up and what I'd call more maintaining and recovering peak muscle condition than "training". 5 minutes of very fast, musical-as-possible scales and unless in peak form, your arms are falling off with muscle fatigue hehe.
Also I went through Liszt's book once and wrote down the exercises I found the most difficult, and practiced them for years. Also learnt Ravel's LH Concerto to strengthen my left hand.. But scales always.
Beginners will learn the "D major" scale or a "E harmonic minor" as separate units.
Whereas advanced players have the hand-ear coordination to think of "a major scale" as being a 'sound' (intervalic sequence) that can be transposed to any key. For me, it's much more important to be able to sing a particular scale pattern, once I can sing it then I can play it on any instrument that I have proficiency at.
For physicality/warmups, the kinds of scales that I like to practice are symmetric scales (e.g. chromatic, diminished, wholetone, etc). When practicing scales for physicality it's especially beneficial to use the metronome.