Aviom A-16R MIDI SysEx Specification
MIDI System Exclusive Implementation - version 1.00
for: A-16R
1. Introduction and Overview
This document is designed to aid in the understanding of the A-16R’s MIDI System
Exclusive (SysEx) implementation. MIDI SysEx support for the A-16R product includes
messages that allow for uploading and downloading of all sixteen system presets or the
current active configuration also referred to in this document as the current preset.
Described in this document is the implementation of these features. In order to utilize
these features the A-16R may be interfaced to any MIDI management device such as a
personal computer with MIDI software or stand alone devices such as MIDI SysEx
recorders/sequencers.
1.1. Transmit Flow
Shown below is the basic transmit flow for the currently supported/implemented
MIDI system exclusive messages on the A-16R.
Figure 1 - MIDI Transmit Flow
1.2. Receive Flow
Shown below is the basic receive flow for the currently supported/implemented MIDI
system exclusive messages on the A-16R.
Figure 2 - MIDI Receive Flow
1157 Phoenixville Pike, Suite 201 | West Chester, PA 19380 USA
Phone +1 610.738.9005 Fax +1 610.738.9950 | www.Aviom.com
Page 1
Aviom A-16R MIDI SysEx Specification
2. MIDI System Exclusive Packet Pieces
A MIDI SysEx packet can be thought of as a group or collection of bytes that contain a
start indicator referred to as the “SysEx Head”, “Message Data” which may contain
control or status information and a “SysEx Tail” which terminates/ends the packet.
Described below is an overview of a generic MIDI SysEx packet structure.
SysEx Head Message Data SysEx Tail
Figure 3 - MIDI General Packet Structure
The specifics and mechanics of the various packet pieces are described in the subsequent
sections.
2.1. MIDI System Exclusive Packet Head
Several data bytes define the “SysEx Packet Head.” Among these are the standard
“Start of Exclusive” also known as SOX, a standard MIDI Manufacturer’s ID
assigned by the MIDI Manufacturers Association (MMA) and Aviom proprietary
product and message type identification. SysEx messages that contain incorrect or
unknown ID information or unsupported message types are ignored by the A-16R
without generating error indications. The MIDI SysEx packet head of an A-16R
SysEx packet is described below.
SOX
Manufacturer’s ID
Family ID
Product ID
Device ID
Msg. Type
Msg. Descriptor
1111 0000 (F0H)
0000 0000 (00H)
0000 0001 (01H)
0100 0101 (45H)
0000 0000 (00H)
0000 0000 (00H)
0000 0000 (00H)
0mmm mmmm 0000 0000 (00H)
0000 0000 (00H)
0000 0000 (00H)
0000 0000 (00H)
0000 0000 (00H)
0000 0000 (00H)
Start of Exclusive
Aviom Manufacturer’s ID Byte 1
Aviom Manufacturer’s ID Byte 2
Aviom Manufacturer’s ID Byte 3
(A-16 Family)
(A-16R Product)
(expansion)
See table 1 for valid message types
Message Descriptor Byte 1 (expansion)
Message Descriptor Byte 2 (expansion)
Message Descriptor Byte 3 (expansion)
Message Descriptor Byte 4 (expansion)
Message Descriptor Byte 5 (expansion)
Message Descriptor Byte 6 (expansion)
1157 Phoenixville Pike, Suite 201 | West Chester, PA 19380 USA
Phone +1 610.738.9005 Fax +1 610.738.9950 | www.Aviom.com
Page 2
Aviom A-16R MIDI SysEx Specification
2.2. MIDI System Exclusive Packet Tail
Every complete MIDI System Exclusive message should contain a Trailer/Tail byte
referred to as an “End of Exclusive” or EOX for short. Reception of implemented
System Exclusive messages in the A-16R that do not contain an EOX will be treated
as incomplete and flagged as an error.
EOX
1111 0111 (F7H)
End of Exclusive
2.3. Message Data Format
There are essentially two basic data byte formats used in the “Message Data” section
of an A-16R’s SysEx message. The first format is a nibblized format and the second
is a padding format. In general the “Message Data” of the A-16R’s SysEx message is
nibbilized or broken up into MIDI seven bit status bytes. In this nibblization process
one data byte becomes two bytes. The upper 4 Bits or upper nibble of the first byte is
fixed while the lower 4 Bits or lower nibble contains the Most Significant Bits (MSB)
of the data byte being “nibblized.” Similarly, the upper nibble of the second byte is
fixed while the lower nibble contains the Least Significant Bits (LSB) of the data
byte.
MSB
LSB
0001 hhhh
0001 llll
h = high 4 bits of data byte - sent first
l = low 4 bits of data byte
The second basic data byte format used in the “Message Data” section is the padding
format. Padding is inserted between presets in order to provide necessary delays to
allow for preset processing.
Padding
0000 0000 (00H)
Padding byte format, ignored by A-16R
2.4. Checksum Calculation
The preset checksum is calculated by a straight 8-Bit addition of all preset data bytes,
excluding the preset ID, prior to nibblization. In the event of an overflow the
overflow will be discarded in this scheme. Once the checksum has been calculated,
the 8- Bit result is then nibblized for transmission and inserted into the MIDI SysEx
message. In the case of the All Presets Message several checksums are included in
the MIDI SysEx message, one for each preset contained within the message.
1157 Phoenixville Pike, Suite 201 | West Chester, PA 19380 USA
Phone +1 610.738.9005 Fax +1 610.738.9950 | www.Aviom.com
Page 3