Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: I made a MIDI tool to teach me piano (github.com/zaneh)
94 points by FinalDestiny on July 9, 2022 | hide | past | favorite | 34 comments


Do note that you can’t detect bad technique over MIDI. Fingering, which finger goes over or under which other finger, posture, the angle you hold your hand, etc.

If you can afford it, take some lessons in-person!


Seconding this.

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.


The fingering question is being researched in ML. One such project is linked here: http://eita-nakamura.github.io/


WOW THANKS.

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)


Agree with both of y'all. It was a mistake to say I'm learning the piano with this tool!

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


Er..I should have also added something like:

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.


It's been pointed out here a few times that piano keyboards depicted in User interfaces are mostly wrong. The common mistake is not having the key widths at the top be the same width. Just check out a real keyboard.

see https://news.ycombinator.com/item?id=29941801#29943285


It's built using Tauri + React and uses midir to handle the MIDI so it's completely cross-platform. Hope y'all find it useful


Great project, I'm building something similar but for EWI, I'll probably use your approach to some aspects.

Question: wouldn't using the Web MIDI api work cross-platform as well?


https://caniuse.com/?search=midi

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


Indeed Web MIDI doesn't work on Firefox, for example. But I was under the impression that the webviews Tauri uses are all chromium based.

Regardless, it was just curiosity on my part - the approach you chose not only is cross-platform now, but also future proof.


Hopefully! I haven't done the tests but I think you're right. It would support WebMIDI out of the box and you could use webmidi or some other framework on top of it


I just got a new synthesizer and this will help practice on a small scale length, nice job!


Thank you! I make beats so I typically only use one or two octaves as well. Love the synths. Which kind?


I have a Tini midi controller. It’s only a couple octaves but has 8 finger drumming pads. I like those for my limited beat making ability. It’s an akai and it’s was pretty cheap and pretty fun. I use it more than my full size keyboard which doesn’t fit on my desk…

I often wondered how well those keyboard with light up keys work for learning…


Details on the new synth? Just curious...


Finally pulled the trigger on the op-1 and am loving it hence this is actually perfect for me


Nice.

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.


Congrats! I bought one on Amazon and returned it within 30 days. Had a blast


Neat, but you should really have helped a different project if possible https://github.com/pianobooster/PianoBooster attack least make.it's clear why two exists if they are different


You can't demand anything from a random person, can you?


No, but I can give advice... the open source world has a lot of half backed abandonware programs that almost do something useful. Improving one instead of starting from scratch isn't as sexy but will make the world better in the end.


Great! I think the good companion "GNU Solfege" should be mentioned, for those who do not know it.


I had built a notation and MIDI keyboard entire from scratch and hook up to MIDI keyboard. Until, I discovered Nobuyuki Tsujii’s talent.


Looks interesting! Might be nice to have some basic songs to learn.


Nice, played around the app it was super interesting and fun


Very neat! I love software like this.


Why not get a piano and practice scales?


It supports MIDI pianos if you've got one

And the program helps you memorize & practice scales, fifths and chords

I'm also using it as a reference sheet


Scales are useless. I’ve been playing 20+ years and just figured out the scales I needed for the parts they were required on when they came up.

You might as well practice implementing data structures as a beginner. You’ll burn out long before you’ve built anything interesting or useful.


The main benefit of scales is to learn common fingerings. Most music is made from scales, so practicing scales in isolation will bake in the correct fingerings for many common sequences of notes. It will also mean that you have exposure to "odd" keys, which makes you a more rounded player.

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.


Jazz pianist here, I also strongly disagree that scales are useless. I had 90 minute classical piano lessons once a week from 6 years old to 16, 30 minutes of that learning scales, which in later years includes contrary motion, arpeggios etc. I'm so grateful my teacher put in the time! I practised them every day until my 30s. There's nothing better for feeling where in your hand you're rusty, always trying to make them sound as musical and even as possible. Also when you do them regularly, you can feel when certain hand movements are more difficult or rougher than usual - they're the best way of knowing exactly where you're at physically.

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.


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

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.


nice, will give it a try!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: