Crypto wrote:
Defined in the MIDI specification is that for each
NOTE ON message there has
to be a NOTE OFF message (or a NOTE ON message with vol.=0).
BUT:
There are many instruments that in real life never need a manual action to
stop their sound, for example most if not all percussion instruments and
drums. [...] So: why do we have to send NOTE OFF messages for these kind of
instruments?
Because the specification says so. ;-)
Wouldn't it be sufficient to simply sent the NOTE
ON message for
that sound and omit the NOTE OFF message?
If the synth can decide by itself when the sound is finished, then it
doesn't need a note off.
This would save us up to three bytes which can make a
difference in delay.
If the note-off command isn't really necessary, then you can send it at
some later time when it doesn't take bandwith away from other commands.
I'm not sure either how to introduce such a
feature in the MIDI world,
however, I can see that it might be rather difficult. Both sender (MIDI
keyboard) and receiver (synth, expander, some software) need to agree that a
particular sound does not need NOTE OFF messages and therefore the devices
neither need to transmit nor wait to receive it.
Maybe it could be done by introducing a new controller that disables NOTE OFF
messages for a particular channel, so that all instruments that play on that
channel would never need any NOTE OFF messages.
If note-off messages aren't sent, there is no difference between a
channel that expects note-off message and one that doesn't: All sounds
will sound as long as they naturally sound.
The interesting case is when note-offs are sent: a synth might stop a
sound before it would naturally stop. Therefore, your setting would
effectively tell the synth to ignore any note-off messages.
As it happens, both the GS and XG standards have a SysEx for exactly
this, and it is enabled by default on the drum channel.
Best regards,
Clemens