Sequence 15 shares some interesting details about the system exclusive manufacturer IDs in the MIDI specification. It reminds me of the days when I wrote SimpleSysexxer (see the products section of this page), a tool that allows to backup and restore the memory contents of MIDI instruments.
A sysex message starts with a 0xF0 byte, followed by one byte defining the manufacturer. Any following bytes are treated as manufacturer specific data until the terminating 0xF7 byte is received.
As the high bit in the manufacturer ID byte always must be 0, this system only allows for 128 manufacturers. Far to less nowadays, so the range of manufacturer bytes has been expanded as follows: If the manufacturer bit equals 0x00, the next two bytes define the manufacturer.
Here are two examples, one for the »classical« numbering scheme (0x42 being Korg), one for the enhanced scheme (0x00 0x20 0x33 being Access):
0xF0 0x42 [arbitrary amount of data bytes] 0xF7
0xF0 0x00 0x20 0x33 [arbitrary amount of data bytes] 0xF7
Most manufacturers use one of the two bytes after the manufacturer ID for identifying the actual model of their product range, and the other one for addressing an individual device within a bunch of identical devices. The latter ID usually can be set within the device by the user, so if you own 128 Waldorf Microwaves, you can still send sysex data to one individual device using one and the same physical MIDI bus for all 128 devices.
