Does anyone know if I’m right in saying that this should turn off all notes on ALL MIDI channels? Most of the docs I read seem to suggest this, but the message itself does contain 4 bits for a MIDI channel. Are these bits just ignored?
That’s a type of CC message, which means it affects only the specified channel.
A bit of information here.
Yes that’s what I thought to start with, but I’ve just been doing a bit more searching and it looks like CC 120-127 are reserved as special ‘channel mode messages’. This name slightly adds to the confusion, because I think it means that they affect all channels globally, rather than applying to a particular channel.
Channel mode messages are intended to control the overall function of ALL voice channels of an instrument
and here: http://en.wikiaudio.org/MIDI:Channel_messages_tutorial#Mode_messages
Mode messages are the only “channel messages” that affect the entire MIDI device and aren’t channel specific. They are control change messages 120-127.
… therefore I think I’m going to conclude that they are global, and that the channel bits should be ignored. I suppose I didn’t want to believe it because I’m surprised there isn’t a guaranteed way to kill or stop all notes on a particular channel without sending 128 note offs.
This is a well-known deficiency in the specification. As you say, the text leads you to believe that it will just switch all “oscillators” off in the whole machine, but then why would there be a channel number?
And if I recall correctly, some MIDI devices only turn that channel off when they see an “all notes off” for that channel, and others turn everything off.
This is why nearly all the “panic” buttons (that little button on your MIDI patcher or other device you press when there’s a stuck note) just send out 128 noteoffs on each of 16 channels, starting with channel 1.