Akai Z4, Z8, MPC4000 Protocol Specification

MIDI System Exclusive Protocol Specification
(OS Version 1·50)
(This Page has been left intentionally blank.)
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
Modification History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
Operating System Version 1·50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
Control Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
AKAI ID <&47{71}> and Z4/Z8/MPC4000 ID <&5F {95}> . . . . . . . . . . . . . . . . . . . . .3
User-Selectable Device ID <0..&7F{0..127} > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
User-Refs <0..&7F{0..127} > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Checksums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
A complete message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
Confirmation Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Control Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
Format of Message Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Use of Ellipsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Item List for SysEx Configuration section [&00{0}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Item List for System Setup section [&04{4}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Item List for the Keygroup Zones section [&0C{12}] . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Item List for the Keygroup section [&10{16}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Item List for Program section [&14{20}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
Item List for Multi section [&18{24}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
Item List for Sample section [&1C{28}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
Item List for Disk Tools section [&20{32}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Item List for Multi FX Control section [&24{36}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Item List for MIDI Song File Tools section [&28{40}] . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
Item List for Front Panel Control section [&2C{44}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Item List for Recording section [&30{48}] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Alternative Operations Sections [&60{96} – &64{100}] . . . . . . . . . . . . . . . . . . . . . . . . .50
Program Automation Sections [&68{104} – &69{105}] . . . . . . . . . . . . . . . . . . . . . . . . .51
Version 1·50 © 2002–2004 AKAI professional M.I. Corp. iii
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification
List of Tables
Table 1: Number of User-Refs Being Sent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Table 2: SysEx Confirmation Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Table 3: Error Numbers Returned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Table 4: Description of <Section> Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
Table 5: SysEx Data Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Table 6: Control Items for Section &00{0} — SysEx Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Table 7: Format of “REPLY” confirmation messages for Section &00{0} — SysEx Configuration . . . .10
Table 8: Control Items for Section &04{4} — System Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Table 9: Format of “REPLY” confirmation messages for Section &04{4} — System Main . . . . . . . . . . .11
Table 10: Control Items for Section &06{6} — System Parameter Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
Table 11: Control Items for Section &07{7} — System Parameter Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
Table 12: Control Items for Section &0E {14} — Keygroup Zone Set Parameter . . . . . . . . . . . . . . . . . . . .16
Table 13: Control Items for Section &0F {15} — Keygroup Zone Get Parameter . . . . . . . . . . . . . . . . . . . .16
Table 14: Control Items for Section &10 {16} — Keygroup Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Table 15: Format of “REPLY” confirmation messages for Section &10{16} — Keygroup . . . . . . . . . . . . .18
Table 16: Control Items for Section &12 {18} — Keygroup Set Parameter . . . . . . . . . . . . . . . . . . . . . . . . .18
Table 17: Control Items for Section &13 {19} — Keygroup Get Parameter . . . . . . . . . . . . . . . . . . . . . . . . .20
Table 18: Control Items for Section &14 {20} — Program Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
Table 19: Format of “REPLY” confirmation messages for Section &14 {20} — Program Main . . . . . . . .23
Table 20: Control Items for Section &16 {22} — Program Set Parameter . . . . . . . . . . . . . . . . . . . . . . . . . .24
Table 21: Control Items for Section &17 {23} — Program Get Parameter . . . . . . . . . . . . . . . . . . . . . . . . . .25
Table 22: Program Temperament Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Table 23: Program LFO Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Table 24: Modulation Matrix Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Table 25: Modulation Matrix Destinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
Table 26: Control Items for Section &18{24} — Multi Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
Table 27: Format of “REPLY” confirmation messages for Section &18{24} — Multi Main . . . . . . . . . . . .30
Table 28: Control Items for Section &1A{26} — Multi Set Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Table 29: Control Items for Section &1B{27} — Multi Get Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
Table 30: Control Items for Section &1C{28} — Sample Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
Table 31: Format of “REPLY” confirmation messages for Section &1C{28} — Sample Main . . . . . . . . .35
Table 32: Control Items for Section &1E{29} — Sample Parameter Set . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Table 33: Control Items for Section &1F{30} — Sample Parameter Get . . . . . . . . . . . . . . . . . . . . . . . . . . .36
Table 34: Control Items for Section &20{32} — Disk Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Table 35: Format of “REPLY” confirmation messages for Section &20{32} — Disk Tools . . . . . . . . . . . .39
Table 36: Control Items for Section &24{36} — Multi FX Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Table 37: Format of “REPLY” confirmation messages for Section &24{36} — Multi FX Control . . . . . .41
Table 38: Control Items for Section &26{38} — Multi FX Parameter Set . . . . . . . . . . . . . . . . . . . . . . . . . .42
Table 39: Control Items for Section &27{39} — Multi FX Parameter Get . . . . . . . . . . . . . . . . . . . . . . . . . .43
iv © 2002–2004 AKAI professional M.I. Corp. Version 1·50
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification
Table 40: Control Items for Section &28{40} — Song File Main
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
Table 41: Format of “REPLY” confirmation messages for Section &28{40} — Song File Main . . . . . . . .45
Table 42: Control Items for Section &2A{42} — Song File Parameter Set . . . . . . . . . . . . . . . . . . . . . . . . .45
Table 43: Control Items for Section &2B{43} — Song File Parameter Get . . . . . . . . . . . . . . . . . . . . . . . . .45
Table 44: Control Items for Section &2C{44} — Front Panel Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Table 45: Keycodes for Front-Panel Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Table 46: Virtual ASCII codes for Front-Panel Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Table 47: ASCII keyboard modifier flags for Front-Panel Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Table 48: Control Items for Section &30{48} — Recording Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Table 49: Format of “REPLY” confirmation messages for Section &30{48} — Recording Main . . . . . . .48
Table 50: Control Items for Section &32{4A} — Recording Parameter Set . . . . . . . . . . . . . . . . . . . . . . . . .48
Table 51: Control Items for Section &33{4B} — Recording Parameter Get . . . . . . . . . . . . . . . . . . . . . . . .49
Table 52: Message Format for Alternative (By-Handle) Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
Table 53: Message Format for Program Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Version 1·50 © 2002–2004 AKAI professional M.I. Corp. v
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification
(This Page has been left intentionally blank.)
vi © 2002–2004 AKAI professional M.I. Corp. Version 1·50
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification

Introduction

This document details the specification for the MIDI System Exclusive protocol for the Akai Z4 and Z8 samplers and the sampling engine of the Akai MPC4000 Music Production Centre. System Exclusive (or SysEx) is a feature of for a computer (or anything else which can send customised configure the samplers.
MIDI which allows custom information to be sent to an instrument, making it possible
MIDI SysEx messages) to remotely control and
On the samplers, SysEx messages are decoded on each port independently (A or B), so both ports can be used at the same time if desired
. If the SysEx Manufacturer ID‡ is not AKAI <&47{71}>, the entire SysEx message is ignored. To allow for feedback from a SysEx message, the out port is used to send SysEx confirmation back to the controller (port A received by B
).
in
confirms data received by Ain and port B
out
confirms data
out
The SysEx messages received by the samplers are buffered, so it is possible to send several messages without pauses. However, if this is done, it is possible that the internal buffers of the samplers will fill up, resulting in lost data. Therefore, it is recommended that the confirmation messages are used to ensure that data was received and processed correctly.
In this document, hexadecimal notation is used where appropriate and designated by the “&” symbol. Where this is used, decimal values are also given as follows: &
HEX{DECIMAL}.
Note: Several functions provided by the System Exclusive specification can take a noticable amount of time to complete, which may interrupt normal (musical)
MIDI processing. Therefore, it
is recommended that only those functions specifically designed for real-time control (e.g., adjustment of some Multi parameters) be used when normal real-time items are marked with the (
) symbol in this document.
RT
MIDI information is being sent. Such
†.
If ports A and B are used simultaneously for SysEx transmissions, care should be taken to ensure that the function performed on one port does not depend on the completion of a function on another port.
‡.
The standard format of a SysEx message is “<&F0> <Manufactured ID> … <&F7>”, where the Manufacturer ID is as­signed by the sures that instruments from other manufacturers will ignore SysEx messages not intended for them.
MIDI Manufacturers’ Association. The assigned ID for AKAI is &47{71}. The use of a manufacturer ID en-
Version 1·50 © 2002–2004 AKAI professional M.I. Corp. Page 1/52
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification

Modification History

The first version of this specification was for use with Operating System Version 1·00.

Operating System Version 1·50

Corrected error in Disk Tools section: incorrectly documented as Section=&10, should be &20.
Added protocol for determining the state of, and cancelling of, asynchronous operations.
Added support for Real-time Keygroup Zone Crossfade.
New Sysex for Program, Keygroup and Zone Automation.
Added support for MPC4000 pad editing.
Added settings for CDR write speed and test enable.
Program Automation Sections added [&68{104} – &69{105}].
Several additional errors were corrected throughout the document.
†.
AKAI professional M.I. Corp. reserve the right to change this SysEx specification without prior notice. However, such changes are likely to be minimal, only being implemented to improve the performance of the product. If you encounter problems, please ensure that you are using the latest SysEx document.
Page 2/52 © 2002–2004 AKAI professional M.I. Corp. Version 1·50
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification

System Exclusive Protocol

The System Exclusive feature is used to remotely control and configure the sampler. To provide feedback to the host (e.g., a of and after processing of viable SysEx messages. If desired, this confirmation can be turned off via SysEx commands.

Control Message Format

To allow several devices to coexist on the same MIDI bus used for system exclusive messages, several identifiers are used by the Z4/Z8/MPC4000 to ensure that it only responds to those messages which are intended for it. Thus, all system exclusive messages begin with the following bytes:
Where the values of the bytes are: <&F0> <&47> <&5F> <0..&7F> …

AKAI ID <&47{71}> and Z4/Z8/MPC4000 ID <&5F{95}>

The AKAI ID and the Z4/Z8/MPC4000 ID ensure that only AKAI Z4/Z8/MPC4000 samplers respond to these messages.
PC or MAC) the MIDI out port is used to transmit SysEx confirmation messages upon reception
<Start of SysEx> <AKAI ID> <Z4/Z8 ID> <User-selectable Device ID> <User-Refs..> …
{<240> <71> <95> <0..127> …}

User-Selectable Device ID <0..&7F{0..127} >

The user-selectable DeviceID allows more than one AKAI Z4/Z8/MPC4000 sampler to coexist on the same
MIDI bus, but be configured independently via SysEx. The default DeviceID is zero.
The DeviceID has been limited to the range: 0–31. This is because the top 2 bits (bits 5 and 6) are used to determine the number of User-Ref bytes being sent— bits 0–4 represent the DeviceID. The number of User­Refs expected is as shown in Table 1. This then provides a flexible means of sending User-Ref bytes; zero bytes to conserve bandwidth, more bytes if required by your application. Moreover, this method allows the number of User-Refs sent to vary on a per-message basis.
Table 1: Number of User-Refs Being Sent
Device ID bit 6 Device ID bit 5 Num User-Refs
000
011
102
113
Note: If the Z4/Z8/MPC4000 is set to have a user-selectable DeviceID of zero (0), then it will respond to all SysEx messages regardless of the DeviceID transmitted. Similarly, if a DeviceID of zero is transmitted by the controller (i.e., bits 0–4 = 0), all Z4/Z8/MPC4000s will respond regardless of which DeviceID is set.
For non-zero DeviceIDs, the sampler will only respond to SysEx messages if its DeviceID matches that sent.

User-Refs <0..&7F {0..127}>

The User-Ref parameters can be set to any value. It is only useful when confirmation messages are enabled (or if a
REPLY is requested) where the User-Ref parameter is echoed with every confirmation message. This
is to allow flexibility in the design of control software where each SysEx message can be stamped with an ID
Version 1·50 © 2002–2004 AKAI professional M.I. Corp. Page 3/52
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification
so that the confirmation messages can be matched to the commands sent. This is especially useful if the control software sends buffered messages out-of-sequence.
Either 0, 1, 2, or 3 User-Refs can be sent with any message. To allow for this, the top 2 bits of the DeviceID contain a count of the number of User-Refs which will be sent. The default number of User-Refs is 0: see Table 1 for more details.
In this document, optional User-Refs will be shown as:
<…>.

Checksums

The checksum provides a means of error-detection in the SysEx message. The checksum is a single data byte sent as the last item before the End-of-SysEx byte <&F7{247}>. By default, checksums are disabled making sending SysEx messages as simple as possible. Enabling and disabling of checksums can only be done via SysEx messages.
Note that because the SysEx specification for the Z4/Z8/MPC4000 supports a variable number of parameters, if checksums are disabled, the calculated checksums may still be transmitted; although they will be ignored.
A checksum calculation begins at the first User-Ref byte (if any) — there is no point in calculating the checksum earlier than this because if an error occurs in the first bytes, the SysEx message will be ignored anyway — and the calculation stops before the End-of-SysEx byte.
To calculate the checksum, unsigned 8-bit addition is used, which wraps on overflow (i.e., 255+1 = 0). To ensure compatibility with the
MIDI data byte specification, the high-bit of the checksum is set to zero (logical
AND with &7F{127}) once the checksum has been calculated.
For example, given the following SysEx message:
<&F0> <&47> <&5F> <&05> <&10> <&0C> <&1B> <&35> <&6D> <&F7>
{<240> <71> <95> <5> <16> <12> <27> <53> <109> <247>}
The checksum would be calculated as:
(&10 + &0C + &1B + &35 + &6D) = &D9 -> (&D9 AND &7F) = &59
{(16 + 12 + 27 + 53 + 109) = 217 -> (217 AND 127) = 89}
And the new checksummed message would be:
<&F0> <&47> <&5F> <&05> <&10> <&0C> <&1B> <&35> <&6D> <&59> <&F7>
{<240> <71> <95> <5> <16> <12> <27> <53> <109> <89> <247>}
A useful tip — to turn off Checksums on all Z4/Z8/MPC4000s, regardless of DeviceID, send:
<&F0> <&47> <&5F> <&00> <&00> <&04> <&00> <&04> <&F7>
{<240> <71> <95> <0> <0> <4> <0> <4> <247>}

A complete message

The format of a complete control message is as follows:
<&F0> <&47> <&5F> <0..&7F> <…> <Section> <Item> <Data1> … <DataN> <checksum> <&F7>
This allows the selection of various Sections, such as “Multi”, “Sample”, “Program”, “Config”, and the variable number of data parameters allows the efficient passing of strings (which, for example, are used to name programs, multis, etc.). The Section numbers are detailed in Table 4.
If extensive use is made of the System Exclusive protocol, it is recommended that checksums are enabled so that transmission errors can be detected and handled.
Page 4/52 © 2002–2004 AKAI professional M.I. Corp. Version 1·50
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification

Confirmation Messages

The confirmation message is a 7 or more byte SysEx message:
<&F0> <AKAI ID> <Z4/Z8 ID> <Device ID> <User-Ref…> <Reply ID> <Section> <Item> <Data1> …
The first 6 bytes (or more if <User-Refs> are used) are the same as those transmitted in the original message, except that the
<Reply ID> item has been inserted. This format ensures that confirmation messages from
different devices can be distinguished, and the insertion of the messages are not confused with other SysEx messages. Moreover, the be used by a controlling computer to determine which SysEx message generated the confirmation message. The values of Reply ID and Data1 … DataN are explained in Table 2. Note that the sent if checksums are enabled (see Table 6).

Table 2: SysEx Confirmation Messages

Reply ID Data1 Data2 Meaning
&4F{79} ‘O’
&44{68} ‘D’
&52{82} ‘R’ Reply Type Reply 1…
&45{69} ‘E’ <
NA NA OK” Valid SysEx has been received and is being processed.
NA NA DONE” SysEx instruction has been completed successfully.
LSB 0–127> <MSB 0–127> “ERROR” An error has occurred, Error Number = Data1 + 128×Data2
<DataN> <checksum> <&F7>
<Reply ID> item ensures that confirmation
<User-Ref>, <Section> and <Item> can
<checksum> will only be
REPLY” A variable number of bytes is returned as a reply (data
returned depends on SysEx message sent). Every piece of reply data is preceded with a single
making it easier to interpret the data received.
The values of these
ID byte indicating the type of data following,
ID bytes are shown in Table 5.
Note that because the user-selectable DeviceID is returned in these messages, a controller can establish the number of devices and their DeviceIDs connected in a chain by using the “Query” SysEx command with the DeviceID set to be zero (all devices), which will return an “ the chain. The DeviceID will also have it’s top 2 bits set to show how many the message (see Table 1 for more information). The number of and the values of
OK” and a “DONE” message from each sampler in
<User-Ref> bytes are included in
<User-Ref> bytes in the
confirmation message will always be the same as those in the message which caused the confirmation message to be generated.
The normal flow of confirmation messages is that the “
OK” message will be transmitted as soon as a valid
Sysex message (i.e., manufacturer = &47{71}, model = &5F{95}, DeviceID = set value) has been received. If there is an error in this message, or the message is unsupported, then the “
ERROR” confirmation message
will be returned—possible error numbers are explained in Table 3. If the message is supported, the function will be performed then, once processing is complete, the “ Alternatively, if a request for information was issued, the “ message with the appropriate data contained within it. Note that it is possible, but unlikely, that a “ message may be followed by an “
ERROR” message if an error occurred during the generation of the reply.
DONE” confirmation message will be transmitted.
DONE” message will be replaced by a “REPLY
REPLY
Note: Although “OK”, confirmation messages can be turned on and off via SysEx, the “DONE” “
REPLY” and “ERROR” messages cannot. This is to ensure that at least one message is returned for
every SysEx message received; thus making synchronisation of a controller easier.
Version 1·50 © 2002–2004 AKAI professional M.I. Corp. Page 5/52
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification

Table 3: Error Numbers Returned

Error Number MSB LSB Description of Error
General Errors
&00{0} 0 0 The <Section> <Item> supplied are not supported
&01{1} 0 1 Checksum invalid
&02{2} 0 2 Unknown error
&03 {3} 0 3 Invalid message format
&04 {4} 0 4 Parameter out of range
&05{5} 0 5 Operation is pending
System Errors
&80{128} 1 0 Unknown system error
&81{129} 1 1 Operation had no effect
&82 {130} 1 2 Fatal error
&83{131} 1 3
&84{132} 1 4
Item Errors
&100{256} 2 0 Unknown item error
&101{257} 2 1 Item not found
&102{258} 2 2 Item in use
&103{259} 2 3 Invalid item handle
&104{260} 2 4 Invalid item name
&105{261} 2 5 Maximum number of items of a particular type reached
&120{288} 2 32 Keygroup not found
Disk Errors
&180{384} 3 0 Unknown disk error
&181{385} 3 1 No Disks
&182{386} 3 2 Disk is invalid
&183{387} 3 3 Load error
&184{388} 3 4 Create error
&185{389} 3 5 Directory not empty
&186{390} 3 6 Delete error
&187{391} 3 7 Disk is write-protected
&188{392} 3 8 Disk is not writable
&189{393} 3 9 Disk full
&18A{394} 3 10 Disk abort
File Errors
&200{512} 4 0 Unknown file error
&201{513} 4 1 File format is incorrect
CPU memory is full
WAVE memory is full
Page 6/52 © 2002–2004 AKAI professional M.I. Corp. Version 1·50
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification
Table 3: Error Numbers Returned
Error Number MSB LSB Description of Error
&202{514} 4 2 WAV format is incorrect
&203{515} 4 3 File not found
&204{516} 4 4 File already exists

Control Messages

The functions of the Z4/Z8/MPC4000 which can be controlled via SysEx are grouped into Sections. For example, there is a section to configure a Multi, and a section to change the Sections then have several functions associated with them, called an Item. Thus each SysEx control message consists of the appropriate device header:
<&F0> <AKAI ID> <Z4/Z8 ID> <Device ID> <User-Ref…>
then the Section and Item number:
<Section> <Item>
followed by the appropriate data for that command. The defined Sections are shown in Table 4.
MIDI configuration. These

Table 4: Description of <Section> Parameter

<Section> Description of Section
&00{0} SysEx Configuration
&04{4} System Setup
&0C{12} Keygroup Zone Manipulation
&10{16} Keygroup Manipulation
&14{20} Program Manipulation
&18{24} Multi Manipulation
&1C{28} Sample Tools
&20{32} Disk Tools
&24{36} Multi FX Control
&28{40}
&2C{44} Front Panel Control
&30{48} Recording
&44{68} <Reserved>
&45{69} <Reserved>
&4F{79} <Reserved>
&52{82} <Reserved>
&60{96}
&61{97}
&62{98}
&63{99}
&64{100}
a
a
a
a
a
Alternative (by-HANDLE) Sample Tools
Alternative (by-HANDLE ) Keygroup Zone and Keygroup
Alternative (by-HANDLE ) Multi FX Control
MIDI song file tools
Alternative (by-HANDLE) Program
Alternative (by-HANDLE ) Multi
Version 1·50 © 2002–2004 AKAI professional M.I. Corp. Page 7/52
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification
Table 4: Description of <Section> Parameter
<Section> Description of Section
&65{101}
&68{104}
&69{105}
a
Alternative (by-HANDLE) Song File Control
b
b
a. These represent an alternative means of control, where the
operation is performed on the item (Multi, Program or Sample) specified by handle, rather than on the currently selected item.
b. These operations are intended for automation of Program
parameters during playback of a sequencer. Any Program, Keygroup, or Keygroup Zone parameter can be modified for any part in the current Multi.
Keygroup and Zone Automation
Program Automation
Page 8/52 © 2002–2004 AKAI professional M.I. Corp. Version 1·50
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification

Format of Message Data

The Z4/8 SysEx protocol supports variable-length messages, making it both flexible and adaptable. Therefore, it is possible to send differently formatted data depending on the function to be performed and in some cases, more than one piece of data is required in a single message. The format of the data required in the messages should be strictly followed to avoid problems — although in most cases, an incorrect message will simply generate an
Note
: Data bytes sent within SysEx messages must not exceed a value of 127 (or &7F). This
limitation is imposed by the
ERROR confirmation message.
MIDI specification. Failure to observe this limit may lead to undefined
behaviour!
Numeric data is always sent as 7-bit bytes (i.e., the top bit of each byte must be zero). Numbers which require more than one byte to represent them are always sent least-significant byte first. Character strings can be any length, but must always have a terminating character of value zero. A summary of all the data types is given in Table 5. Note that the data format
ID is the value returned with every piece of reply data in confirmation
messages, a feature which makes automatic decoding of replies easier.
Table 5: SysEx Data Formats
Name ID Byte Format Description (Range)
BYTE 1 <value> byte (0–127)
SBYTE 2 <sign><value> signed byte (±127)
WORD 3<LSB><MSB> word (0–16383)
SWORD 4<sign><LSB><MSB> signed word (±16383)
DWORD 5<LSB><SB1><SB2><MSB> double word (0–268,435,455)
SDWORD 6<sign><LSB><SB1><SB2><MSB> signed double word (±268,435,455)
QWORD 7<B1><B2><B3><B4><B5><B6><B7><B8> quad word (0–72,057,594,037,927,935)
SQWORD 8<sign><B1><B2><B3><B4><B5><B6><B7><B8> signed quad word (±72,057,594,037,927,935)
STRING 9 <char1><char2>…<charN><0> Null-terminated string
BYTES 10 <value1><value2> 2 data bytes (command-specific)
2
3
BYTES 11 <value1><value2><value3> 3 data bytes (command-specific)
CUSTOM 32 specific to command Custom data (command-specific)
a. <sign>: 0 = positive, 1 = negative.
a
Arrays
If an array of values is to be sent, this is indicated by [n] following the data type. For example, an array of signed bytes with 10 entries would be shown as
SBYTE[10].
Use of Ellipsis
The ellipsis, “…”, is used to illustrate that more data may be transmitted than the explicit data values shown in the tables. For example, <Data1>…<DataeN> means that there may be additional bytes between Data1 and DataN. The number of additional bytes depends on the both format and the content of the data being sent.
Version 1·50 © 2002–2004 AKAI professional M.I. Corp. Page 9/52
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification

Item List for SysEx Configuration section [&00{0}]

These options control how the sampler responds to SysEx messages. These options only apply to the
MIDI
port on which the SysEx command was sent. This allows different applications to coexist on different ports without interfering with the other’s communications. For example, problems would arise if port A disabled checksums when port B required them.
To ensure that operations on one port do not interfere with those on another, LCD
Note: synchronisation should be turned off when it is not essential (e.g., if editing a program) and only used when required, e.g., when selecting the current multi to be played.
Table 6: Control Items for Section &00{0} — SysEx Configuration
<Item> <Data1> <Data2> Description of Item
&00{0}
RT
&01{1}
RT
&03{3}
&04{4}
&05{5}
&06{6}
&07{7}
b
RT
RT
RT
RT
d
RT
&08{8} BYTE(0, 1) NA Enable/Disable synchronisation between the current playback item
&10{16}
RT
a. The state of this option at power-on is ON. b. Note that if synchronisation is enabled and the current muti, program or sample is changed by SysEx on a different port which also
has synchronisation enabled, the currently selected item on the current port will also change because the item displayed on the
will have changed. To avoid this situation, synchronisation should be turned off, and enabled only when required. c. The state of this option at power-on is OFF. d. Some SysEx messages may require substantial time to execute. This can result in large delays between an OK and a DONE (or REPLY/
ERROR) message which the host could interpret as “samper not responding”. To avoid this, if the Still Alive monitor is enabled, a NULL
message (<&F0><&F7>) will be transmitted to the host approximately every second, whilst the host is awaiting a response.
NA NA “Query” — use with user-selectable DeviceID=0 to get an “OK!” and
a “DONE” reply with DeviceID returned
BYTE(0, 1) NA Enable/Disable received message notification (“OK!”)
<Data1> = (0=
BYTE(0, 1) NA Enable/Disable synchronisation between the currently selected
OFF, 1=ON)
samples/programs/multis and those displayed on the front-panel
<Data1> = (0=
BYTE(0, 1) NA Enable/Disable checksum verification <Data1> = (0=OFF, 1=ON)
BYTE(0, 1) NA Enable/Disable automatic screen updating when a SysEx message is
OFF, 1=ON)
processed <Data1> = (0=
BYTE BYTE,
BYTE,
BYTE
BYTE(0, 1) NA Enable/Disable “Still Alive” monitor <Data1> = (0=OFF, 1=ON)
Echo Message: a special test function which will echo all 4 data bytes
by returning them as a Reply. This is useful when debugging a
controlling program.
and the playback item selected on the front-panel
<Data1> = (0=
NA NA Get SysEx Buffer Size
OFF, 1=ON)
a
a
OFF, 1=ON)
a
c
c
LCD
Table 7: Format of “REPLY” confirmation messages for Section &00 {0} — SysEx
Configuration
<Item> requested <Reply>… Description of Data Returned
&10 {16}
WORD Get SysEx Buffer Size
Page 10/52 © 2002–2004 AKAI professional M.I. Corp. Version 1·50
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification

Item List for System Setup section [&04 {4}]

This System section contains several general settings which control the behaviour of the sampler.
When information about the System Setup is requested with a Get message, the data is returned in a “
REPLY
confirmation message (see Confirmation Messages on page 5). The format of these messages is summarised in Table 9 and Table 11.
Table 8: Control Items for Section &04{4} — System Main
<Item> <Data1> <Data2> Description of Item
General
&00{0}
&01{1}
&04{4}
&08{8}
&10{16}
&11{17}
&12{18}
&13{19}
&18{24}
&19{25}
&1A{26}
&20{32}
&21{33}
&22{34}
&30{48}
&31{49}
NA NA Get Operating System Software Version
NA NA Get the Sub-Version of the Operating System
NA NA Get Sampler Model
NA NA Get List of supported filetypes
Memory Information
NA NA Get the percentage free Wave memory
NA NA Get the percentage free CPU memory
NA NA Get the total number of kilobytes of Wave memory
NA NA Get the number of kilobytes of free Wave memory
NA NA Clear Sampler Memory (delete all items from memory)
BYTE NA Purge Unused Items <Data1> = (0=SAMPLE, 1=PROGRAM)
BYTE NA Tag Unused Items <Data1> = (0=SAMPLE, 1=PROGRAM)
Wave Memory Compacting Functions
NA NA Start Compact Wave Memory
NA NA Cancel Compact Wave Memory
NA NA Get Compact Wave Memory Progress (%)
Asynchronous Operation Control
NA NA Get State of Asynchronous Operation
NA NA Cancel Current Asynchronous Operation
Table 9: Format of “REPLY” confirmation messages for Section &04 {4} — System Main
<Item> requested <Reply>… Description of Data Returned
&00{0} 2
BYTES Operating System Version: <Value1>=major version number,
<Value2>=minor version number
&01{1} BYTE Operating System Sub-Version
&04{4}
&08{8}
BYTE(0 – 2) Sampler Model <Reply1> = (0=Z4, 1=Z8, 2=MPC4000)
STRING[] Get List of supported filetypes
<Reply…> contains a list of file extensions which are supported
&10{16} BYTE Get the percentage free Wave memory
&11{17}
BYTE Get the percentage free CPU memory
&12{18} DWORD Get the total number of kilobytes of Wave memory
Version 1·50 © 2002–2004 AKAI professional M.I. Corp. Page 11/ 52
AKAI professional Z4/Z8/MPC4000 MIDI System Exclusive Protocol Specification
Table 9: Format of “REPLY” confirmation messages for Section &04 {4} — System Main
<Item> requested <Reply>… Description of Data Returned
&13{19} DWORD Get the number of kilobytes of free Wave memory
&22 {34}
&30 {48} (see footnote
BYTE Get Compact Wave Memory Progress (%)
a
) Get State of Asynchronous Operation
a. If the asynchronous operation is complete, a DONE confirmation m essage will be returned. If the operation is still
pending, an
ERROR confirmation message will be returned with the error “Operation is pending”.
Table 10: Control Items for Section &06{6} — System Parameter Set
<Item> <Data1> <Data2>… Description of Item
Global Options
a
&01{1}
&02{2}
&03{3} SWORD
&04{4} BYTE(0–7) NA Set Master Level <Data1> = (42dB – 0dB in 6dB steps)
&05{5} BYTE(0, 1) BYTE(0, 2) Set MIDI OUT/THRU
&06{6}
&07{7}
&08{8}
&09{9}
&0A{10}
&10{16}
&11{17}
&12{18}
&13{19}
&14{20}
&18{24}
&19{25}
&1A{26}
&1B{27}
&20{32}
&21{33}
STRING NA Set Sampler Name
BYTE(0–7) NA Set SCSI self ID
NA Set Master Tune
(0–±3600)
(0=−42dB, 1=36dB, …, 7=0 dB)
<Data1> =
<Data2> = (0=
BYTE(0, 1) NA Set Qlink Local Control <Data1> = (0=OFF, 1=ON)
BYTE(0, 1) NA Set Create Default Items at Startup <Data1> = (0=OFF, 1=ON)
BYTE(0, 1) NA Set MIDI file save format
BYTE(0–7) NA Set CD-R write speed <Data1> =
(0=×1, 1=×2, 2=×4, 3=×6, 4=×8, 5=×12, 6=×16, 7=
BYTE(0–2) NA Set CD-R write mode
<Data1> = (0=
TEST+WRITE, 1=TEST ONLY, 2=WRITE ONLY)
MIDI port (0=A, 1=B),
OUT, 1=THRUA, 2=THRUB)
MAX)
Display Options
BYTE(0, 1) NA Set Front panel lock-out state
<Data1> = (0=
BYTE(0–19) NA Set Display Contrast
BYTE(0, 1) NA Set Note Display <Data1> = (0=NUMBER, 1=NAME)
BYTE(0–3) NA Set Date Display Format
<Data1> = (0=
BYTE(0, 1) NA Set Time Display Format
<Data1> = (0=12
BYTE(0, 1) NA Set Waveform View Scale <Data1> = (0=LINE AR, 1=LOG)
BYTE(0, 1) NA Set Waveform View Type <Data1> = (0=RECTIFIED, 1=BIPOLAR)
BYTE(0, 1) NA Set Waveform View Fill <Data1> = (0=OFF, 1=ON)
BYTE(0, 1) NA Set Item Sort Mode <Data1> = (0=ALPHABETIC, 1=MEMORY)
NORMAL; 1=LOCKED)
DDMMYY, 1=MMDDYY, 2=YYMMDD)
HOUR, 1=24HOUR)
Time and Date
BYTE NA Set Year
BYTE NA Set Month
Page 12/52 © 2002–2004 AKAI professional M.I. Corp. Version 1·50
Loading...
+ 40 hidden pages