About Virtuoso I have been studying to play piano for about 1 year. Sight-reading is the most difficult thing I have to master. The main my mistakes during the exercises are: confusing the octaves; confusing the notes from the treble and bass clefs; sharp and flat - related errors; looking for the notes to slowly - this breaks the rhythm. So, I've decided to write a small program to improve my skills. It generates a random (every time new!) task using the notes that a user selected (constraints) and checks the "answer" from user. The 2 input methods are available: midi keyboard and virtual piano keyboard (using the mouse). BTW, all the 4 sources of my mistakes were significantly eliminated after I started using my program at work during small breaks.