[LAU] MIDI NOTE ON/OFF Messages - reducing data

Clemens Ladisch cladisch at fastmail.net
Fri Dec 12 10:53:05 EST 2008


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



More information about the Linux-audio-user mailing list