TS-10 | TS-12 · MIDI SysEx Implementation Specification V.2.0
Introduction and packet format
1 Introduction and Overview
This section describes the MIDI System Exclusive (SysEx) communication protocol used when the TS is communicating with an external computer (EXT). The protocol is designed to aid the implementation of editing programs running on EXT. The commands described here allow editor/librarian programs to collect and alter information about presets, programs, and the tracks within the TS. The TS-12 is identical to the TS—10 with respect to the SysEx implementation except as noted.
1.1 Universal System Exclusive Device Inquiry Message
The TS supports the MIDI Device Inquiry message which allows instruments and computers to ascertain the identity of the unit(s) to which they are connected via MIDI. The TS responds to the following Identity Request message by sending an Identity Reply message. The TS will respond to the inquiry if the channel information in the message contains either the base MIDI channel of the TS or the all channel broadcast code ($7F) but not both.
11110000 | F0 | System Exclusive status byte |
01111110 | 7E | Non Real Time message code |
0000nnnn | Ox | Base MIDI channel number |
or
| 01111111 | 7F | All Channel Broadcast code |
| 00000110 | 06 | General Information message code |
| 00000001 | 01 | Identity Reply message code |
| 11110111 | F7 | End of System Exclusive |
1.2 System Exclusive Device Identity Reply Message
The following Identity Reply message contains information about the TS, and is transmitted in response to an Identity Request.
11110000 | F0 | FO System Exclusive status byte |
01111110 | 7E | Non Real Time message code |
0000nnnn | Ox | Base MIDI channel number |
00000110 | 06 | General Information message code |
00000010 | 02 | Identity Reply message code |
00001111 | 0F | ENSONIQ manufacturer's code |
00000101[/0111] | 07[05] | TS Product Family code - LSByte |
00000000 | 00 | TS Product Family code - MSByte |
00000000 | mm | TS Family Member (Model ID) code LSByte |
00000000 | 00 | TS Family Member (Model ID) code MSByte |
00000000 | 00 | Software revision information |
00000000 | 00 | (not used) |
0nnnnnnn | NN | Major Version Number (integer portion) |
0nnnnnnn | NN | Minor Version Number (decimal fraction portion) |
11110111 | F7 | End of System Exclusive |
2 MIDI System Exclusive Packet Pieces
A packet is a message in the form of a MIDI data stream. Each packet can be divided into three sections or pieces. The first and last packet pieces form the frame for a message. The message contains the commands described in section 3. Every message must be preceded with a SysEx head and followed with a SysEx tail. A complete packet looks like this:
SysEx Head. . . . . . Message . . . . . SysEx Tail
2.1 MIDI System Exclusive Packet Head
This is the common MIDI system exclusive header which must be used on all system exclusive messages to and from the TS. These six bytes are always sent preceding the message portion of the packet. The General TS Family Member Code in this header may be different from the TS Family Member code in the Device Identity Reply message in order to allow transfer of common messages between other TS Product Family members and the original TS—10. The SysEx Device ID number in the message must match the current system setting or the message will be ignored.
11110000 | F0 | FO System Exclusive status byte |
00001111 | 0F | ENSONIQ Code |
00000101[/0111] | 07[05] | TS Family ID Code |
00000000 | 00 | General TS Family Member (Model ID) Code |
0000nnnn | Ox | SysEx Device ID number (0.,.15) |
00000nnn | Ox | Message Type (see section 3) |
2.2 MIDI System Exclusive Packet Tail
For every head there is a tail. The tail follows the message portion, and is the last byte of every complete SysEx packet.
11110111 | F7 | End of System Exclusive |
2.3 Message Format
The TS message format within the packet frame allows 8 bit data bytes to be transmitted and received using the 7 bit data of MIDI. The MSB of the data bytes must always be a zero, so the bytes are converted to two 4 bit nybbles. These nybbles are converted to bytes whose upper four bits are all zero for transmission. Note that bytes whose value is zero must still be nybblized and sent as two bytes to preserve the expected MIDI byte counts. This is a description of the format of all data bytes within the packet frame as they are transmitted or received via MIDI. The details of each message are given in section 3.
0000HHHH | H = Hi 4 bits of data byte - transmitted first |
0000LLLL | L = Lo 4 bits of data byte |
This represents how the 8 bit byte HHHHLLLL would be transmitted.
2.4 Receiver Errors
If the message received by the TS is not understood, then an error message may be displayed and an error message will be sent as described in section 3.2. Errors typically occur when the MIDI cable is accidentally unplugged during a long dump message such as an All Programs Dump message. If EXT cannot handle the error message, then the displayed message will prompt the user to retransmit the original message after re-connecting the MIDI cable or otherwise correcting the cause of the error.