Remix.run Logo
ta2112 a day ago

I can add a bit of information to what might be behind this bug.

In MIDI, there are NOTE_ON and NOTE_OFF events, for when you press and release each key. The NOTE_ON has pitch and velocity parameters. The NOTE_OFF just has pitch parameter (maybe it has velocity as well I can't quite remember, it's off the point). So if you push middle C, it might look like this:

NOTE_ON 60 (middle C) 98 (velocity), NOTE_OFF 60

Some keyboards never send NOTE_OFF events, instead they send NOTE_ON with velocity 0. On these keyboards, pressing middle C looks like this:

NOTE_ON 60 98, NOTE_ON 60 0

Both are valid MIDI streams, and all stream processors should react appropriately to both. This app likely does not correctly map zero velocity NOTE_ON events to NOTE_OFF with the same pitch.