Electronic Music Wiki

(Often abbreviated "sysex") A part of the MIDI standard that allows synth manufacturers to define their own specific message formats. Unlike every other message format in the MIDI standard, sysex messages can be variable in length; they are marked by both a start byte (F0 hex) and an end byte (F7 hex). The byte after the start byte is required to be a number that identifies the manufacturer; the MIDI standard defines a specific number for each manufacturer that has applied for an ID from the MIDI Manufacturer's Association. (Because the number of manufacturers has long since exceeded what can be accommodated with a single seven-bit byte, an escape code which allows larger numbers has been defined.) A later revision of the standard added bytes after the manufacturer ID that specify a model code and a unit number for the target synth; some early MIDI-equipped synths do not support this since it was not in the standard when they were built. Sysex messages do not support MIDI channel numbers, so the model and unit number are necessary in order to target a specific synth in a MIDI chain that contains multiple synths from the same manufacturer. How model and unit numbers are allocated is at the discretion of each manufacturer.

Sysex messages have found a number of uses. Probably the most common today is patch dumping and loading, which allows patches to be transferred to a sequencer or a computer for storage and re-loading. Sysex patch dumps have largely replaced removable storage methods built into synths (e.g., floppy disks) for off-synth patch storage. In addition, the advent of patch librarian software has made it far more convenient to organize and categorize patches which are dumped to a computer via sysex. A second common use for sysex is real-time patch editing from an external control box or computer; although the non-registered parameter mechanism exists for this purpose, sysex is more able to handle synths with large numbers of parameters, or complex means of parameter storage. Sysex is also used for (depending on the synth) loading non-equal-tempered tuning tables, obtaining info about what capabilities a synth supports, transferring sample audio (a sample dump standard exists, but it takes a long time to transfer audio files over a MIDI cable), and loading new operating system software into a synth.

A sysex message with a manufacturer ID of hex 7F is referred to as a universal real-time message. This is basically a mechanism that has allowed several types of specialty messages, such as MIDI Machine Control to be added to the MIDI standard

Synths vary in the maximum size of a sysex message that they can accept, and the rate at which they can accept sysex messages. Not all synths can accept sysex at the full rate that the MIDI port is capable of transferring bytes. Because of this, many sequencers and patch librarians have an adjustable delay parameter which throttles the data rate when sysex transfers are being performed. Because sysex messages can be long, they can upset the timing of following notes and control messages. Sequencer users sometimes reserve the first bar of a song for transferring sysex messages (such as patch loads), actually starting the song at the beginning of the second bar.