Someone developed a sight reading exercise via MIDI entirely in the browser

This is an interesting coincidence. I'm also working on a program like this. I decided to do it after trying the free trial of Piano Marvel, and liking the concept. Their software doesn't use random music, instead they have a large library of progressively harder music that you play and it grades you on each on a scale from 0-100. It's a full featured, polished program rather than an early version that this browser thing seems to be, so if you're interested in this sort of software you might want to give it a try.

The reason I decided to make my own is twofold; the first is that it doesn't work on my primary platform, I'm a linux user and their software is windows only. Having to reboot to use it got annoying. Ths second is that I had my own ideas of useful features that I thought should be included in a program for practicing piano using midi.

My program is going to consists of a series of mini games. First a series of "flash-card" style memorization exercises to train you to quickly be able to identify notes, intevals, chords, key signatures, etc. They'll be games in the sense that you'll get points for getting it right, and the goal will be to get as many points as you can in a limited time, to motivate you to learn to do identify them quickly. There'll both be exercises where you answer the name of what you're trying to identify on the computer, and where you hit the right keys on a midi device.

Then there'll be exercises like the one you just linked to for practicing sight reading, where you select a difficulty level, then a short piece of music is randomly generated and you play it, and it checks to see how you did. Altough not completely random, it'll follow a set of rules so that it at least sounds halfway musical and not just like random noises.

It'll also have "games"/exercises for practicing things like scales and arpeggios, altough I haven't quite figured out what approach to take with that yet.

And lastly you'll be able to load your own sheet music into it (in the ABC notation file format, a lot of music is available in this format online, and it's easy to convert sheet music you have on paper into this format using just a text editor if you can't find it), and then you'll play it and it'll grade you on various aspects of your playing. Obviously this will be somewhat limited compared to a human rating your playing, since there are a lot of aspects of playing that a computer program can't know, but as long as you keep this in mind it can still be a useful tool.

Well those are the ideas I've had so far, I'm sure I'll come up with more stuff I want to add in along the way. If you or anyone else who reads this has any other ideas for features to include I would like to hear them. It's still in the early stages of development. I've coded the basic structure of the program, the midi code, the user interface code, user input, loading the correct mini-game, etc. and implemented a couple of the simpler mini-games. Right now I'm working on the sheet music drawing code.

I'm mostly making it for myself to use, adding the features I personally want to have available while doing computer-aided piano practicing, altough once it's in a usable form I'll put it up online somewhere in case anyone else wants it. I'm still very much a beginner at the piano, so for now features will be oriented towards beginners. I'm learning a lot just from making the program, since I have to understand music theory in order to make a program that does things like draw sheet music and to design the exercises in the program, so that alone makes it worth it. I study computer science at university, and since the fall semester is just starting up the time I'll have to work on it will be a bit limited, but hopefully it'll be in a state where I can share it online within a couple of months.

/r/piano Thread Parent Link - philippotto.github.io