BASS.NET API for the Un4seen BASS Audio Library

MIDIManufacturer Enumeration

BASS.NET API for the Un4seen BASS Audio Library
Defines constants representing the special Midi ManufacturerID within a system-exclusive message (see Manufacturer for details).

Namespace:  radio42.Multimedia.Midi
Assembly:  Bass.Net (in Bass.Net.dll) Version: 2.4.17.5
Syntax

public enum MIDIManufacturer
Members

  Member nameValueDescription
Extended0 To accomodate a greater range of manufacturer IDs, the MMA decided to reserve a manufacturer ID of 0 for a special purpose. When you see a manufacturer ID of 0, then there will be two more data bytes after this. These two data bytes combine to make the real manufacturer ID. So, some manufacturers have IDs that are 3 bytes, where the first byte is always 0. Using this "trick", the range of unique manufacturer IDs is extended to accomodate over 16,000 MIDI manufacturers.
Educational125 A manufacturer must get a registered ID from the MMA if he wants to define his own SysEx messages, or use this one.

This ID is for educational or development use only, and should never appear in a commercial design.

RealTime127 Universal SysEx messages: realtime messages (ie, ones that need to be responded to immediately).

After the ID byte is a SysEx Channel byte. This could be from 0 to 127 for a total of 128 SysEx channels. So, although "normal" SysEx messages have no MIDI channel like Voice Category messages do, a Universal SysEx message can be sent on one of 128 SysEx channels. This allows the musician to set various devices to ignore certain Universal SysEx messages (ie, if the device allows the musician to set its Base SysEx Channel. Most devices just set their Base SysEx channel to the same number as the Base Channel for Voice Category messages). On the other hand, a SysEx channel of 127 is actually meant to tell the device to "disregard the channel and pay attention to this message regardless".

After the SysEx channel, the next two bytes are Sub IDs which tell what the SysEx is for. There are several Sub IDs defined for particular messages. There is a Sub ID for a Universal SysEx message to set a device's master volume. (This is different than Volume controller which sets the volume for only one particular MIDI channel). There is a Sub ID for a Universal SysEx message to set a device's Pitch Wheel bend range. There are a couple of Sub IDs for some Universal SysEx messages to implement a waveform (sample) dump over MIDI etc.

NonRealTime126 Universal SysEx messages: non-realtime (ie, ones which can be processed when the device gets around to it).

After the ID byte is a SysEx Channel byte. This could be from 0 to 127 for a total of 128 SysEx channels. So, although "normal" SysEx messages have no MIDI channel like Voice Category messages do, a Universal SysEx message can be sent on one of 128 SysEx channels. This allows the musician to set various devices to ignore certain Universal SysEx messages (ie, if the device allows the musician to set its Base SysEx Channel. Most devices just set their Base SysEx channel to the same number as the Base Channel for Voice Category messages). On the other hand, a SysEx channel of 127 is actually meant to tell the device to "disregard the channel and pay attention to this message regardless".

After the SysEx channel, the next two bytes are Sub IDs which tell what the SysEx is for. There are several Sub IDs defined for particular messages. There is a Sub ID for a Universal SysEx message to set a device's master volume. (This is different than Volume controller which sets the volume for only one particular MIDI channel). There is a Sub ID for a Universal SysEx message to set a device's Pitch Wheel bend range. There are a couple of Sub IDs for some Universal SysEx messages to implement a waveform (sample) dump over MIDI etc.

Remarks

This list does NOT define the real manufacturer id's but only special purpose manufacturer IDs!
See Also

Reference