the midiKeyboardComponent is laggy because the update of the down notes relies on a simple bool+timer mechanism (search for
shouldCheckState) and the timer frequency is 20hz only.
As a result we can have up to 50ms between the moment the noteOn is received and the repaint call.
Could we have the frequency increased to 200hz? or perhaps you could make the Timer inheritance protected, so we could call startTimer() with a higher freq in our child classes.
shouldCheckState could be made atomic btw