PlayPlay

That’s what I think I’m gonna call my new piano program. I have written it! A first version anyway. It’s enough to let me practice with it! Hooray!

A quick summary of its functionality: You hook up a MIDI keyboard to your computer. A lot of keyboards nowadays support USB MIDI connections, and for the ones that have only standard MIDI connections, you can buy a converter. If you’re using a laptop, you put it on or next to the keyboard, and if you’re using a desktop, you put the monitor (or a second monitor) on or next to the keyboard.

You feed it a MIDI file.* You tell it which measures you want to practice. You press a key to tell it to start playing, and after it counts off a bar with the metronome you either just listen or play along with it. If you’re playing along, it will tell you after it finishes the measures how well you did–how close you got to the notes in the MIDI file. Based on that score, it will automatically adjust the tempo of the playback so that you’ll settle in at about a score of 90%, which is usually where you’re comfortable, but not too comfortable, playing the music.

* It has to be made in a particular way to work well with the program–it needs to have its notes on the correct beats, and notes at the beginning of measures can’t be just a few ticks before the start of the measure. I’ll look into making it more tolerant of the latter in the future. Also, if you want to do hands separate practice you need to have each hand in a different track.

You can press other keys to adjust the measures you’re practicing, or to change which hand you’re practicing. You don’t have to interact with a keyboard or a mouse during your practice. I’m planning soon on adding some more neat features, too, which I’ll update you on when I implement them. It’s probably too unstable to release right now, and I’m not sure how I want to release this thing anyway—I need to think about licenses and obfuscation and such.

There’s something I want it to do, though, that I don’t know how to get it to do, because I don’t know enough statistics. I want it to adjust the tempo in a smarter way, so that, given your previous scores on the section, there’s a X% chance that you’ll get a score of N%, (where both of those are configurable,) when practicing at tempo T. Now the difficulty is in the fact that your other data points each have their own tempo, and that less recent data points are less relevant. I’m thinking that you’d assume that scores are normally distributed (or maybe a skewed distribution—I need to determine that) around a mean that rises over time, and that lowers as the tempo rises at a given point in time. So to solve this, you’d need to know approximately how the mean changes over time (but this can probably be fudged), and the exact relationship it has with the tempo. To be even more precise, you could even try to model and adjust for practice effects. But that might be going overboard.

So, are any of my readers interested in helping me with this little math problem?



Leave a Reply

To include an em dash, use three hypens with no surrounding spaces, or two with surrounding spaces.