General tempo errors
A part of the piece is played on a different tempo as the one expected. This feature should be chosen by user: the performer may want to train on a part while playing it slowly.
Duration errors
Played note duration is note the one expected: [100, 50, 100] instead of [100, 100, 100]. Error criterion is relative release time ([release time] - [start time]).
Start time errors
A note is played earlier or later than expected [0ms, 100ms, 200ms] instead of [0ms, 200ms, 400ms]. NOTE: we must not detect a start time error just after a duration error, since they are often related: this would lead us to detect 2 errors instead of only one.
Rest errors
A rest that should be made is missed, or an unexpected rest is added. Rest errors are linked to start time errors and duration errors. We can group them into 4 categories: note too long, note too short, added rest, skip rest.
Lack of regularity
Regular repeated notes are played with different times: [0, 50, 90, 150, 210, 250] instead of [0, 50, 100, 150, 200, 250]. Such errors are a kind of start time errors, but their musical signification is important enough to class them into a particular category.