MIDI is not a notation protocol. It's a stream of real time events (plus sysex metadata). Let's evaluate it that context.
MIDI is not a notation protocol. It's a stream of real time events (plus sysex metadata). Let's evaluate it that context.
Which is irrelevant as an observation.
The context here is not whether MIDI is a notation protocol or good for notating purposes, but about using MIDI to play the music in a notation app.
And the problem is that MIDI can't transmit and take advantage of the extra information a notation program has access to about the piece.
That's a problem with MIDI 1.0 EVEN outside a notation context. The limitations under notation program use of MIDI to play orchestral music, are also limitations of MIDI itself for things that would be very handy to have under many more contexts.
Standard MIDI sequencers for example, can't send messages about "playing mode" with semantic purpose, and resort to hacks (sending a simultaneous out-of-range MIDI note with your actual MIDI notes to signal a specific expression like pizzicato to a VST sample player), each done in its own ad-hoc ways (including CC, custom notes, abusing channels, and so on), and requiring ad-hoc mapping for every new VST, even for common shared attributes.