MIDI channel, 0–15
OptionalcontrollerController number (0–127) for control-change messages
OptionaldataRaw bytes, kept only for messages the parser does not model
Message kind
OptionalnoteNote number (0–127) for note and polyphonic-aftertouch messages
Milliseconds since the take started
OptionalvalueController value, program number, aftertouch pressure, or pitch bend (−8192…8191)
OptionalvelocityVelocity (0–127) for note messages
One MIDI message, timestamped on the take clock.
A note-on with velocity 0 is recorded as a
noteOff, so consumers never need to special-case it.