Aviom A-16R Specification

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
Aviom A-16R MIDI SysEx Specification
2.5. Receiver Errors
Many events may result in errors being generated. For example, if the received checksum doesn’t match the calculated checksum or if reception of a channel voice message occurs in the middle of a SysEx message, a SysEx failure/error will be generated. When an error is detected on the A-16R, the SysEx progress LEDs (also known as the mute LEDs) will stop updating and the failure will be indicated by flashing the channel select LEDs. The SysEx error can only be acknowledged and cleared by the users pressing a button on the A-16R’s front panel or by toggling the remote/local switch.
3. Message Type List
Currently there are only two SysEx message types implemented in the A-16R. A single byte location exists in each SysEx message, supported by the A-16R, to identify the message type.
Message Type Encoded Value Reference
MIDI All Presets 00H Figure 4 and Section 4 MIDI Current Preset 01H Figure 5 and Section 5
Table 1 - A-16R SysEx Message Types
1157 Phoenixville Pike, Suite 201 | West Chester, PA 19380 USA
Phone +1 610.738.9005 Fax +1 610.738.9950 | www.Aviom.com
Page 4
Aviom A-16R MIDI SysEx Specification
3.1. MIDI All Presets (Message Type = 00H)
Listed below is an overview of the complete “MIDI All Presets” message. This message contains data for all 16 presets transferred to or from the A-16R. All portions of this message are included in the figure including, “SysEx Head”, “Message Data” , and “SysEx Tail.”
Figure 4 - MIDI All Presets 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 5
Aviom A-16R MIDI SysEx Specification
3.2. MIDI Current Preset (Message Type = 01H)
Listed below is an overview of the complete “MIDI Current Preset” message. This message contains data for the current active configuration transferred to or from the A-16R. All portions of this message are included in the figure including, “SysEx Head”, “Message Data” , and “SysEx Tail.”
Figure 5 - MIDI Current Preset 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 6
Aviom A-16R MIDI SysEx Specification
4. MIDI All Presets Detail
Listed below is a more detailed picture of the “MIDI All Presets” message as implemented on the A-16R.
SOX Manufacturer’s ID
Family ID Product ID Device ID Msg. Type Msg. Descriptor
Preset ID
Preset Data Preset Checksum
Preset Trailer Padding Preset ID
Preset Data Preset Checksum
Preset Trailer Padding
Preset ID
Preset Data Preset Checksum
Preset Trailer Padding EOX
1111 0000 (F0H) 0000 0000 (00H) 0000 0001 (01H) 0100 0101 (45H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0001 0000 (10H) 0001 0000 (10H)
... ...
0001 nnnn ­0001 nnnn ­0100 0000 (40H)
... ...
0001 0000 (10H) 0001 0001 (11H)
... ...
0001 nnnn ­0001 nnnn ­0100 0000 (40H)
... ...
| | 0001 0000 (10H) 0001 1111 (1FH)
... ...
0001 nnnn ­0001 nnnn ­0100 0000 (40H)
... ...
1111 0111 (F7H)
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) Message Type = MIDI_ALL_PRESETS_MSG 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) Nibblized First Preset ID (MSB)* Nibblized First Preset ID (LSB)* 112 consecutive bytes containing info for one preset Nibblized Preset Data Checksum (MSB) Nibblized Preset Data Checksum (LSB) Indicates end of a given preset 500 consecutive bytes of the pattern 00H Nibblized Second Preset ID (MSB)* Nibblized Second Preset ID (LSB)* 112 consecutive bytes containing info for one preset Nibblized Preset Data Checksum (MSB) Nibblized Preset Data Checksum (LSB) Indicates end of a given preset 500 consecutive bytes of the pattern 00H
Nibblized Last Preset ID (MSB)* Nibblized Last Preset ID (LSB)* 112 consecutive bytes containing info for one preset Nibblized Preset Data Checksum (MSB) Nibblized Preset Data Checksum (LSB) Indicates end of a given preset 500 consecutive bytes of the pattern 00H End of Exclusive
* - Valid preset range 0-15
1157 Phoenixville Pike, Suite 201 | West Chester, PA 19380 USA
Phone +1 610.738.9005 Fax +1 610.738.9950 | www.Aviom.com
Page 7
Aviom A-16R MIDI SysEx Specification
5. MIDI Current Preset Detail
Listed below is a more detailed picture of the “MIDI Current Preset” message as implemented on the A-16R.
SOX Manufacturer’s ID
Family ID Product ID Device ID Msg. Type Msg. Descriptor
Preset ID
Preset Data Preset Checksum
Preset Trailer Padding EOX
1111 0000 (F0H) 0000 0000 (00H) 0000 0001 (01H) 0100 0101 (45H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0001 (01H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0000 0000 (00H) 0001 0000 (10H) 0001 0000 (10H)
... ...
0001 nnnn ­0001 nnnn ­0100 0000 (40H)
... ...
1111 0111 (F7H)
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) Message Type = MIDI_CURRENT_PRESET_MSG 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) Unused Unused 112 consecutive bytes containing info for one preset Nibblized Preset Data Checksum (MSB) Nibblized Preset Data Checksum (LSB) Indicates end of a given preset 500 consecutive bytes of the pattern 00H End of Exclusive
1157 Phoenixville Pike, Suite 201 | West Chester, PA 19380 USA
Phone +1 610.738.9005 Fax +1 610.738.9950 | www.Aviom.com
Page 8
Loading...