How MIDI Manufacturer ID Identifies Hardware in SysEx
System Exclusive (SysEx) messages allow MIDI hardware and software to transmit proprietary configuration and patch data, and the MIDI Manufacturer ID byte is the critical identifier that directs these messages to the correct brand. Positioned immediately after the initial SysEx start byte, this standardized identifier ensures that only the intended hardware parses the proprietary payload while all other connected gear safely ignores it. This article explains how the Manufacturer ID is structured, how the single-byte and three-byte allocation formats work, and how receiving devices process this byte to prevent cross-brand data corruption.
The Structure of a SysEx Message
Standard MIDI messages handle universal musical events such as note-on, note-off, pitch bend, and control changes. In contrast, System Exclusive messages handle vendor-specific parameters, such as firmware updates, custom patch dumps, and unique synthesizer architecture settings.
Every SysEx message follows a strict framing protocol:
- Start of SysEx (
0xF0): Informs all devices on the MIDI bus that an exclusive stream is beginning. - Manufacturer ID: One or three bytes that identify the target brand.
- Data Payload: Proprietary data (model ID, device ID, parameter address, parameter value).
- End of Exclusive (
0xF7): Signals the termination of the SysEx stream.
Because MIDI data bytes must keep their most significant bit (MSB)
set to 0, valid identification bytes can only range from
0x00 to 0x7F (0 to 127 in decimal).
Single-Byte vs. Extended Three-Byte IDs
When the MIDI 1.0 specification was released in 1983, the
Manufacturer ID was allocated as a single 7-bit byte directly following
the 0xF0 status byte.
- Single-Byte IDs (
0x01to0x7D): These IDs were assigned sequentially to early MIDI hardware manufacturers. For example, Roland was assigned0x41, Korg0x42, Yamaha0x43, and Moog0x04. Regional blocks were also utilized to group American, European, and Japanese brands. - The Extended ID Flag (
0x00): As the music technology industry expanded, the original 125 assignable slots were rapidly depleted. To resolve this limitation without breaking backwards compatibility, the value0x00was designated as an extension prefix. When a device reads0x00as the first byte after0xF0, it knows that the manufacturer code is expanded into a 3-byte format consisting of0x00followed by two additional bytes. For instance, a manufacturer might hold the three-byte ID0x00 01 72. This expansion opened tens of thousands of unique slots for newer hardware companies.
Reserved and Universal IDs
Certain ID values are permanently reserved and do not correspond to individual commercial brands:
0x7D(Educational/Developmental): Reserved for DIY builders, researchers, and non-commercial projects. Hardware utilizing0x7Dshould not be used in commercial products to avoid conflicts with experimental setups.0x7E(Universal Non-Real-Time): Designates messages that any compliant MIDI device should read, such as Sample Dump Standard (SDS) handshakes, file transfers, or general inquiry messages.0x7F(Universal Real-Time): Designates time-critical cross-brand commands, including MIDI Time Code (MTC) and MIDI Machine Control (MMC) transport commands.
Device-Level Filtering and Execution
The MIDI Association (formerly the MMA) and the Association of Musical Electronics Industry (AMEI) maintain and distribute the central registry of Manufacturer IDs.
When a MIDI device receives an 0xF0 status byte, its
micro-controller immediately examines the following byte:
- If the incoming byte matches the manufacturer's assigned one-byte ID
(or reads
0x00followed by its assigned two extended bytes), the device buffers the remainder of the payload and checks for its own Model ID and Device ID before executing the command. - If the incoming ID does not match, the device completely ignores the
remaining data stream, passively monitoring the incoming bytes without
committing them to active memory until it encounters the
0xF7End of Exclusive byte.
This simple byte-filtering mechanism guarantees that complex, manufacturer-specific data streams can share a single MIDI cable across multiple daisy-chained instruments without causing command errors, frozen firmware, or accidental parameter resets on neighboring hardware.