Hi, I just noticed the above on your MIDI Note on-off checker module page.You can also count Zero velocity Note On messages as either Note On or Note Off. e.g. I have seen many midi files that use Note On Velocity 0 to turn off notes, this is incorrect as it's relying on the device it's talking to honour velocity data (it may not be built to).
In fact all MIDI devices must respond to zero velocity Note On messages in exactly the same way as Note Off messages. In practice Note Off messages aren't used much because of a MIDI data compaction feature called "Running Status".
Running Status enables a single Note On status byte to be sent and then a long stream of just data bytes in note number/velocity pairs with zero velocity values causing notes to be turned off. This reduces the number of bytes required to transmit a string of note on/off messages by a third.