Midi messages begin with a Command which may be followed by a number of data bytes depending on the message type.
system real-time messages (for example timing clock message) are 1 byte messages and can be sent in the middle of other messages.
midi devices can use a technique called running status to make data transmission faster. Running status allows a device to send a stream of messages of the same kind without repeating the status byte for each message.
Because a note with a velocity of 0 has no volume, a pair of data bytes with 0 velocity can turn off a note without sending a note off message that would break up the steam of note on data.