A very quick intro on how to use this program:

The idea here is that you have a midi file of a piece that you
would like to learn how to play. You push the midi file into
the repertoire store in the program and then you can keep
track of your progress and focus on parts where you are weak
using the tools provided. Over time more and more of this
should be automated but the basic set of tools is there and
I use it myself to good effect. Over time you should find that
your ability to sightread scores improves and that you end up
with a larger repertoire of pieces that you can play. 

- This program right now *only* works with the Chrome web browser.
  FireFox is my daily driver but it does not support Web Midi and
  so we are forced to use Chrome exclusively. Trying the software
  using any other browser will not give usable results.

- First hook up a midi keyboard to a USB port on your machine. If you
  reload the page of the software it should show up in the drop down
  menus. Choose your device both for input and output.

- Then you need a midi file to practice. To make this easier you
  can download one of the linked example files if you don't have
  anything handy. The file can then be sent to the program using
  the 'add new midi file' button. After uploading the file the
  contents of the score display should change to show you the
  midi file as a musical score. A useable midi file should: contain
  two tracks, one for the left hand, one for the right hand, direct
  all notes to *one* channel. Right now the program can not (yet)
  deal with key changes in the middle of a piece. 

- Now you can start practicing!

- If you want to listen to the piece change the practice type 
  to 'listen' at the top left. Change it back to 'play' to
  do a practice session. Auto mode walks you to the piece
  section by section with periodic playthroughs to find out
  which parts need attention and then to help focus on those.

- If the indicated tempo is too fast for you then you can 
  use the speed slider on the left hand side to slow it down,
  alternatively, if you want an extra hard practice you can 
  speed it up to go faster than the indicated tempo.

- Which hand you want to practice you can select via the
  drop down with 'left hand/right hand/both hands', the notes you
  will not be playing will be grayed out. During practice
  those notes will be played by the computer so you can
  fully concentrate on the part that you are practicing.

- The difficulty factor indicates how many notes you are
  comfortable playing at once, if you set this to '1' there
  are no chords or more than one note sounding at the same
  time. At '2' you will at most have to play two notes at
  the same time. '3' limits you to triads, and '4' will 
  give you everything from four notes and up. Use this if
  a piece requires you to play more notes than you are
  comfortable with. But do keep trying higher settings
  from time to time to practice to the point where you
  can play more complex combinations. 

- The 'keys' drop down allows you to limit the size of the
  range the computer expects you to play so the program
  won't sit there waiting for keys that are missing on 
  your keyboard. Up to 61 keys will give a useful 
  practice session, below that it gets harder to really
  learn how to play. If you have the room (and the $) I
  recommend a keyboard of 73 keys or more.

- The position slider will move the cursor through the piece 
  rapidly so you can move to another section.

- The range slider will limit the part that you are    
  practicing. This is useful for spending some time on
  a hard passage. In auto mode the range slider is automatically
  positioned and resized to focus on the spots that need it most.

- The |<< button will move you back to the beginning of
  the midi file to ready the program for another practice

- The >|| button changes to paused mode and back to 
  resume playback or practicing or to pause it

- The stats display shows you how well you are doing, dark
  green entries are good notes and on time, light green 
  are good notes but late, red notes are wrong notes. You
  can use this info to see which parts of the piece
  still need work. The display shows you the last 10 
  sessions. If you use the scroller to move back across the
  score after a practice you can see the score annotated
  with your performance.

- The practice log shows you a numerical comparison with
  previous, similar practice sessions. Whenever you complete
  a whole session without skipping parts or repeating parts
  it will get recorded here so you can see your progress. 

- Privacy statement: your privacy is 100% secured, this program
  does not send any information back to the server in its
  present day form. That may change at some point in the future
  if there is functionality that is hard to implement on the
  client side, but for now it all runs on *your* computer, not
  on mine and that is both a good way to keep things secure and
  to safeguard your privacy in the best possible way. All of the
  stats data about our practices also stays on your computer in 
  a local storage facility that you have control over. If this
  should ever change I will make sure to note it prominently.
  So, no cookies, no tracking, no uploads, no spyware, malware
  or any other trickery. 

Things the program is still weak on:

- we only support one browser right now (Chrome)
- timing is - and likely always will be - a very tricky thing to get perfect
- support for rests in the score is for now not yet present, this is harder than it
  seems because rests do not have a representation in the input file
- any kind of ornamentation, rolled chords, trills and so on that are clearly
  marked in the original score are present in the midi file as individual notes
  and displayed as such, it is a very hard problem to reliably reverse these back
  into their original annotation *and* to then allow the program to still accurately
  verify whether the student played the notes as intended. We are very much aware of
  this problem and are trying to find a good solution, ideas welcome.
- midi files can contain all kinds of errors and while we know how to recognize and
  fix quite a few of them already they are likely just the tip of the iceberg. If you
  have a problematic midi file then please send it to us with a description of what
  goes wrong and what the intended behavior should be. That way we can build up a 
  library of such files and fix the issues, then test against them to ensure we do 
  not accidentally re-introduce a problem already fixed. 
- midi files that have not been created directly as midi
  files but are the result of a recording or a conversion
  from some other format may have issues. You will need to
  edit these using a midi file editor to ensure that the
  bars, beats, chords and notes line up properly in the
  file otherwise there will be errors in the rendering 
  of the score which may lead to you learning to play 
  the piece incorrectly.

Enjoy!