synthesia has support for playing custom midi files, as well as linking with midi devices. synthesia will rate the player's performance afterwards, and give a score which can be submitted to an online scoreboard. synthesia also has a paid "learning pack" that allows users to view music in musical notation, as well as multiple practice features, such as "melody practice" which pauses the piece whenever the user misses a note, and only continues when the right note is played.