https://wiki.fractalaudio.com/wiki/api.php?action=feedcontributions&user=Neroroxxx&feedformat=atom
Fractal Audio Wiki - User contributions [en]
2024-03-29T06:07:24Z
User contributions
MediaWiki 1.34.2
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43588
MIDI SysEx
2017-09-22T16:39:55Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
<br />
<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II.<br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0x00 Axe FX Standard<br />
* 0x01 Axe FX Ultra<br />
* 0x02 MFC101<br />
* 0x03 Axe FX II<br />
* 0x04 MFC101 mk3<br />
* 0x05 FX8<br />
* 0x06 Axe FX II XL<br />
* 0x07 Axe FX II XL+<br />
* 0x08 AX8<br />
* 0x0A FX8 mk2<br />
<br />
<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
Here's an example of a sysex message, in this example the AX8 is responding with the preset number, function [[#GET_PRESET_NUMBER|0x14 GET_PRESET_NUMBER]]<br />
<br />
<pre><br />
[0xF0, 0x00, 0x01, 0x74, 0x08, 0x14, 0x00, 0x00, 0x19, 0xF7];<br />
</pre><br />
<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message [[#FRONT_PANEL_CHANGE_DETECTED|0x21 FRONT_PANEL_CHANGE_DETECTED]], if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending function [[#DISCONNECT_FROM_CONTROLLER|0x42 DISCONNECT_FROM_CONTROLLER]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number<br />
:0xdd Firmware Version minor number<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]]<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] message, see the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==PRESET_BLOCKS_DATA==<br />
This message returns a 32-bit unsigned integer split into 5 MIDI words for each block loaded onto the preset, that is, if the amp block is loaded you will get 5 bytes with data for the amp block, etc.<br />
The message contains 5 important pieces of data:<br />
<tt><br />
::The block's current Bypass state (0 if bypassed, 1 if engaged)<br />
::The block's current X/Y state (0 if Y, 1 if X)<br />
::The block's ID (number ranging from 100 to 170)<br />
::The block's bypass CC# (if the value is 0 or more than 127, it means the block doesn't have a CC# assigned)<br />
::The block's XY CC# (if the value is 0 or more than 127, it means the block doesn't have a CC# assigned or doesn't have X/Y)<br />
</tt><br />
<br />
<br />
Request format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
Response format: (response doesn't have a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
<br />
:0xdd Byte 1 (flags) uint32_t LSB<br />
::Bit 0: 0 = Bypassed, 1 = Engaged<br />
::Bit 1: 0 = Y, 1 = X<br />
::Bit 2: unused<br />
::Bit 3: unused<br />
::Bit 4: unused<br />
::Bit 5: unused<br />
::Bit 6: unused<br />
<br />
:0xdd Byte 2 (bypass cc# number LSB)<br />
::Bit 0: unused (Bit 7 for the byte above)<br />
::Bit 1: Bypass CC# Bit 0<br />
::Bit 2: Bypass CC# Bit 1<br />
::Bit 3: Bypass CC# Bit 2<br />
::Bit 4: Bypass CC# Bit 3<br />
::Bit 5: Bypass CC# Bit 4<br />
::Bit 6: Bypass CC# Bit 5<br />
<br />
:0xdd Byte 3 (bypass cc# MSB and XY cc# LSB)<br />
::Bit 0: Bypass CC# Bit 6<br />
::Bit 1: Bypass CC# Bit 7<br />
::Bit 2: XY CC# Bit 0<br />
::Bit 3: XY CC# Bit 1<br />
::Bit 4: XY CC# Bit 2<br />
::Bit 5: XY CC# Bit 3<br />
::Bit 6: XY CC# Bit 4<br />
<br />
:0xdd Byte 4 (XY cc# MSB and Block ID LSB)<br />
::Bit 0: XY CC# Bit 5<br />
::Bit 1: XY CC# Bit 6<br />
::Bit 2: XY CC# Bit 7<br />
::Bit 3: Block ID Bit 0<br />
::Bit 4: Block ID Bit 1<br />
::Bit 5: Block ID Bit 2<br />
::Bit 6: Block ID Bit 3<br />
<br />
:0xdd Byte 5 (Block ID MSB) uint32_t MSB<br />
::Bit 0: Block ID Bit 4<br />
::Bit 1: Block ID Bit 5<br />
::Bit 2: Block ID Bit 6<br />
::Bit 3: Block ID Bit 7<br />
::Bit 4: unused<br />
::Bit 5: unused<br />
::Bit 6: unused<br />
</tt><br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and convert them into a uint32_t<br />
<tt><br />
<pre><br />
// "data" is the entire sysex array, "lengthOfMessage" is the length/size of that array<br />
<br />
for(uint16_t i = 6, n = lengthOfMessage - 1 ; i < n ; i += 5){<br />
// convert the 5 bytes into a uint32_t with some bit-shifting<br />
uint32_t blockData = (data[i] & 0x7F) | ((data[i+1] & 0x7F)<<7) | ((data[i+2] & 0x7F)<<14) | ((data[i+3] & 0x7F)<<21) | ((data[i+4] & 0x7F)<<28);<br />
<br />
bool isBlockEngaged = (bool) (blockData & 0x01); // true if the block is on, false if bypassed<br />
bool isX = (bool) (blockData & 0x02); // true if the block is in X, false if Y<br />
uint8_t id = (uint8_t) ((blockData & 0xFF000000) >> 24);<br />
uint8_t bypassCC = (uint8_t) ((blockData & 0x0000FF00) >> 8); // if this number is 0 or higher than 127, then there's no cc# assigned<br />
uint8_t xyCC = (uint8_t) ((blockData & 0x00FF0000) >> 16); // if this number is 0 or higher than 127, then there's no cc# assigned<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4:<br />
:::Bit 5:<br />
:::Bit 6:<br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play<br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo<br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
<br />
=MIDI SysEx: Importing/Exporting Presets=<br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20<br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and<br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a<br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20<br />
:0x00<br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data<br />
:0xdd encoded Checksum byte 1 for IR data<br />
:0xdd encoded Checksum byte 2 for IR data<br />
:0xdd encoded Checksum byte 3 for IR data<br />
:0xdd encoded Checksum byte 4 for IR data<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the<br />
lower seven bits of a byte, with the most significant bit set to 0.<br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (PRESET_BLOCKS_DATA)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
<br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
=MIDI SysEx: more information=<br />
* [http://forum.fractalaudio.com/threads/using-backing-tracks-to-trigger-preset-scene-changes-w-bandhelper.125461 Recalling presets and scenes in hex]<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43587
MIDI SysEx
2017-09-21T14:21:22Z
<p>Neroroxxx: changed GET_PRESET_BLOCKS_FLAGS to PRESET_BLOCKS_DATA</p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
<br />
<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II.<br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0x00 Axe FX Standard<br />
* 0x01 Axe FX Ultra<br />
* 0x02 MFC101<br />
* 0x03 Axe FX II<br />
* 0x04 MFC101 mk3<br />
* 0x05 FX8<br />
* 0x06 Axe FX II XL<br />
* 0x07 Axe FX II XL+<br />
* 0x08 AX8<br />
* 0x0A FX8 mk2<br />
<br />
<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
Here's an example of a sysex message, in this example the AX8 is responding with the preset number, function [[#GET_PRESET_NUMBER|0x14 GET_PRESET_NUMBER]]<br />
<br />
<pre><br />
[0xF0, 0x00, 0x01, 0x74, 0x08, 0x14, 0x00, 0x00, 0x19, 0xF7];<br />
</pre><br />
<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message [[#FRONT_PANEL_CHANGE_DETECTED|0x21 FRONT_PANEL_CHANGE_DETECTED]], if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending function [[#DISCONNECT_FROM_CONTROLLER|0x42 DISCONNECT_FROM_CONTROLLER]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number<br />
:0xdd Firmware Version minor number<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]]<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] message, see the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==PRESET_BLOCKS_DATA==<br />
This message returns a 32-bit unsigned integer split into 5 MIDI words for each block loaded onto the preset, that is, if the amp block is loaded you will get 5 bytes with data for the amp block, etc.<br />
The message contains 5 important pieces of data:<br />
<tt><br />
::The block's current Bypass state (0 if bypassed, 1 if engaged)<br />
::The block's current X/Y state (0 if Y, 1 if X)<br />
::The block's ID (number ranging from 100 to 170)<br />
::The block's bypass CC# (if the value is 0 or more than 127, it means the block doesn't have a CC# assigned)<br />
::The block's XY CC# (if the value is 0 or more than 127, it means the block doesn't have a CC# assigned or doesn't have X/Y)<br />
</tt><br />
<br />
<br />
Request format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
Response format: (response doesn't have a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
<br />
:0xdd Byte 1 (flags) uint32_t LSB<br />
::Bit 0: 0 = Bypassed, 1 = Engaged<br />
::Bit 1: 0 = Y, 1 = X<br />
::Bit 2: unused<br />
::Bit 3: unused<br />
::Bit 4: unused<br />
::Bit 5: unused<br />
::Bit 6: unused<br />
<br />
:0xdd Byte 2 (bypass cc# number LSB)<br />
::Bit 0: unused (Bit 7 for the byte above)<br />
::Bit 1: Bypass CC# Bit 0<br />
::Bit 2: Bypass CC# Bit 1<br />
::Bit 3: Bypass CC# Bit 2<br />
::Bit 4: Bypass CC# Bit 3<br />
::Bit 5: Bypass CC# Bit 4<br />
::Bit 6: Bypass CC# Bit 5<br />
<br />
:0xdd Byte 3 (bypass cc# MSB and XY cc# LSB)<br />
::Bit 0: Bypass CC# Bit 6<br />
::Bit 1: Bypass CC# Bit 7<br />
::Bit 2: XY CC# Bit 0<br />
::Bit 3: XY CC# Bit 1<br />
::Bit 4: XY CC# Bit 2<br />
::Bit 5: XY CC# Bit 3<br />
::Bit 6: XY CC# Bit 4<br />
<br />
:0xdd Byte 4 (XY cc# MSB and Block ID LSB)<br />
::Bit 0: XY CC# Bit 5<br />
::Bit 1: XY CC# Bit 6<br />
::Bit 2: XY CC# Bit 7<br />
::Bit 3: Block ID Bit 0<br />
::Bit 4: Block ID Bit 1<br />
::Bit 5: Block ID Bit 2<br />
::Bit 6: Block ID Bit 3<br />
<br />
:0xdd Byte 5 (Block ID MSB) uint32_t MSB<br />
::Bit 0: Block ID Bit 4<br />
::Bit 1: Block ID Bit 5<br />
::Bit 2: Block ID Bit 6<br />
::Bit 3: Block ID Bit 7<br />
::Bit 4: unused<br />
::Bit 5: unused<br />
::Bit 6: unused<br />
</tt><br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and convert them into a uint32_t<br />
<tt><br />
<pre><br />
// "data" is the entire sysex array, "lengthOfMessage" is the length/size of that array<br />
<br />
for(uint16_t i = 6, n = lengthOfMessage - 1 ; i < n ; i += 5){<br />
// convert the 5 bytes into a uint32_t with some bit-shifting<br />
uint32_t blockData = (data[i] & 0x7F) | ((data[i+1] & 0x7F)<<7) | ((data[i+2] & 0x7F)<<14) | ((data[i+3] & 0x7F)<<21) | ((data[i+4] & 0x7F)<<28);<br />
<br />
bool isBlockEngaged = (bool)(blockData & 0x01); // true if the block is on, false if bypassed<br />
bool isX = (bool(blockData & 0x02); // true if the block is in X, false if Y<br />
uint8_t id = (uint8_t)(blockData & 0xFF000000) >> 24;<br />
uint8_t bypassCC = (uint8_t)(blockData & 0x0000FF00) >> 8; // if this number is 0 or higher than 127, then there's no cc# assigned<br />
uint8_t xyCC = (uint8_t)(blockData & 0x00FF0000) >> 16; // if this number is 0 or higher than 127, then there's no cc# assigned<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4:<br />
:::Bit 5:<br />
:::Bit 6:<br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play<br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo<br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
<br />
=MIDI SysEx: Importing/Exporting Presets=<br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20<br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and<br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a<br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20<br />
:0x00<br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data<br />
:0xdd encoded Checksum byte 1 for IR data<br />
:0xdd encoded Checksum byte 2 for IR data<br />
:0xdd encoded Checksum byte 3 for IR data<br />
:0xdd encoded Checksum byte 4 for IR data<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the<br />
lower seven bits of a byte, with the most significant bit set to 0.<br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (PRESET_BLOCKS_DATA)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
<br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
=MIDI SysEx: more information=<br />
* [http://forum.fractalaudio.com/threads/using-backing-tracks-to-trigger-preset-scene-changes-w-bandhelper.125461 Recalling presets and scenes in hex]<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43586
MIDI SysEx
2017-09-21T14:19:50Z
<p>Neroroxxx: updated GET_PRESET_BLOCKS_FLAGS</p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
<br />
<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II.<br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0x00 Axe FX Standard<br />
* 0x01 Axe FX Ultra<br />
* 0x02 MFC101<br />
* 0x03 Axe FX II<br />
* 0x04 MFC101 mk3<br />
* 0x05 FX8<br />
* 0x06 Axe FX II XL<br />
* 0x07 Axe FX II XL+<br />
* 0x08 AX8<br />
* 0x0A FX8 mk2<br />
<br />
<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
Here's an example of a sysex message, in this example the AX8 is responding with the preset number, function [[#GET_PRESET_NUMBER|0x14 GET_PRESET_NUMBER]]<br />
<br />
<pre><br />
[0xF0, 0x00, 0x01, 0x74, 0x08, 0x14, 0x00, 0x00, 0x19, 0xF7];<br />
</pre><br />
<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message [[#FRONT_PANEL_CHANGE_DETECTED|0x21 FRONT_PANEL_CHANGE_DETECTED]], if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending function [[#DISCONNECT_FROM_CONTROLLER|0x42 DISCONNECT_FROM_CONTROLLER]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number<br />
:0xdd Firmware Version minor number<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]]<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] message, see the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
This message returns a 32-bit unsigned integer split into 5 MIDI words for each block loaded onto the preset, that is, if the amp block is loaded you will get 5 bytes with data for the amp block, etc.<br />
The message contains 5 important pieces of data:<br />
<tt><br />
::The block's current Bypass state (0 if bypassed, 1 if engaged)<br />
::The block's current X/Y state (0 if Y, 1 if X)<br />
::The block's ID (number ranging from 100 to 170)<br />
::The block's bypass CC# (if the value is 0 or more than 127, it means the block doesn't have a CC# assigned)<br />
::The block's XY CC# (if the value is 0 or more than 127, it means the block doesn't have a CC# assigned or doesn't have X/Y)<br />
</tt><br />
<br />
<br />
Request format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
Response format: (response doesn't have a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
<br />
:0xdd Byte 1 (flags) uint32_t LSB<br />
::Bit 0: 0 = Bypassed, 1 = Engaged<br />
::Bit 1: 0 = Y, 1 = X<br />
::Bit 2: unused<br />
::Bit 3: unused<br />
::Bit 4: unused<br />
::Bit 5: unused<br />
::Bit 6: unused<br />
<br />
:0xdd Byte 2 (bypass cc# number LSB)<br />
::Bit 0: unused (Bit 7 for the byte above)<br />
::Bit 1: Bypass CC# Bit 0<br />
::Bit 2: Bypass CC# Bit 1<br />
::Bit 3: Bypass CC# Bit 2<br />
::Bit 4: Bypass CC# Bit 3<br />
::Bit 5: Bypass CC# Bit 4<br />
::Bit 6: Bypass CC# Bit 5<br />
<br />
:0xdd Byte 3 (bypass cc# MSB and XY cc# LSB)<br />
::Bit 0: Bypass CC# Bit 6<br />
::Bit 1: Bypass CC# Bit 7<br />
::Bit 2: XY CC# Bit 0<br />
::Bit 3: XY CC# Bit 1<br />
::Bit 4: XY CC# Bit 2<br />
::Bit 5: XY CC# Bit 3<br />
::Bit 6: XY CC# Bit 4<br />
<br />
:0xdd Byte 4 (XY cc# MSB and Block ID LSB)<br />
::Bit 0: XY CC# Bit 5<br />
::Bit 1: XY CC# Bit 6<br />
::Bit 2: XY CC# Bit 7<br />
::Bit 3: Block ID Bit 0<br />
::Bit 4: Block ID Bit 1<br />
::Bit 5: Block ID Bit 2<br />
::Bit 6: Block ID Bit 3<br />
<br />
:0xdd Byte 5 (Block ID MSB) uint32_t MSB<br />
::Bit 0: Block ID Bit 4<br />
::Bit 1: Block ID Bit 5<br />
::Bit 2: Block ID Bit 6<br />
::Bit 3: Block ID Bit 7<br />
::Bit 4: unused<br />
::Bit 5: unused<br />
::Bit 6: unused<br />
</tt><br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and convert them into a uint32_t<br />
<tt><br />
<pre><br />
// "data" is the entire sysex array, "lengthOfMessage" is the length/size of that array<br />
<br />
for(uint16_t i = 6, n = lengthOfMessage - 1 ; i < n ; i += 5){<br />
// convert the 5 bytes into a uint32_t with some bit-shifting<br />
uint32_t blockData = (data[i] & 0x7F) | ((data[i+1] & 0x7F)<<7) | ((data[i+2] & 0x7F)<<14) | ((data[i+3] & 0x7F)<<21) | ((data[i+4] & 0x7F)<<28);<br />
<br />
bool isBlockEngaged = (bool)(blockData & 0x01); // true if the block is on, false if bypassed<br />
bool isX = (bool(blockData & 0x02); // true if the block is in X, false if Y<br />
uint8_t id = (uint8_t)(blockData & 0xFF000000) >> 24;<br />
uint8_t bypassCC = (uint8_t)(blockData & 0x0000FF00) >> 8; // if this number is 0 or higher than 127, then there's no cc# assigned<br />
uint8_t xyCC = (uint8_t)(blockData & 0x00FF0000) >> 16; // if this number is 0 or higher than 127, then there's no cc# assigned<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4:<br />
:::Bit 5:<br />
:::Bit 6:<br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play<br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo<br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
<br />
=MIDI SysEx: Importing/Exporting Presets=<br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20<br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and<br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a<br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20<br />
:0x00<br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data<br />
:0xdd encoded Checksum byte 1 for IR data<br />
:0xdd encoded Checksum byte 2 for IR data<br />
:0xdd encoded Checksum byte 3 for IR data<br />
:0xdd encoded Checksum byte 4 for IR data<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the<br />
lower seven bits of a byte, with the most significant bit set to 0.<br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
<br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
=MIDI SysEx: more information=<br />
* [http://forum.fractalaudio.com/threads/using-backing-tracks-to-trigger-preset-scene-changes-w-bandhelper.125461 Recalling presets and scenes in hex]<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43387
MIDI SysEx
2017-05-22T19:20:49Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
<br />
<br />
<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0x00 Axe FX Standard<br />
* 0x01 Axe FX Ultra<br />
* 0x02 MFC101<br />
* 0x03 Axe FX II<br />
* 0x04 MFC101 mk3<br />
* 0x05 FX8<br />
* 0x06 Axe FX II XL<br />
* 0x07 Axe FX II XL+<br />
* 0x08 AX8<br />
* 0x0A FX8 mk2<br />
<br />
<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
Here's an example of a sysex message, in this example the AX8 is responding with the preset number, function [[#GET_PRESET_NUMBER|0x14 GET_PRESET_NUMBER]]<br />
<br />
<pre><br />
[0xF0, 0x00, 0x01, 0x74, 0x08, 0x14, 0x00, 0x00, 0x19, 0xF7];<br />
</pre><br />
<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message [[#FRONT_PANEL_CHANGE_DETECTED|0x21 FRONT_PANEL_CHANGE_DETECTED]], if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending function [[#DISCONNECT_FROM_CONTROLLER|0x42 DISCONNECT_FROM_CONTROLLER]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]]<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] message, see the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
<br />
=MIDI SysEx: Importing/Exporting Presets=<br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
<br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43386
MIDI SysEx
2017-05-22T19:20:06Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
* 10 FX8 mk2<br />
<br />
<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
Here's an example of a sysex message, in this example the AX8 is responding with the preset number, function [[#GET_PRESET_NUMBER|0x14 GET_PRESET_NUMBER]]<br />
<br />
<pre><br />
[0xF0, 0x00, 0x01, 0x74, 0x08, 0x14, 0x00, 0x00, 0x19, 0xF7];<br />
</pre><br />
<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message [[#FRONT_PANEL_CHANGE_DETECTED|0x21 FRONT_PANEL_CHANGE_DETECTED]], if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending function [[#DISCONNECT_FROM_CONTROLLER|0x42 DISCONNECT_FROM_CONTROLLER]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]]<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] message, see the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
<br />
=MIDI SysEx: Importing/Exporting Presets=<br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
<br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43385
MIDI SysEx
2017-05-22T19:19:27Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
* 10 FX8 mk2<br />
<br />
<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
Here's an example of a sysex message, in this example the AX8 is responding with the preset number, function [[#GET_PRESET_NUMBER|0x14 GET_PRESET_NUMBER]]<br />
<br />
<pre><br />
[0xF0, 0x00, 0x01, 0x74, 0x08, 0x14, 0x00, 0x00, 0x19, 0xF7];<br />
</pre><br />
<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message [[#FRONT_PANEL_CHANGE_DETECTED|0x21 FRONT_PANEL_CHANGE_DETECTED]], if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending function [[#DISCONNECT_FROM_CONTROLLER|0x42 DISCONNECT_FROM_CONTROLLER]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]]<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] message, see the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
<br />
=MIDI SysEx: Importing/Exporting Presets=<br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
<br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43383
MIDI SysEx
2017-05-22T17:50:18Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
Here's an example of a sysex message, in this example the AX8 is responding with the preset number, function [[#GET_PRESET_NUMBER|0x14 GET_PRESET_NUMBER]]<br />
<br />
<pre><br />
[0xF0, 0x00, 0x01, 0x74, 0x08, 0x14, 0x00, 0x00, 0x19, 0xF7];<br />
</pre><br />
<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message [[#FRONT_PANEL_CHANGE_DETECTED|0x21 FRONT_PANEL_CHANGE_DETECTED]], if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending function [[#DISCONNECT_FROM_CONTROLLER|0x42 DISCONNECT_FROM_CONTROLLER]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]]<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] message, see the [[#GET_FIRMWARE_VERSION|0x08 GET_FIRMWARE_VERSION]] section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
<br />
=MIDI SysEx: Importing/Exporting Presets=<br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
<br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43372
MIDI SysEx
2017-05-22T16:35:34Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
Here's an example of a sysex message, in this example the AX8 is responding with the preset number, function [[#GET_PRESET_NUMBER|0x14 GET_PRESET_NUMBER]]<br />
<br />
<pre><br />
[0xF0, 0x00, 0x01, 0x74, 0x08, 0x14, 0x00, 0x00, 0x19, 0xF7];<br />
</pre><br />
<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
<br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43371
MIDI SysEx
2017-05-22T16:32:33Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
Here's an example of a sysex message, in this example the AX8 is responding with the preset number, function [[#GET_PRESET_NUMBER|0x14 GET_PRESET_NUMBER]]<br />
<br />
<pre><br />
[0xF0, 0x00, 0x01, 0x74, 0x08, 0x14, 0x00, 0x00, 0x19, 0xF7];<br />
</pre><br />
<br />
<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43370
MIDI SysEx
2017-05-22T16:25:39Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block ([[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]]) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]], this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of [[#GET_BLOCK_PARAMETERS_LIST|0x01 GET_BLOCK_PARAMETERS_LIST]] which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43369
MIDI SysEx
2017-05-22T16:23:23Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
==GET/SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET/SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET/SET_BLOCK_PARAMETER_VALUE|0x02 GET/SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET/SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43368
MIDI SysEx
2017-05-22T16:19:46Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_AX8_FOOTSWITCHES, SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43367
MIDI SysEx
2017-05-22T16:18:25Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
You can get the MIDI Channel of your Axe-Fx with [[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_AX8_FOOTSWITCHES, SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43366
MIDI SysEx
2017-05-22T16:16:36Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
The information on this page is for educational purposes only.<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_TOGGLE==<br />
<br />
To turn the tuner on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
The default CC for the tuner is 15, send value 0 to turn the tuner off, any value of 64 or higher to turn it on.<br />
<br />
==METRONOME_TOGGLE==<br />
<br />
To turn the metronome on/off you send a MIDI Control Change (CC) the CC value is the same you assign on the Axe-Fx II in the same Channel your Axe-Fx II is set to.<br />
<br />
Send value 0 to turn the Metronome off, any value of 64 or higher to turn it on.<br />
<br />
NOTE that the metronome's level can not be edited via midi.<br />
<br />
<br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_AX8_FOOTSWITCHES, SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43365
MIDI SysEx
2017-05-22T16:05:57Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_AX8_FOOTSWITCHES, SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br><br />
It includes Eight 6-byte chunks:<br><br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br><br />
The next 2 bytes of the chunk represent the global footswitch block ID<br><br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br><br />
The next byte represents the flags of the local footswitch.<br><br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type.<br><br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43364
MIDI SysEx
2017-05-22T16:05:03Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
==GET_AX8_FOOTSWITCHES, SET_AX8_FOOTSWITCHES==<br />
<br />
This function returns the contents of both the per preset and global foot-switches on the AX8.<br />
It includes Eight 6-byte chunks:<br />
The first 2 bytes of the chunk represent the block of the local (per preset) footswitch, the ID will be the Block ID or other IDs representing the function of the footswitch.<br />
The next 2 bytes of the chunk represent the global footswitch block ID<br />
The next byte represents the flags of the global footswitch, as in if the global footswitch is engaged, engaged+momentary & engaged+latching<br />
The next byte represents the flags of the local footswitch.<br />
When the Global Flag is 0 the per preset footswitch is used, when the flag is 1, global is engaged in latching type, when it's 2 it's engaged in momentary type<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0 to request all)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x48 Function ID (0x48)<br />
:0xdd QUERY, 0=Get Value, 1=Set Value<br />
:0xdd Number of Foot-switches (0x08 on the AX8)<br />
:Eight 6-byte chunks to follow (with the first chunk representing footswitch 1, last one footswitch 8)<br />
:0xdd Local ID bits 6-0<br />
:0xdd Local ID bits 13-7<br />
:0xdd Global ID bits 6-0<br />
:0xdd Global ID bits 13-7<br />
:0xdd Global Flag, 0=Global Disabled, 1=Global Engaged/Latching, 2=Global Engaged/Momentary<br />
:0xdd Local Flag, 1=Local Latching, 2=Local Momentary<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
To edit footswitches you send the entire layout of footswitches with the QUERY being 1, you would include each 6-byte chunk after the Number of Foot-switches, each chunk would have to have the values you want to set for each footswitch.<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43363
MIDI SysEx
2017-05-22T15:30:18Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TYPED_BLOCK_PARAMETER_VALUE==<br />
<br />
This is the function used by Axe-Edit when you type the value of a parameter, if you've read this page you'd learned that parameter values range from 0 to 65534, with that in mind, the Bass on the AMP block displays a value of 0.00 to 10.00 with 0.00 being 0 and 10.00 being 65534.<br />
If you want to set the value of that parameter to exactly 6.35 then you would use this function.<br />
The parameter value is sent as a 32-bit Signed Float split into five 7-bit bytes, for example the Balance parameter on the AMP block, you can send -50.6 as the parameter value since the knob displays a range from -100.0 to 100.0<br />
<br />
NOTE: this function behaves differently with the AMP's Level parameter which doesn't seem to respond with the proper value.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2E Function ID (0x2E)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Parameter ID bits 6-0<br />
:0xdd Parameter ID bits 13-7<br />
:0xdd Parameter Value bits 6-0<br />
:0xdd Parameter Value bits 13-7<br />
:0xdd Parameter Value bits 21-14<br />
:0xdd Parameter Value bits 29-22<br />
:0xdd Parameter Value bits 32-30<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds in the same way as [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
<br />
<br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43362
MIDI SysEx
2017-05-22T15:16:32Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass.<br />
<br />
Example, this example will bypass the amp block, keep in mind the checksum must be calculated for the target device:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0x6A effect ID bits 6-0<br />
:0x00 effect ID bits 13-7<br />
:0x7F parameter ID bits 6-0<br />
:0x01 parameter ID bits 13-7<br />
:0x01 parameter value bits 6-0<br />
:0x00 parameter value bits 13-7<br />
:0x00 parameter value bits 15-14<br />
:0x01 Set Value<br />
:0xXX Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43361
MIDI SysEx
2017-05-22T15:13:25Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 but the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
TIP: you should be careful with how often you request this graph, you should only do it when after a set interval after the parameter for that block has been edited.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43360
MIDI SysEx
2017-05-22T15:10:00Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with Checksums, but not all response messages will have a Checksum, those documented here will specify if a Checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the Checksum is the byte before 0xF7<br />
<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format: (response does not contain a Checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the Checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
==SET_TARGET_BLOCK==<br />
This function is sent when Axe-Edit opens a block for editing, this message should be sent if you will be requesting Real Time modifiers or the [[#GET_MONITOR_GRAPH|GET_MONITOR_GRAPH]].<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x37 Function ID (0x37)<br />
:0xdd Block ID bits 6-0<br />
:0xdd Block ID bits 13-7<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==GET_MONITOR_GRAPH==<br />
This function responds with the Monitor Graph, this is the "MONITOR" section you see on Axe-Edit displaying the EQ curve of many blocks.<br><br />
This function's response contains 256 bytes (aside from the header, checksum and sysex end bytes) representing 128 points on the graph, each point made up of 2 bytes.<br><br />
Each pair of bytes is a 14-bit signed integer, the integer will range from -8191 to 8191 with 0 being the middle of the graph.<br />
The Controllers tab also makes use of this graph for ADSR1/2 on the integer will range from 0 to 8191.<br />
<br />
When requesting this Graph you must specify the Index of the graph, all blocks have 1 graph (so use 0 as the Graph Index) with the exception of the Controllers which has 2 graphs, ADSR1 Index is 0, ADSR2 Index is 1.<br />
<br />
You MUST send [[#SET_TARGET_BLOCK|SET_TARGET_BLOCK]] before requesting the graph since the graph request does not include a block id.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
:0xdd Graph Index (0 for most blocks, see the above info)<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x36 Function ID (0x36)<br />
<br />
:256 bytes to follow, representing 128 14-bit Signed Integers<br />
<br />
:0xdd Point 1 bits 6-0<br />
:0xdd Point 1 bits 13-7<br />
<br />
:0xdd Point 2 bits 6-0<br />
:0xdd Point 2 bits 13-7<br />
<br />
:0xdd Point 3 bits 6-0<br />
:0xdd Point 3 bits 13-7<br />
<br />
:...<br />
<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
<br />
<br />
=MIDI SysEx: calculating the SysEx Checksum=<br />
As mentioned above, the Axe-FX II units require a Checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the Checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the Checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the Checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded Checksum byte 0 for IR data <br />
:0xdd encoded Checksum byte 1 for IR data <br />
:0xdd encoded Checksum byte 2 for IR data <br />
:0xdd encoded Checksum byte 3 for IR data <br />
:0xdd encoded Checksum byte 4 for IR data <br />
:0xdd Checksum<br />
:0xF7 SysEx End<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43359
MIDI SysEx
2017-05-21T21:45:23Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [https://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Functions=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to include a parameter value with your message but this value can be 0.<br />
<br />
To convert these bytes to decimal and vice-versa see [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_TAP_TEMPO==<br />
If you want to send a BPM value to the Axe-Fx II/AX8 you can do this via Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will send the parameter to the "CONTROLLERS" Block (ID 141), Parameter ID 32, and the value would be a number between 30 and 250<br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_BLOCK_BYPASS_STATE==<br />
You can Bypass/Engage a block using Function [[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|0x02 GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]].<br />
To do this you will use the Block ID that you want to bypass, Parameter ID 255, and the value would be 0 to Engage and 1 to Bypass<br />
<br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43352
MIDI SysEx
2017-05-21T21:05:50Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x09<br />
|[[#SET_PRESET_NAME|SET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<br><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43351
MIDI SysEx
2017-05-21T21:04:34Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x09<br />
|[[#SET_PRESET_NAME|SET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
To convert these bytes to the decimal value and visa-versa read [[#MIDI_Sysex:_converting_bytes_to_decimal_and_vise_versa_and_more|MIDI Sysex: converting bytes to decimal and vise versa and more]]<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43346
MIDI SysEx
2017-05-21T20:34:58Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x09<br />
|[[#SET_PRESET_NAME|SET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name sent as an Ascii byte<br />
:...<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43345
MIDI SysEx
2017-05-21T20:33:27Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x09<br />
|[[#SET_PRESET_NAME|SET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x09)<br />
:0xdd Each letter of the preset name as a byte (ASCII)<br />
:...<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responds with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Blocks & Parameters IDs=<br />
Read this: [[MIDI SysEx blocks and parameters IDs]].<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43339
MIDI SysEx
2017-05-21T20:18:06Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Block IDs (as of Quantum 8.02)=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|140<br />
|Output<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
=MIDI SysEx: Axe Fx II/XL/XL+ Block Parameter IDs (as of Quantum 8.02)=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|0: HARD<br>1: SOFT<br>2: SOFTER<br>3: SOFTEST<br><br />
|-<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|0: RMS<br>1: PEAK<br>2: RMS+PEAK<br>3: FAST RMS<br><br />
|-<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|0: BLOCK L+R<br>1: ROW 1<br>2: ROW 2<br>3: ROW 3<br>4: ROW 4<br>5: INPUT 1<br>6: INPUT 2<br>7: BLOCK L<br>8: BLOCK R<br><br />
|-<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|0: STUDIO COMP<br>1: PEDAL COMP 1<br>2: PEDAL COMP 2<br>3: DYNAMICS<br>4: OPTICAL 1<br>5: OPTICAL 2<br><br />
|-<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|0: INSTRUMENT<br>1: LINE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|0: 10 BAND CONST Q<br>1: 8 BAND CONST Q<br>2: 7 BAND CONST Q<br>3: 5 BAND CONST Q<br>4: 10 BAND VAR Q<br>5: 8 BAND VAR Q<br>6: 7 BAND VAR Q<br>7: 5 BAND VAR Q<br>8: 5 BAND PASSIVE<br>9: 4 BAND PASSIVE<br>10: 3 BAND PASSIVE<br>11: 3 BAND CONSOLE<br><br />
|-<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|0: SHELVING<br>1: PEAKING<br>2: BLOCKING<br>3: SHELVING2<br><br />
|-<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|0: SHELVING<br>1: PEAKING<br>2: BLOCKING<br>3: SHELVING2<br><br />
|-<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|0: PEAKING<br>1: SHELVING<br>2: SHELVING2<br><br />
|-<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|0: PEAKING<br>1: SHELVING<br>2: SHELVING2<br><br />
|-<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: 59 BASSGUY<br>1: 65 BASSGUY NRML<br>2: VIBRATO VERB<br>3: DELUXE VERB VIB<br>4: DOUBLE VERB VIB<br>5: JR BLUES<br>6: CLASS-A 15W TB<br>7: CLASS-A 30W<br>8: CLASS-A 30W TB<br>9: BRIT JM45<br>10: PLEXI 50W NRML<br>11: PLEXI 50W HI 1<br>12: 1987X NORMAL<br>13: 1987X TREBLE<br>14: BRIT 800<br>15: BRIT SUPER<br>16: HIPOWER NORMAL<br>17: HIPOWER BRILLNT<br>18: USA CLEAN<br>19: USA PRE CLEAN<br>20: USA RHYTHM<br>21: USA IIC+<br>22: USA IIC+ BRIGHT<br>23: USA LEAD<br>24: USA LEAD BRT<br>25: RECTO2 ORG VNTG<br>26: RECTO2 ORG MDRN<br>27: RECTO2 RED VNTG<br>28: RECTO2 RED MDRN<br>29: EURO BLUE<br>30: EURO RED<br>31: SHIVER CLEAN<br>32: SHIVER LEAD<br>33: EURO UBER<br>34: SOLO 99 CLEAN<br>35: SOLO 100 RHY<br>36: SOLO 100 LEAD<br>37: FRIEDMAN BE V1<br>38: FRIEDMAN HBE V1<br>39: PVH 6160 BLOCK<br>40: MR Z MZ-38<br>41: CA3+ RHY<br>42: CA3+ LEAD<br>43: WRECKER ROCKET<br>44: CORNCOB M50<br>45: CA OD-2<br>46: FRYETTE D60 L<br>47: FRYETTE D60 M<br>48: BRIT BROWN<br>49: CITRUS RV50<br>50: JAZZ 120<br>51: ENERGYBALL<br>52: ODS-100 CLEAN<br>53: ODS-100 HRM<br>54: FAS RHYTHM<br>55: FAS LEAD 1<br>56: FAS LEAD 2<br>57: FAS MODERN<br>58: DAS METALL<br>59: BRIT PRE<br>60: BUTTERY<br>61: BOUTIQUE 1<br>62: BOUTIQUE 2<br>63: CAMERON CCV 1A<br>64: CAMERON CCV 2A<br>65: SV BASS<br>66: TUBE PRE<br>67: FAS BROWN<br>68: BIG HAIR<br>69: SOLO 99 LEAD<br>70: SUPERTWEED<br>71: TX STAR LEAD<br>72: FAS WRECK<br>73: BRIT JVM OD1 OR<br>74: BRIT JVM OD2 OR<br>75: FAS 6160<br>76: CALI LEGGY<br>77: USA LEAD +<br>78: USA LEAD BRT +<br>79: PRINCE TONE<br>80: BLANKNSHP LEEDS<br>81: 5153 100W GREEN<br>82: 5153 100W BLUE<br>83: 5153 100W RED<br>84: SOLO 88 RHYTHM<br>85: DIV/13 CJ<br>86: HERBIE CH2-<br>87: HERBIE CH2+<br>88: HERBIE CH3<br>89: DIRTY SHIRLEY 1<br>90: DIZZY V4 BLUE 2<br>91: DIZZY V4 BLUE 3<br>92: DIZZY V4 BLUE 4<br>93: SUHR BADGER 18<br>94: SUHR BADGER 30<br>95: PRINCE TONE NR<br>96: SUPREMO TREM<br>97: ATOMICA LOW<br>98: ATOMICA HIGH<br>99: DELUXE TWEED<br>100: SPAWN ROD OD2-1<br>101: SPAWN ROD OD2-2<br>102: SPAWN ROD OD2-3<br>103: BRIT SILVER<br>104: SPAWN NITROUS 2<br>105: FAS CRUNCH<br>106: TWO STONE J35 1<br>107: FOX ODS<br>108: HOT KITTY<br>109: BAND-COMMANDER<br>110: SUPER VERB VIB<br>111: VIBRA-KING<br>112: GIBTONE SCOUT<br>113: PVH 6160+ LD<br>114: SOLO 100 CLEAN<br>115: USA PRE LD2 GRN<br>116: USA PRE LD2 YLW<br>117: CA3+ CLEAN<br>118: FOX ODS DEEP<br>119: BRIT JVM OD1 GN<br>120: BRIT JVM OD2 GN<br>121: VIBRATO LUX<br>122: BRIT 800 MOD<br>123: NUCLEAR-TONE<br>124: BLUDOJAI CLEAN<br>125: BLUDOJAI LD PAB<br>126: PLEXI 100W HIGH<br>127: PLEXI 100W NRML<br>128: RUBY ROCKET<br>129: AC-20 EF86 B<br>130: PRINCE TONE REV<br>131: COMET CONCOURSE<br>132: FAS MODERN II<br>133: CA TRIPTIK MDRN<br>134: CA TRIPTIK CLSC<br>135: CA TRIPTIK CLN<br>136: THORDENDAL VINT<br>137: THORDENDAL MDRN<br>138: ODS-100 HRM MID<br>139: EURO BLUE MDRN<br>140: EURO RED MDRN<br>141: PLEXI 50W JUMP<br>142: AC-20 EF86 T<br>143: COMET 60<br>144: HIPOWER JUMPED<br>145: PLEXI 100W JUMP<br>146: BRIT JM45 JUMP<br>147: 1987X JUMP<br>148: RECTO1 ORG VNTG<br>149: RECTO1 RED<br>150: ODS-100 FORD 1<br>151: BOGFISH STRATO<br>152: BOGFISH BROWN<br>153: 5F1 TWEED<br>154: WRECKER EXPRESS<br>155: TWO STONE J35 2<br>156: ODS-100 FORD 2<br>157: MR Z MZ-8<br>158: CAR ROAMER<br>159: USA SUB BLUES<br>160: WRECKER LVRPOOL<br>161: CITRUS TERRIER<br>162: CITRUS A30 CLN<br>163: CITRUS A30 DRTY<br>164: DIV/13 FT37 LO<br>165: DIV/13 FT37 HI<br>166: MATCHBOX D-30<br>167: FAS CLASS-A<br>168: USA BASS 400 1<br>169: USA BASS 400 2<br>170: CITRUS BASS 200<br>171: FAS BASS<br>172: TREMOLO LUX<br>173: FAS BROOTALZ<br>174: RECTO1 ORG MDRN<br>175: ANGLE SEVERE 1<br>176: ANGLE SEVERE 2<br>177: USA PRE LD2 RED<br>178: USA PRE LD1 RED<br>179: TX STAR CLEAN<br>180: AC-20 12AX7 T<br>181: VIBRATO VERB AA<br>182: VIBRATO VERB AB<br>183: CA TUCANA LEAD<br>184: JR BLUES FAT<br>185: SOLO 88 LEAD<br>186: BRIT AFS100 1<br>187: BRIT AFS100 2<br>188: CLASS-A 30W HOT<br>189: DIZZY V4 SLVR 2<br>190: DIZZY V4 SLVR 3<br>191: DIZZY V4 SLVR 4<br>192: 1959SLP NORMAL<br>193: 1959SLP TREBLE<br>194: 1959SLP JUMP<br>195: FAS MODERN III<br>196: ODS-100 FORD MD<br>197: MR Z HWY 66<br>198: 6G4 SUPER<br>199: 6G12 CONCERT<br>200: 65 BASSGUY BASS<br>201: VIBRA-KING FAT<br>202: SPAWN ROD OD1-1<br>203: SPAWN ROD OD1-2<br>204: SPAWN ROD OD1-3<br>205: CA TUCANA CLN<br>206: BRIT JVM OD1 RD<br>207: BRIT JVM OD2 RD<br>208: CAMERON CCV 1B<br>209: CAMERON CCV 2B<br>210: CAMERON CCV 2C<br>211: CAMERON CCV 2D<br>212: FRIEDMAN SM BOX<br>213: 5153 50W BLUE<br>214: DIV/13 CJ BOOST<br>215: USA IIC+ DEEP<br>216: USA IIC+ BRT/DP<br>217: 5F8 TWEED<br>218: DOUBLE VERB SF<br>219: VIBRATO VERB CS<br>220: JMPRE-1 OD1<br>221: JMPRE-1 OD2<br>222: JMPRE-1 OD1 BS<br>223: JMPRE-1 OD2 BS<br>224: DELUXE VERB NRM<br>225: DOUBLE VERB NRM<br>226: SUPER VERB NRM<br>227: BLUDOJAI LD 2<br>228: PLEXI 50W 6550<br>229: FAS HOT ROD<br>230: PVH 6160+ RHY B<br>231: PVH 6160+ RHY<br>232: SOLO 88 CLEAN<br>233: CLASS-A 30W BRT<br>234: PLEXI 50W HI 2<br>235: SPAWN NITROUS 1<br>236: RUBY ROCKET BRT<br>237: AC-20 12AX7 B<br>238: PLEXI 100W 1970<br>239: JS410 LEAD OR<br>240: JS410 LEAD RD<br>241: JS410 CRUNCH OR<br>242: JS410 CRUNCH RD<br>243: FRIEDMAN BE V2<br>244: FRIEDMAN HBE V2<br>245: DWEEZIL'S B-MAN<br>246: FRIEDMAN BE<br>247: FRIEDMAN HBE<br>248: USA IIC++<br>249: LEGATO 100<br>250: CAPT HOOK 2B<br>251: CAPT HOOK 3B<br>252: CAPT HOOK 2A<br>253: CAPT HOOK 3A<br>254: CAPT HOOK 1A<br>255: CAPT HOOK 1B<br>256: DIRTY SHIRLEY 2<br>257: BRIT 800 #34<br>258: 5F1 TWEED EC<br><br />
|-<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|0: PRE<br>1: POST<br>2: MID<br>3: END<br><br />
|-<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|0: LEFT<br>1: RIGHT<br>2: SUM L+R<br><br />
|-<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|0: LEFT<br>1: RIGHT<br>2: SUM L+R<br><br />
|-<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|0: ACTIVE<br>1: DEFAULT<br>2: BROWNFACE<br>3: BLACKFACE<br>4: BASSGUY<br>5: TOP BOOST<br>6: PLEXI<br>7: BOUTIQUE<br>8: HI POWER<br>9: USA NORMAL<br>10: USA FAT<br>11: RECTO1 ORG<br>12: RECTO1 RED<br>13: SKYLINE<br>14: GERMAN<br>15: JR BLUES<br>16: WRECKER 1<br>17: NEUTRAL<br>18: CA3+SE<br>19: FREYER D60<br>20: MR Z 38 SR<br>21: EURO UBER<br>22: PVH 6160<br>23: SOLO 100<br>24: CORNCOB<br>25: XTC<br>26: CAROLANN<br>27: CITRUS<br>28: BRIT JM45<br>29: USA RHY<br>30: RECTO2 ORG<br>31: RECTO2 RED<br>32: SHIVER CLN<br>33: CAMERON<br>34: BRIT JVM 0D1<br>35: BRIT JVM 0D2<br>36: 5153 GREEN<br>37: 5153 BLUE<br>38: 5153 RED<br>39: BRIT SUPER<br>40: DIV13 CJ<br>41: BADGER 18<br>42: ATOMICA<br>43: SPAWN<br>44: BADGER 30<br>45: BRIT SILVER<br>46: SUPER VERB<br>47: HOT KITTY<br>48: VIBRATO-KING<br>49: GIBTONE SCOUT<br>50: CA3+SE CLEAN<br>51: BF FIXED MID<br>52: GERMAN V4<br>53: VIBRATO-LUX<br>54: DIRTY SHIRLEY<br>55: PLEXI 100W<br>56: RUBY ROCKET BRT<br>57: CONCOURSE<br>58: TRIPTIK LD<br>59: TRIPTIK CLN<br>60: JAZZ 120<br>61: BOGFISH<br>62: WRECKER 2<br>63: SKYLINE DEEP<br>64: USA SUB BLUES<br>65: WRECKER LVRPOOL<br>66: CITRUS A30 CLN<br>67: CITRUS A30 DRT<br>68: CAR ROAMER<br>69: USA BASS<br>70: CITRUS BASS<br>71: STUDIO<br>72: BRIT 800<br>73: RECTO1 ORG MDRN<br>74: ANGLE SEVERE 1<br>75: ANGLE SEVERE 2<br>76: USA PRE LD1 RED<br>77: RECTO ORG BRT<br>78: RECTO RED BRT<br>79: VIBROVERB AA<br>80: PVH 6160 II LD<br>81: RUMBLE HRM<br>82: MR Z HWY 66<br>83: SUPER 6G4<br>84: 65 BASSMAN BASS<br>85: FREIDMAN<br>86: BAND-COMMANDER<br>87: USA PRE CLEAN<br>88: TUCANA CLEAN<br>89: FRIEDMAN SM BOX<br>90: TX STAR<br>91: USA IIC+<br>92: THORDENDAL<br>93: SOLO 99<br>94: BLUDOJAI<br>95: HERBIE<br>96: PVH 6160 II RHY<br>97: SOLO 88 CLEAN<br>98: JS410<br>99: JS410 MIDSHIFT<br>100: RUBY ROCKET<br>101: USA IIC++<br>102: LEGATO 100<br>103: HOOK EDGE<br>104: HOOK NO EDGE<br>105: HOOK CLEAN 1<br>106: HOOK CLEAN 2<br>107: SOLO 88<br><br />
|-<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|0: PRE-PI<br>1: POST-PI<br>2: PRE-TRIODE<br><br />
|-<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|0: OFF<br>1: AUTH<br>2: IDEAL<br><br />
|-<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|0: IDEAL TETRODE<br>1: IDEAL PENTODE<br>2: EL34/6CA7<br>3: EL84/6BQ5<br>4: 6L6/5881<br>5: 6V6<br>6: KT66<br>7: KT88<br>8: 6550<br>9: 6973<br>10: 6AQ5<br>11: 300B<br><br />
|-<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|0: 12AX7A SYL<br>1: ECC83<br>2: 7025<br>3: 12AX7A JJ<br>4: ECC803S<br>5: EF86<br>6: 12AX7A RCA<br>7: 12AX7A<br>8: 12AX7B<br><br />
|-<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|0: AC<br>1: DC<br><br />
|-<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|0: 8 BAND VAR Q<br>1: 7 BAND VAR Q<br>2: 5 BAND (MARK)<br>3: 8 BAND CONST Q<br>4: 7 BAND CONST Q<br>5: 5 BAND CONST Q<br>6: 5 BAND PASSIVE<br>7: 4 BAND PASSIVE<br>8: 3 BAND PASSIVE<br>9: 3 BAND CONSOLE<br><br />
|-<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|0: SHELVING<br>1: PEAKING<br>2: DYNAMIC<br><br />
|-<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|0: OUTPUT<br>1: FEEDBACK<br><br />
|-<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|0: POST P.A.<br>1: PRE P.A.<br><br />
|-<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|0: AUTHENTIC<br>1: IDEAL<br><br />
|-<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|1<br />
|MIC<br />
|select<br />
|0: NONE<br>1: 57 DYN<br>2: 58 DYN<br>3: 421 DYN<br>4: 87A COND<br>5: U87 COND<br>6: E609 DYN<br>7: RE16 DYN<br>8: R121 RIB<br>9: D112 DYN<br>10: 67 COND<br>11: NULL<br>12: INVERT<br><br />
|-<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|3<br />
|MIC R<br />
|select<br />
|0: NONE<br>1: 57 DYN<br>2: 58 DYN<br>3: 421 DYN<br>4: 87A COND<br>5: U87 COND<br>6: E609 DYN<br>7: RE16 DYN<br>8: R121 RIB<br>9: D112 DYN<br>10: 67 COND<br>11: NULL<br>12: INVERT<br><br />
|-<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|0: HI-/ULTRA-RES<br>1: NORMAL RES<br>2: STEREO<br>3: STEREO ULTRARES<br><br />
|-<br />
|CAB<br />
|14<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|15<br />
|SATURATION<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|16<br />
|ROOM LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|17<br />
|ROOM SIZE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|18<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|21<br />
|SPEAKER SIZE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|23<br />
|AIR<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|24<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|25<br />
|AIR FREQ<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|26<br />
|DELAY L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|0: STEREO<br>1: LEFT<br>2: RIGHT<br>3: SUM L+R<br><br />
|-<br />
|CAB<br />
|31<br />
|PREAMP TYPE<br />
|select<br />
|0: NONE<br>1: TUBE<br>2: BIPOLAR<br>3: FET I<br>4: FET II<br>5: TRANSFORMER<br>6: TAPE 70us<br>7: TAPE 50us<br>8: TAPE 35us<br>9: VINTAGE<br>10: MODERN<br>11: EXCITER<br><br />
|-<br />
|CAB<br />
|32<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|33<br />
|MID<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|34<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|35<br />
|PREAMP MODE<br />
|select<br />
|0: ECONOMY<br>1: HIGH QUALITY<br><br />
|-<br />
|CAB<br />
|36<br />
|DEPHASE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|0: 6 dB/OCT<br>1: 12 dB/OCT<br><br />
|-<br />
|CAB<br />
|38<br />
|MOTOR TIME CONSTANT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: SMALL ROOM<br>1: MEDIUM ROOM<br>2: LARGE ROOM<br>3: SMALL HALL<br>4: MEDIUM HALL<br>5: LARGE HALL<br>6: SMALL CHAMBER<br>7: MEDIUM CHAMBER<br>8: LARGE CHAMBER<br>9: SMALL PLATE<br>10: MEDIUM PLATE<br>11: LARGE PLATE<br>12: SMALL CATHEDRAL<br>13: MED. CATHEDRAL<br>14: LARGE CATHEDRAL<br>15: SMALL SPRING<br>16: MEDIUM SPRING<br>17: LARGE SPRING<br>18: CAVERN<br>19: STONE QUARRY<br>20: STUDIO<br>21: AMBIENCE<br>22: CONCERT HALL<br>23: LARGE DEEP HALL<br>24: REC STUDIO C<br>25: NORTH CHURCH<br>26: SOUTH CHURCH<br>27: LONDON PLATE<br>28: SUN PLATE<br>29: HUGE ROOM<br>30: DRUM ROOM<br>31: HALLWAY<br>32: TUNNEL<br>33: DEEP CHAMBER<br>34: LG WOODEN ROOM<br>35: GYMNASIUM<br>36: ASYLUM HALL<br>37: DEEP SPACE<br>38: REC STUDIO A<br>39: LG TILED ROOM<br>40: VOCAL PLATE<br>41: WIDE HALL<br>42: RICH HALL<br><br />
|-<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|0: NORMAL<br>1: HIGH<br><br />
|-<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO<br>1: DIGITAL STEREO<br>2: ANALOG MONO<br>3: ANALOG STEREO<br>4: MONO TAPE<br>5: STEREO TAPE<br>6: PING-PONG<br>7: DUAL DELAY<br>8: REVERSE DELAY<br>9: SWEEP DELAY<br>10: DUCKING DELAY<br>11: VINTAGE DIGITAL<br>12: 2290 W/ MOD<br>13: AMBIENT STEREO<br>14: DELUXE MIND GUY<br>15: MONO BBD<br>16: STEREO BBD<br>17: LO-FI TAPE<br><br />
|-<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|0: MONO<br>1: STEREO<br>2: PING-PONG<br>3: DUAL<br>4: REVERSE<br>5: SWEEP<br>6: TAPE<br><br />
|-<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|0: 6 dB/OCT<br>1: 12 dB/OCT<br>2: 24 dB/OCT<br>3: 36 dB/OCT<br>4: 48 dB/OCT<br><br />
|-<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|0: BOTH<br>1: LEFT<br>2: RIGHT<br><br />
|-<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|0: BOTH<br>1: LEFT<br>2: RIGHT<br><br />
|-<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|0: LOW<br>1: HIGH<br><br />
|-<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|0: QUAD-TAP<br>1: PLEX DELAY<br>2: PLEX DETUNE<br>3: PLEX SHIFT<br>4: BAND DELAY<br>5: QUAD-SERIES<br>6: TEN-TAP DLY<br>7: RHYTHM TAP<br>8: DIFFUSOR<br>9: QUAD TAPE DLY<br><br />
|-<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|0: FORWARD<br>1: REVERSE<br><br />
|-<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|0: 1<br>1: 2<br>2: 3<br>3: 4<br><br />
|-<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|0: 1<br>1: 2<br>2: 3<br>3: 4<br><br />
|-<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|0: MONO<br>1: STEREO<br><br />
|-<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|0: CONSTANT<br>1: INCREASING<br>2: DECREASING<br>3: UP / DOWN<br>4: DOWN / UP<br>5: SINE<br><br />
|-<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO<br>1: DIGITAL STEREO<br>2: ANALOG MONO<br>3: ANALOG STEREO<br>4: JAPAN CE-2<br>5: WARM STEREO<br>6: 80'S STYLE<br>7: TRIANGLE CHORUS<br>8: 8-VOICE STEREO<br>9: VINTAGE TAPE<br>10: DIMENSION 1<br>11: DIMENSION 2<br>12: 4-VOICE ANALOG<br><br />
|-<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|0: OFF<br>1: LOW<br>2: HIGH<br><br />
|-<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|0: OFF<br>1: LOW<br>2: MED<br>3: HIGH<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO<br>1: DIGITAL STEREO<br>2: ANALOG MONO<br>3: ANALOG STEREO<br>4: THRU-ZERO<br>5: STEREO JET<br>6: ZERO FLANGER<br>7: POP FLANGER<br><br />
|-<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|0: OFF<br>1: LOW<br>2: MED<br>3: HIGH<br><br />
|-<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO<br>1: DIGITAL STEREO<br>2: SCRIPT 45<br>3: SCRIPT 90<br>4: BLOCK 90<br>5: CLASSIC VIBE<br>6: STEREO 8-STAGE<br>7: BARBERPOLE<br><br />
|-<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|0: 2<br>1: 4<br>2: 6<br>3: 8<br>4: 10<br>5: 12<br><br />
|-<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|0: NORMAL<br>1: VIBE<br>2: BARBERPOLE<br><br />
|-<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|0: UP<br>1: DOWN<br><br />
|-<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|0: OFF<br>1: 0 DEG<br>2: 90 DEG<br>3: 180 DEG<br>4: 270 DEG<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: FAS STANDARD<br>1: CLYDE<br>2: CRY BABE<br>3: VX846<br>4: COLOR-TONE<br>5: FUNK<br>6: MORTAL<br>7: VX845<br><br />
|-<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|0: LINEAR<br>1: LOG 30A<br>2: LOG 20A<br>3: LOG 15A<br>4: LOG 10A<br>5: LOG 5A<br><br />
|-<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|0: AAA<br>1: EEE<br>2: III<br>3: OHH<br>4: OOO<br>5: EHH<br>6: AHH<br>7: AWW<br>8: UHH<br>9: ERR<br><br />
|-<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|0: AAA<br>1: EEE<br>2: III<br>3: OHH<br>4: OOO<br>5: EHH<br>6: AHH<br>7: AWW<br>8: UHH<br>9: ERR<br><br />
|-<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|0: AAA<br>1: EEE<br>2: III<br>3: OHH<br>4: OOO<br>5: EHH<br>6: AHH<br>7: AWW<br>8: UHH<br>9: ERR<br><br />
|-<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|0: LINEAR<br>1: LOG 30A<br>2: LOG 20A<br>3: LOG 15A<br>4: LOG 10A<br>5: LOG 5A<br><br />
|-<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|0: STEREO<br>1: LEFT ONLY<br>2: RIGHT ONLY<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: TREMOLO<br>1: PANNER<br><br />
|-<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DETUNE<br>1: FIXED HARM<br>2: INTEL HARM<br>3: CL. WHAMMY<br>4: OCTAVE DIV<br>5: CRYSTALS<br>6: AD. WHAMMY<br>7: ARPEGGIATOR<br>8: CUST. SHIFT<br><br />
|-<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|0: UP 1 OCT<br>1: DOWN 1 OCT<br>2: UP 2 OCT<br>3: DOWN 2 OCT<br>4: UP|DN 1 OCT<br>5: UP|DN 2 OCT<br><br />
|-<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|0: A <br>1: Bb<br>2: B <br>3: C <br>4: Db<br>5: D <br>6: Eb<br>7: E <br>8: F <br>9: Gb<br>10: G <br>11: Ab<br><br />
|-<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|0: IONIAN MAJ<br>1: DORIAN<br>2: PHRYGIAN<br>3: LYDIAN<br>4: MIXOLYDIAN<br>5: AEOLIAN MIN<br>6: LOCRIAN<br>7: MEL. MINOR<br>8: HARM. MINOR<br>9: DIMINISHED<br>10: WHOLE TONE<br>11: DOM. SEVEN<br>12: DIM. WHOLE<br>13: PENTA. MAJ<br>14: PENTA. MIN<br>15: BLUES<br>16: CHROMATIC<br>17: CUSTOM<br><br />
|-<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|0: SMOOTH<br>1: STEPPED<br><br />
|-<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|0: OFF<br>1: POLY<br>2: MONO<br><br />
|-<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|0: DUAL<br>1: BOTH<br>2: PING-PONG<br><br />
|-<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0: 0<br>1: 1<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br><br />
|-<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0: 0<br>1: 1<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br>9: 9<br>10: 10<br>11: 11<br>12: 12<br>13: 13<br>14: 14<br>15: 15<br>16: 16<br>17: 17<br>18: 18<br>19: 19<br>20: 20<br>21: 21<br>22: 22<br>23: 23<br>24: 24<br>25: 25<br>26: 26<br>27: 27<br>28: 28<br>29: 29<br>30: 30<br>31: Infinite<br><br />
|-<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|0: CONSTANT<br>1: INCREASING<br>2: DECREASING<br>3: UP / DOWN<br>4: DOWN / UP<br>5: SINE<br><br />
|-<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|0: CONSTANT<br>1: INCREASING<br>2: DECREASING<br>3: UP / DOWN<br>4: DOWN / UP<br>5: SINE<br><br />
|-<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|0: GLOBAL<br>1: LOCAL<br><br />
|-<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|0: MONO<br>1: STEREO<br><br />
|-<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: NULL<br>1: LOWPASS<br>2: BANDPASS<br>3: HIGHPASS<br>4: LOWSHELF<br>5: HIGHSHLF<br>6: PEAKING<br>7: NOTCH<br>8: TILT EQ<br>9: LOWSHELF2<br>10: HIGHSHLF2<br>11: PEAKING2<br><br />
|-<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|0: 2nd<br>1: 4th<br><br />
|-<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: RAT DIST<br>1: PI FUZZ<br>2: TUBE DRV 3-KNOB<br>3: SUPER OD<br>4: TREBLE BOOST<br>5: MID BOOST<br>6: T808 OD<br>7: FAT RAT<br>8: T808 MOD<br>9: OCTAVE DIST<br>10: PLUS DIST<br>11: HARD FUZZ<br>12: FET BOOST<br>13: TAPE DIST<br>14: FULL OD<br>15: BLUES OD<br>16: SHRED DIST<br>17: M-ZONE DIST<br>18: BENDER FUZZ<br>19: BB PRE<br>20: MASTER FUZZ<br>21: FACE FUZZ<br>22: BIT CRUSHER<br>23: ETERNAL LOVE<br>24: ESOTERIC ACB<br>25: ESOTERIC RCB<br>26: ZEN MASTER<br>27: TUBE DRV 4-KNOB<br>28: FAS LED-DRIVE<br>29: SDD PREAMP<br>30: FET PREAMP<br>31: RUCKUS<br>32: MICRO BOOST<br>33: FAS BOOST<br>34: TIMOTHY<br>35: SHIMMER DRIVE<br><br />
|-<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|0: LV TUBE<br>1: HARD<br>2: SOFT<br>3: GERMANIUM<br>4: FW RECT<br>5: HV TUBE<br>6: SILICON<br>7: 4558/DIODE<br>8: LED<br>9: FET<br>10: OP-AMP<br>11: VARIABLE<br>12: NULL<br><br />
|-<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|0: L+R<br>1: LEFT<br>2: RIGHT<br><br />
|-<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|0: MODERN<br>1: CLASSIC<br><br />
|-<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|4<br />
|INPUT Z<br />
|select<br />
|0: AUTO: <br>1: 1M<br>2: 1M+CAP<br>3: 230K<br>4: 230K+CAP<br>5: 90K<br>6: 90K+CAP<br>7: 70K<br>8: 70K+CAP<br>9: 32K<br>10: 32K+CAP<br>11: 22K<br>12: 22K+CAP<br><br />
|-<br />
|INPUT<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|7<br />
|EFFECT TYPE<br />
|select<br />
|0: CLASSIC<br>1: INTELLIGENT<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|0: ONCE<br>1: LOOP<br>2: SUST<br><br />
|-<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|0: ONCE<br>1: LOOP<br>2: SUST<br><br />
|-<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0: 0<br>1: 1<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br>9: 9<br>10: 10<br>11: 11<br>12: 12<br>13: 13<br>14: 14<br>15: 15<br>16: 16<br>17: 17<br>18: 18<br>19: 19<br>20: 20<br>21: 21<br>22: 22<br>23: 23<br>24: 24<br>25: 25<br>26: 26<br>27: 27<br>28: 28<br>29: 29<br>30: 30<br>31: 31<br>32: 32<br><br />
|-<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|55<br />
|A<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|56<br />
|B<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|57<br />
|C<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|58<br />
|D<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|59<br />
|17<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|60<br />
|18<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|61<br />
|19<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|62<br />
|20<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|63<br />
|21<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|64<br />
|22<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|65<br />
|23<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|66<br />
|24<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|67<br />
|25<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|68<br />
|26<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|69<br />
|27<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|70<br />
|28<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|71<br />
|29<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|72<br />
|30<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|73<br />
|31<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|74<br />
|32<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|77<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|78<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|79<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|80<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|81<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|82<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|83<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|84<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|85<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|86<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|87<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|88<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|89<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|90<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|91<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|92<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|93<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|94<br />
|QUANTIZE<br />
|select<br />
|0: <br>1: OFF<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br>9: 9<br>10: 10<br>11: 11<br>12: 12<br>13: 13<br>14: 14<br>15: 15<br>16: 16<br>17: 17<br>18: 18<br>19: 19<br>20: 20<br>21: 21<br>22: 22<br>23: 23<br>24: 24<br>25: 25<br>26: 26<br>27: 27<br>28: 28<br>29: 29<br>30: 30<br>31: 31<br>32: 32<br><br />
|-<br />
|CONTROLLERS<br />
|95<br />
|QUANTIZE<br />
|select<br />
|0: <br>1: OFF<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br>9: 9<br>10: 10<br>11: 11<br>12: 12<br>13: 13<br>14: 14<br>15: 15<br>16: 16<br>17: 17<br>18: 18<br>19: 19<br>20: 20<br>21: 21<br>22: 22<br>23: 23<br>24: 24<br>25: 25<br>26: 26<br>27: 27<br>28: 28<br>29: 29<br>30: 30<br>31: 31<br>32: 32<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAWTOOTH<br>4: RANDOM<br>5: WHT NOISE<br>6: PINK NOISE<br>7: OFF<br><br />
|-<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|0: OFF<br>1: ENV ONLY<br>2: PITCH+ENV<br>3: QUANTIZE<br><br />
|-<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAWTOOTH<br>4: RANDOM<br>5: WHT NOISE<br>6: PINK NOISE<br>7: OFF<br><br />
|-<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|0: OFF<br>1: ENV ONLY<br>2: PITCH+ENV<br>3: QUANTIZE<br><br />
|-<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAWTOOTH<br>4: RANDOM<br>5: WHT NOISE<br>6: PINK NOISE<br>7: OFF<br><br />
|-<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|0: OFF<br>1: ENV ONLY<br>2: PITCH+ENV<br>3: QUANTIZE<br><br />
|-<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|0: BLOCK L+R<br>1: ROW 1<br>2: ROW 2<br>3: ROW 3<br>4: ROW 4<br>5: INPUT 1<br>6: INPUT 2<br><br />
|-<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|0: MONO<br>1: STEREO<br>2: MONO UNDO<br>3: STEREO UNDO<br><br />
|-<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|0: OFF<br>1: QUARTER<br>2: EIGTH<br>3: SIXTEENTH<br><br />
|-<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SND<br />
|0<br />
|SEND LEVEL<br />
|knob<br />
| <br />
|-<br />
|SND<br />
|1<br />
|OUT LEVEL<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RTN<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|RTN<br />
|4<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MIX<br />
|0<br />
|Gain 1<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|1<br />
|Gain 2<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|2<br />
|Gain 3<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|3<br />
|Gain 4<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|4<br />
|Balance 1<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|5<br />
|Balance 2<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|6<br />
|Balance 3<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|7<br />
|Balance 4<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|8<br />
|MASTER<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|9<br />
|OUT MODE<br />
|select<br />
|0: STEREO<br>1: MONO<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MBC<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|2<br />
|Threshold 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|3<br />
|Ratio 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|4<br />
|Attack 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|5<br />
|Release 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|6<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|7<br />
|Detect 1<br />
|select<br />
|0: RMS<br>1: PEAK<br>2: FAST RMS<br><br />
|-<br />
|MBC<br />
|8<br />
|Mute 1<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|9<br />
|Threshold 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|10<br />
|Ratio 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|11<br />
|Attack 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|12<br />
|Release 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|13<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|14<br />
|Detect 2<br />
|select<br />
|0: RMS<br>1: PEAK<br>2: FAST RMS<br><br />
|-<br />
|MBC<br />
|15<br />
|Mute 2<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|16<br />
|Threshold 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|17<br />
|Ratio 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|18<br />
|Attack 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|19<br />
|Release 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|20<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|21<br />
|Detect 3<br />
|select<br />
|0: RMS<br>1: PEAK<br>2: FAST RMS<br><br />
|-<br />
|MBC<br />
|22<br />
|Mute 3<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|24<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|25<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|XVR<br />
|0<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|1<br />
|Freq Multi.<br />
|select<br />
|0: X 1<br>1: X 10<br><br />
|-<br />
|XVR<br />
|2<br />
|Lo Level L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|3<br />
|Hi Level L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|4<br />
|Lo Level R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|5<br />
|Hi Level R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|6<br />
|Lo Pan L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|7<br />
|Hi Pan L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|8<br />
|Lo Pan R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|9<br />
|Hi Pan R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|11<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|12<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MGT<br />
|0<br />
|In Gain<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|2<br />
|Time<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|3<br />
|Number of Taps<br />
|rangeKnob<br />
| <br />
|-<br />
|MGT<br />
|4<br />
|Time Shape<br />
|select<br />
|0: CONSTANT<br>1: INCREASING<br>2: DECREASING<br>3: UP / DOWN<br>4: DOWN / UP<br>5: SINE<br><br />
|-<br />
|MGT<br />
|5<br />
|Time Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|6<br />
|Amplitude Shape<br />
|select<br />
|0: CONSTANT<br>1: INCREASING<br>2: DECREASING<br>3: UP / DOWN<br>4: DOWN / UP<br>5: SINE<br><br />
|-<br />
|MGT<br />
|7<br />
|Alplitude Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|8<br />
|Pan Shape<br />
|select<br />
|0: CONSTANT<br>1: INCREASING<br>2: DECREASING<br>3: UP / DOWN<br>4: DOWN / UP<br>5: SINE<br><br />
|-<br />
|MGT<br />
|9<br />
|Pan Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|10<br />
|Time Randomize<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|11<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|12<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|13<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|14<br />
|Bypass Mode<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|MGT<br />
|15<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|QCH<br />
|0<br />
|Master Time<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|2<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|3<br />
|Master Rate<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|4<br />
|Master Depth<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|5<br />
|Feedback<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|6<br />
|Time 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|7<br />
|Time 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|8<br />
|Time 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|9<br />
|Time 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|10<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|11<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|12<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|13<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|14<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|15<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|16<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|17<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|18<br />
|Depth 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|19<br />
|Depth 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|20<br />
|Depth 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|21<br />
|Depth 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|22<br />
|Morph 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|23<br />
|Morph 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|24<br />
|Morph 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|25<br />
|Morph 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|26<br />
|LFO1 Type<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|QCH<br />
|27<br />
|LFO2 Type<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|QCH<br />
|28<br />
|LFO3 Type<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|QCH<br />
|29<br />
|LFO4 Type<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|QCH<br />
|30<br />
|LFO1 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|31<br />
|LFO2 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|32<br />
|LFO3 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|33<br />
|LFO4 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|34<br />
|M. Depth (LFO4>All)<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|35<br />
|Input Mode<br />
|select<br />
|0: MONO<br>1: STEREO<br><br />
|-<br />
|QCH<br />
|36<br />
|LFO1 Master<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|37<br />
|Wide Mode<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|38<br />
|M. Phase (LFO4)<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|39<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|40<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|41<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|42<br />
|Bypass Mode<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|QCH<br />
|43<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|45<br />
|Hi Cut Frequency<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TMA<br />
|0<br />
|Mode<br />
|select<br />
|0: OFFLINE<br>1: LIVE<br><br />
|-<br />
|TMA<br />
|1<br />
|Amount<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|2<br />
|Smoothing<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|3<br />
|Reference<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|4<br />
|Local<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|6<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|7<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|8<br />
|Bypass Mode<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|TMA<br />
|10<br />
|Ref Source<br />
|select<br />
|0: ROW 1<br>1: ROW 2<br>2: ROW 3<br>3: ROW 4<br>4: INPUT 1<br>5: INPUT 2<br>6: BLK IN<br>7: USB<br><br />
|-<br />
|TMA<br />
|11<br />
|Avg. Time<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|12<br />
|Ref Channel<br />
|select<br />
|0: SUM L+R<br>1: LEFT<br>2: RIGHT<br><br />
|-<br />
|TMA<br />
|13<br />
|Local Channel<br />
|select<br />
|0: SUM L+R<br>1: LEFT<br>2: RIGHT<br><br />
|-<br />
|TMA<br />
|14<br />
|Ref Solo<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|15<br />
|Resolution<br />
|select<br />
|0: LOW<br>1: HIGH<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOC<br />
|0<br />
|Input Select<br />
|select<br />
|0: LEFT<br>1: RIGHT<br><br />
|-<br />
|VOC<br />
|1<br />
|Bands<br />
|select<br />
|0: 4<br>1: 8<br>2: 12<br>3: 16<br><br />
|-<br />
|VOC<br />
|2<br />
|Frequency Min<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|3<br />
|Frequency Max<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|4<br />
|Shift<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|5<br />
|Freeze<br />
|switch<br />
| <br />
|-<br />
|VOC<br />
|6<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|7<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|8<br />
|Resonance<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|9<br />
|Attack<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|10<br />
|Release<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|11<br />
|Highpass Mix In<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|12<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|13<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|14<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|15<br />
|Bypass Mode<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|VOC<br />
|16<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|VOC<br />
|17<br />
|Level 1<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|18<br />
|Level 2<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|19<br />
|Level 3<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|20<br />
|Level 4<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|21<br />
|Level 5<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|22<br />
|Level 6<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|23<br />
|Level 7<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|24<br />
|Level 8<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|25<br />
|Level 9<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|26<br />
|Level 10<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|27<br />
|Level 11<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|28<br />
|Level 12<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|29<br />
|Level 13<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|30<br />
|Level 14<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|31<br />
|Level 15<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|32<br />
|Level 16<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|33<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|34<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|35<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|36<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|37<br />
|Pan 5<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|38<br />
|Pan 6<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|39<br />
|Pan 7<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|40<br />
|Pan 8<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|41<br />
|Pan 9<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|42<br />
|Pan 10<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|43<br />
|Pan 11<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|44<br />
|Pan 12<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|45<br />
|Pan 13<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|46<br />
|Pan 14<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|47<br />
|Pan 15<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|48<br />
|Pan 16<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RES<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: MANUAL<br>1: CHORDAL<br><br />
|-<br />
|RES<br />
|1<br />
|Chord Type<br />
|select<br />
|0: MAJOR<br>1: MAJOR 6<br>2: DOM. 7<br>3: MAJOR 7<br>4: MINOR<br>5: MINOR 6<br>6: MINOR 7<br>7: DIMIN.<br>8: AUGMEN.<br><br />
|-<br />
|RES<br />
|2<br />
|Input Gain<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|3<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|4<br />
|Master Freq<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|5<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|6<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|7<br />
|Master Feedback<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|8<br />
|Master Q<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|9<br />
|Freq 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|10<br />
|Freq 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|11<br />
|Freq 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|12<br />
|Freq 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|13<br />
|FB 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|14<br />
|FB 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|15<br />
|FB 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|16<br />
|FB 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|17<br />
|Filter Loc 1<br />
|select<br />
|0: PRE<br>1: POST<br><br />
|-<br />
|RES<br />
|18<br />
|Filter Loc 2<br />
|select<br />
|0: PRE<br>1: POST<br><br />
|-<br />
|RES<br />
|19<br />
|Filter Loc 3<br />
|select<br />
|0: PRE<br>1: POST<br><br />
|-<br />
|RES<br />
|20<br />
|Filter Loc 4<br />
|select<br />
|0: PRE<br>1: POST<br><br />
|-<br />
|RES<br />
|21<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|22<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|23<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|24<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|25<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|26<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|27<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|28<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|29<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|30<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|31<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|32<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|33<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|34<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|35<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|36<br />
|Bypass Mode<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|RES<br />
|37<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|RES<br />
|39<br />
|Input Mode<br />
|select<br />
|0: MONO<br>1: STEREO<br><br />
|}<br />
=MIDI SysEx: AX8 Block Parameter IDs (as of Quantum 8.02)=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|0: HARD<br>1: SOFT<br>2: SOFTER<br>3: SOFTEST<br><br />
|-<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|0: RMS<br>1: PEAK<br>2: RMS+PEAK<br>3: FAST RMS<br><br />
|-<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|0: BLOCK L+R<br>1: ROW 1<br>2: ROW 2<br>3: ROW 3<br>4: ROW 4<br>5: INPUT 1<br>6: INPUT 2<br>7: BLOCK L<br>8: BLOCK R<br><br />
|-<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|0: STUDIO COMP<br>1: PEDAL COMP 1<br>2: PEDAL COMP 2<br>3: DYNAMICS<br>4: OPTICAL 1<br>5: OPTICAL 2<br><br />
|-<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|0: INSTRUMENT<br>1: LINE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|0: 10 BAND CONST Q<br>1: 8 BAND CONST Q<br>2: 7 BAND CONST Q<br>3: 5 BAND CONST Q<br>4: 10 BAND VAR Q<br>5: 8 BAND VAR Q<br>6: 7 BAND VAR Q<br>7: 5 BAND VAR Q<br>8: 5 BAND PASSIVE<br>9: 4 BAND PASSIVE<br>10: 3 BAND PASSIVE<br>11: 3 BAND CONSOLE<br><br />
|-<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|0: SHELVING<br>1: PEAKING<br>2: BLOCKING<br>3: SHELVING2<br><br />
|-<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|0: SHELVING<br>1: PEAKING<br>2: BLOCKING<br>3: SHELVING2<br><br />
|-<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|0: PEAKING<br>1: SHELVING<br>2: SHELVING2<br><br />
|-<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|0: PEAKING<br>1: SHELVING<br>2: SHELVING2<br><br />
|-<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: 59 BASSGUY<br>1: 65 BASSGUY NRML<br>2: VIBRATO VERB<br>3: DELUXE VERB VIB<br>4: DOUBLE VERB VIB<br>5: JR BLUES<br>6: CLASS-A 15W TB<br>7: CLASS-A 30W<br>8: CLASS-A 30W TB<br>9: BRIT JM45<br>10: PLEXI 50W NRML<br>11: PLEXI 50W HI 1<br>12: 1987X NORMAL<br>13: 1987X TREBLE<br>14: BRIT 800<br>15: BRIT SUPER<br>16: HIPOWER NORMAL<br>17: HIPOWER BRILLNT<br>18: USA CLEAN<br>19: USA PRE CLEAN<br>20: USA RHYTHM<br>21: USA IIC+<br>22: USA IIC+ BRIGHT<br>23: USA LEAD<br>24: USA LEAD BRT<br>25: RECTO2 ORG VNTG<br>26: RECTO2 ORG MDRN<br>27: RECTO2 RED VNTG<br>28: RECTO2 RED MDRN<br>29: EURO BLUE<br>30: EURO RED<br>31: SHIVER CLEAN<br>32: SHIVER LEAD<br>33: EURO UBER<br>34: SOLO 99 CLEAN<br>35: SOLO 100 RHY<br>36: SOLO 100 LEAD<br>37: FRIEDMAN BE V1<br>38: FRIEDMAN HBE V1<br>39: PVH 6160 BLOCK<br>40: MR Z MZ-38<br>41: CA3+ RHY<br>42: CA3+ LEAD<br>43: WRECKER ROCKET<br>44: CORNCOB M50<br>45: CA OD-2<br>46: FRYETTE D60 L<br>47: FRYETTE D60 M<br>48: BRIT BROWN<br>49: CITRUS RV50<br>50: JAZZ 120<br>51: ENERGYBALL<br>52: ODS-100 CLEAN<br>53: ODS-100 HRM<br>54: FAS RHYTHM<br>55: FAS LEAD 1<br>56: FAS LEAD 2<br>57: FAS MODERN<br>58: DAS METALL<br>59: BRIT PRE<br>60: BUTTERY<br>61: BOUTIQUE 1<br>62: BOUTIQUE 2<br>63: CAMERON CCV 1A<br>64: CAMERON CCV 2A<br>65: SV BASS<br>66: TUBE PRE<br>67: FAS BROWN<br>68: BIG HAIR<br>69: SOLO 99 LEAD<br>70: SUPERTWEED<br>71: TX STAR LEAD<br>72: FAS WRECK<br>73: BRIT JVM OD1 OR<br>74: BRIT JVM OD2 OR<br>75: FAS 6160<br>76: CALI LEGGY<br>77: USA LEAD +<br>78: USA LEAD BRT +<br>79: PRINCE TONE<br>80: BLANKNSHP LEEDS<br>81: 5153 100W GREEN<br>82: 5153 100W BLUE<br>83: 5153 100W RED<br>84: SOLO 88 RHYTHM<br>85: DIV/13 CJ<br>86: HERBIE CH2-<br>87: HERBIE CH2+<br>88: HERBIE CH3<br>89: DIRTY SHIRLEY 1<br>90: DIZZY V4 BLUE 2<br>91: DIZZY V4 BLUE 3<br>92: DIZZY V4 BLUE 4<br>93: SUHR BADGER 18<br>94: SUHR BADGER 30<br>95: PRINCE TONE NR<br>96: SUPREMO TREM<br>97: ATOMICA LOW<br>98: ATOMICA HIGH<br>99: DELUXE TWEED<br>100: SPAWN ROD OD2-1<br>101: SPAWN ROD OD2-2<br>102: SPAWN ROD OD2-3<br>103: BRIT SILVER<br>104: SPAWN NITROUS 2<br>105: FAS CRUNCH<br>106: TWO STONE J35 1<br>107: FOX ODS<br>108: HOT KITTY<br>109: BAND-COMMANDER<br>110: SUPER VERB VIB<br>111: VIBRA-KING<br>112: GIBTONE SCOUT<br>113: PVH 6160+ LD<br>114: SOLO 100 CLEAN<br>115: USA PRE LD2 GRN<br>116: USA PRE LD2 YLW<br>117: CA3+ CLEAN<br>118: FOX ODS DEEP<br>119: BRIT JVM OD1 GN<br>120: BRIT JVM OD2 GN<br>121: VIBRATO LUX<br>122: BRIT 800 MOD<br>123: NUCLEAR-TONE<br>124: BLUDOJAI CLEAN<br>125: BLUDOJAI LD PAB<br>126: PLEXI 100W HIGH<br>127: PLEXI 100W NRML<br>128: RUBY ROCKET<br>129: AC-20 EF86 B<br>130: PRINCE TONE REV<br>131: COMET CONCOURSE<br>132: FAS MODERN II<br>133: CA TRIPTIK MDRN<br>134: CA TRIPTIK CLSC<br>135: CA TRIPTIK CLN<br>136: THORDENDAL VINT<br>137: THORDENDAL MDRN<br>138: ODS-100 HRM MID<br>139: EURO BLUE MDRN<br>140: EURO RED MDRN<br>141: PLEXI 50W JUMP<br>142: AC-20 EF86 T<br>143: COMET 60<br>144: HIPOWER JUMPED<br>145: PLEXI 100W JUMP<br>146: BRIT JM45 JUMP<br>147: 1987X JUMP<br>148: RECTO1 ORG VNTG<br>149: RECTO1 RED<br>150: ODS-100 FORD 1<br>151: BOGFISH STRATO<br>152: BOGFISH BROWN<br>153: 5F1 TWEED<br>154: WRECKER EXPRESS<br>155: TWO STONE J35 2<br>156: ODS-100 FORD 2<br>157: MR Z MZ-8<br>158: CAR ROAMER<br>159: USA SUB BLUES<br>160: WRECKER LVRPOOL<br>161: CITRUS TERRIER<br>162: CITRUS A30 CLN<br>163: CITRUS A30 DRTY<br>164: DIV/13 FT37 LO<br>165: DIV/13 FT37 HI<br>166: MATCHBOX D-30<br>167: FAS CLASS-A<br>168: USA BASS 400 1<br>169: USA BASS 400 2<br>170: CITRUS BASS 200<br>171: FAS BASS<br>172: TREMOLO LUX<br>173: FAS BROOTALZ<br>174: RECTO1 ORG MDRN<br>175: ANGLE SEVERE 1<br>176: ANGLE SEVERE 2<br>177: USA PRE LD2 RED<br>178: USA PRE LD1 RED<br>179: TX STAR CLEAN<br>180: AC-20 12AX7 T<br>181: VIBRATO VERB AA<br>182: VIBRATO VERB AB<br>183: CA TUCANA LEAD<br>184: JR BLUES FAT<br>185: SOLO 88 LEAD<br>186: BRIT AFS100 1<br>187: BRIT AFS100 2<br>188: CLASS-A 30W HOT<br>189: DIZZY V4 SLVR 2<br>190: DIZZY V4 SLVR 3<br>191: DIZZY V4 SLVR 4<br>192: 1959SLP NORMAL<br>193: 1959SLP TREBLE<br>194: 1959SLP JUMP<br>195: FAS MODERN III<br>196: ODS-100 FORD MD<br>197: MR Z HWY 66<br>198: 6G4 SUPER<br>199: 6G12 CONCERT<br>200: 65 BASSGUY BASS<br>201: VIBRA-KING FAT<br>202: SPAWN ROD OD1-1<br>203: SPAWN ROD OD1-2<br>204: SPAWN ROD OD1-3<br>205: CA TUCANA CLN<br>206: BRIT JVM OD1 RD<br>207: BRIT JVM OD2 RD<br>208: CAMERON CCV 1B<br>209: CAMERON CCV 2B<br>210: CAMERON CCV 2C<br>211: CAMERON CCV 2D<br>212: FRIEDMAN SM BOX<br>213: 5153 50W BLUE<br>214: DIV/13 CJ BOOST<br>215: USA IIC+ DEEP<br>216: USA IIC+ BRT/DP<br>217: 5F8 TWEED<br>218: DOUBLE VERB SF<br>219: VIBRATO VERB CS<br>220: JMPRE-1 OD1<br>221: JMPRE-1 OD2<br>222: JMPRE-1 OD1 BS<br>223: JMPRE-1 OD2 BS<br>224: DELUXE VERB NRM<br>225: DOUBLE VERB NRM<br>226: SUPER VERB NRM<br>227: BLUDOJAI LD 2<br>228: PLEXI 50W 6550<br>229: FAS HOT ROD<br>230: PVH 6160+ RHY B<br>231: PVH 6160+ RHY<br>232: SOLO 88 CLEAN<br>233: CLASS-A 30W BRT<br>234: PLEXI 50W HI 2<br>235: SPAWN NITROUS 1<br>236: RUBY ROCKET BRT<br>237: AC-20 12AX7 B<br>238: PLEXI 100W 1970<br>239: JS410 LEAD OR<br>240: JS410 LEAD RD<br>241: JS410 CRUNCH OR<br>242: JS410 CRUNCH RD<br>243: FRIEDMAN BE V2<br>244: FRIEDMAN HBE V2<br>245: DWEEZIL'S B-MAN<br>246: FRIEDMAN BE<br>247: FRIEDMAN HBE<br>248: USA IIC++<br>249: LEGATO 100<br>250: CAPT HOOK 2B<br>251: CAPT HOOK 3B<br>252: CAPT HOOK 2A<br>253: CAPT HOOK 3A<br>254: CAPT HOOK 1A<br>255: CAPT HOOK 1B<br>256: DIRTY SHIRLEY 2<br>257: BRIT 800 #34<br>258: 5F1 TWEED EC<br><br />
|-<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|0: PRE<br>1: POST<br>2: MID<br>3: END<br><br />
|-<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|0: LEFT<br>1: RIGHT<br>2: SUM L+R<br><br />
|-<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|0: LEFT<br>1: RIGHT<br>2: SUM L+R<br><br />
|-<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|0: ACTIVE<br>1: DEFAULT<br>2: BROWNFACE<br>3: BLACKFACE<br>4: BASSGUY<br>5: TOP BOOST<br>6: PLEXI<br>7: BOUTIQUE<br>8: HI POWER<br>9: USA NORMAL<br>10: USA FAT<br>11: RECTO1 ORG<br>12: RECTO1 RED<br>13: SKYLINE<br>14: GERMAN<br>15: JR BLUES<br>16: WRECKER 1<br>17: NEUTRAL<br>18: CA3+SE<br>19: FREYER D60<br>20: MR Z 38 SR<br>21: EURO UBER<br>22: PVH 6160<br>23: SOLO 100<br>24: CORNCOB<br>25: XTC<br>26: CAROLANN<br>27: CITRUS<br>28: BRIT JM45<br>29: USA RHY<br>30: RECTO2 ORG<br>31: RECTO2 RED<br>32: SHIVER CLN<br>33: CAMERON<br>34: BRIT JVM 0D1<br>35: BRIT JVM 0D2<br>36: 5153 GREEN<br>37: 5153 BLUE<br>38: 5153 RED<br>39: BRIT SUPER<br>40: DIV13 CJ<br>41: BADGER 18<br>42: ATOMICA<br>43: SPAWN<br>44: BADGER 30<br>45: BRIT SILVER<br>46: SUPER VERB<br>47: HOT KITTY<br>48: VIBRATO-KING<br>49: GIBTONE SCOUT<br>50: CA3+SE CLEAN<br>51: BF FIXED MID<br>52: GERMAN V4<br>53: VIBRATO-LUX<br>54: DIRTY SHIRLEY<br>55: PLEXI 100W<br>56: RUBY ROCKET BRT<br>57: CONCOURSE<br>58: TRIPTIK LD<br>59: TRIPTIK CLN<br>60: JAZZ 120<br>61: BOGFISH<br>62: WRECKER 2<br>63: SKYLINE DEEP<br>64: USA SUB BLUES<br>65: WRECKER LVRPOOL<br>66: CITRUS A30 CLN<br>67: CITRUS A30 DRT<br>68: CAR ROAMER<br>69: USA BASS<br>70: CITRUS BASS<br>71: STUDIO<br>72: BRIT 800<br>73: RECTO1 ORG MDRN<br>74: ANGLE SEVERE 1<br>75: ANGLE SEVERE 2<br>76: USA PRE LD1 RED<br>77: RECTO ORG BRT<br>78: RECTO RED BRT<br>79: VIBROVERB AA<br>80: PVH 6160 II LD<br>81: RUMBLE HRM<br>82: MR Z HWY 66<br>83: SUPER 6G4<br>84: 65 BASSMAN BASS<br>85: FREIDMAN<br>86: BAND-COMMANDER<br>87: USA PRE CLEAN<br>88: TUCANA CLEAN<br>89: FRIEDMAN SM BOX<br>90: TX STAR<br>91: USA IIC+<br>92: THORDENDAL<br>93: SOLO 99<br>94: BLUDOJAI<br>95: HERBIE<br>96: PVH 6160 II RHY<br>97: SOLO 88 CLEAN<br>98: JS410<br>99: JS410 MIDSHIFT<br>100: RUBY ROCKET<br>101: USA IIC++<br>102: LEGATO 100<br>103: HOOK EDGE<br>104: HOOK NO EDGE<br>105: HOOK CLEAN 1<br>106: HOOK CLEAN 2<br>107: SOLO 88<br><br />
|-<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|0: PRE-PI<br>1: POST-PI<br>2: PRE-TRIODE<br><br />
|-<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|0: OFF<br>1: AUTH<br>2: IDEAL<br><br />
|-<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|0: IDEAL TETRODE<br>1: IDEAL PENTODE<br>2: EL34/6CA7<br>3: EL84/6BQ5<br>4: 6L6/5881<br>5: 6V6<br>6: KT66<br>7: KT88<br>8: 6550<br>9: 6973<br>10: 6AQ5<br>11: 300B<br><br />
|-<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|0: 12AX7A SYL<br>1: ECC83<br>2: 7025<br>3: 12AX7A JJ<br>4: ECC803S<br>5: EF86<br>6: 12AX7A RCA<br>7: 12AX7A<br>8: 12AX7B<br><br />
|-<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|0: AC<br>1: DC<br><br />
|-<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|0: 8 BAND VAR Q<br>1: 7 BAND VAR Q<br>2: 5 BAND (MARK)<br>3: 8 BAND CONST Q<br>4: 7 BAND CONST Q<br>5: 5 BAND CONST Q<br>6: 5 BAND PASSIVE<br>7: 4 BAND PASSIVE<br>8: 3 BAND PASSIVE<br>9: 3 BAND CONSOLE<br><br />
|-<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|0: SHELVING<br>1: PEAKING<br>2: DYNAMIC<br><br />
|-<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|0: OUTPUT<br>1: FEEDBACK<br><br />
|-<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|0: POST P.A.<br>1: PRE P.A.<br><br />
|-<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|0: AUTHENTIC<br>1: IDEAL<br><br />
|-<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|1<br />
|PROX. EFFECT<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|3<br />
|PROX. EFFECT R<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|0: HI-/ULTRA-RES<br>1: NORMAL RES<br>2: STEREO<br>3: STEREO ULTRARES<br><br />
|-<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|26<br />
|DELAY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|0: STEREO<br>1: LEFT<br>2: RIGHT<br>3: SUM L+R<br><br />
|-<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|0: 6 dB/OCT<br>1: 12 dB/OCT<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: SMALL ROOM<br>1: MEDIUM ROOM<br>2: LARGE ROOM<br>3: SMALL HALL<br>4: MEDIUM HALL<br>5: LARGE HALL<br>6: SMALL CHAMBER<br>7: MEDIUM CHAMBER<br>8: LARGE CHAMBER<br>9: SMALL PLATE<br>10: MEDIUM PLATE<br>11: LARGE PLATE<br>12: SMALL CATHEDRAL<br>13: MED. CATHEDRAL<br>14: LARGE CATHEDRAL<br>15: SMALL SPRING<br>16: MEDIUM SPRING<br>17: LARGE SPRING<br>18: CAVERN<br>19: STONE QUARRY<br>20: STUDIO<br>21: AMBIENCE<br>22: CONCERT HALL<br>23: LARGE DEEP HALL<br>24: REC STUDIO C<br>25: NORTH CHURCH<br>26: SOUTH CHURCH<br>27: LONDON PLATE<br>28: SUN PLATE<br>29: HUGE ROOM<br>30: DRUM ROOM<br>31: HALLWAY<br>32: TUNNEL<br>33: DEEP CHAMBER<br>34: LG WOODEN ROOM<br>35: GYMNASIUM<br>36: ASYLUM HALL<br>37: DEEP SPACE<br>38: REC STUDIO A<br>39: LG TILED ROOM<br>40: VOCAL PLATE<br>41: WIDE HALL<br>42: RICH HALL<br><br />
|-<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|0: NORMAL<br>1: HIGH<br><br />
|-<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO<br>1: DIGITAL STEREO<br>2: ANALOG MONO<br>3: ANALOG STEREO<br>4: MONO TAPE<br>5: STEREO TAPE<br>6: PING-PONG<br>7: DUAL DELAY<br>8: REVERSE DELAY<br>9: SWEEP DELAY<br>10: DUCKING DELAY<br>11: VINTAGE DIGITAL<br>12: 2290 W/ MOD<br>13: AMBIENT STEREO<br>14: DELUXE MIND GUY<br>15: MONO BBD<br>16: STEREO BBD<br>17: LO-FI TAPE<br><br />
|-<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|0: MONO<br>1: STEREO<br>2: PING-PONG<br>3: DUAL<br>4: REVERSE<br>5: SWEEP<br>6: TAPE<br><br />
|-<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|0: 6 dB/OCT<br>1: 12 dB/OCT<br>2: 24 dB/OCT<br>3: 36 dB/OCT<br>4: 48 dB/OCT<br><br />
|-<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|0: BOTH<br>1: LEFT<br>2: RIGHT<br><br />
|-<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|0: BOTH<br>1: LEFT<br>2: RIGHT<br><br />
|-<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|0: LOW<br>1: HIGH<br><br />
|-<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|0: QUAD-TAP<br>1: PLEX DELAY<br>2: PLEX DETUNE<br>3: PLEX SHIFT<br>4: BAND DELAY<br>5: QUAD-SERIES<br>6: TEN-TAP DLY<br>7: RHYTHM TAP<br>8: DIFFUSOR<br>9: QUAD TAPE DLY<br><br />
|-<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|0: FORWARD<br>1: REVERSE<br><br />
|-<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|0: 1<br>1: 2<br>2: 3<br>3: 4<br><br />
|-<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|0: 1<br>1: 2<br>2: 3<br>3: 4<br><br />
|-<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|0: MONO<br>1: STEREO<br><br />
|-<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|0: CONSTANT<br>1: INCREASING<br>2: DECREASING<br>3: UP / DOWN<br>4: DOWN / UP<br>5: SINE<br><br />
|-<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO<br>1: DIGITAL STEREO<br>2: ANALOG MONO<br>3: ANALOG STEREO<br>4: JAPAN CE-2<br>5: WARM STEREO<br>6: 80'S STYLE<br>7: TRIANGLE CHORUS<br>8: 8-VOICE STEREO<br>9: VINTAGE TAPE<br>10: DIMENSION 1<br>11: DIMENSION 2<br>12: 4-VOICE ANALOG<br><br />
|-<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|0: OFF<br>1: LOW<br>2: HIGH<br><br />
|-<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|0: OFF<br>1: LOW<br>2: MED<br>3: HIGH<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO<br>1: DIGITAL STEREO<br>2: ANALOG MONO<br>3: ANALOG STEREO<br>4: THRU-ZERO<br>5: STEREO JET<br>6: ZERO FLANGER<br>7: POP FLANGER<br><br />
|-<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|0: OFF<br>1: LOW<br>2: MED<br>3: HIGH<br><br />
|-<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO<br>1: DIGITAL STEREO<br>2: SCRIPT 45<br>3: SCRIPT 90<br>4: BLOCK 90<br>5: CLASSIC VIBE<br>6: STEREO 8-STAGE<br>7: BARBERPOLE<br><br />
|-<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|0: 2<br>1: 4<br>2: 6<br>3: 8<br>4: 10<br>5: 12<br><br />
|-<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|0: NORMAL<br>1: VIBE<br>2: BARBERPOLE<br><br />
|-<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|0: UP<br>1: DOWN<br><br />
|-<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|0: OFF<br>1: 0 DEG<br>2: 90 DEG<br>3: 180 DEG<br>4: 270 DEG<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: FAS STANDARD<br>1: CLYDE<br>2: CRY BABE<br>3: VX846<br>4: COLOR-TONE<br>5: FUNK<br>6: MORTAL<br>7: VX845<br><br />
|-<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|0: LINEAR<br>1: LOG 30A<br>2: LOG 20A<br>3: LOG 15A<br>4: LOG 10A<br>5: LOG 5A<br><br />
|-<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|0: AAA<br>1: EEE<br>2: III<br>3: OHH<br>4: OOO<br>5: EHH<br>6: AHH<br>7: AWW<br>8: UHH<br>9: ERR<br><br />
|-<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|0: AAA<br>1: EEE<br>2: III<br>3: OHH<br>4: OOO<br>5: EHH<br>6: AHH<br>7: AWW<br>8: UHH<br>9: ERR<br><br />
|-<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|0: AAA<br>1: EEE<br>2: III<br>3: OHH<br>4: OOO<br>5: EHH<br>6: AHH<br>7: AWW<br>8: UHH<br>9: ERR<br><br />
|-<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|0: LINEAR<br>1: LOG 30A<br>2: LOG 20A<br>3: LOG 15A<br>4: LOG 10A<br>5: LOG 5A<br><br />
|-<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|0: STEREO<br>1: LEFT ONLY<br>2: RIGHT ONLY<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: TREMOLO<br>1: PANNER<br><br />
|-<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DETUNE<br>1: FIXED HARM<br>2: INTEL HARM<br>3: CL. WHAMMY<br>4: OCTAVE DIV<br>5: CRYSTALS<br>6: AD. WHAMMY<br>7: ARPEGGIATOR<br>8: CUST. SHIFT<br><br />
|-<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|0: UP 1 OCT<br>1: DOWN 1 OCT<br>2: UP 2 OCT<br>3: DOWN 2 OCT<br>4: UP|DN 1 OCT<br>5: UP|DN 2 OCT<br><br />
|-<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|0: A <br>1: Bb<br>2: B <br>3: C <br>4: Db<br>5: D <br>6: Eb<br>7: E <br>8: F <br>9: Gb<br>10: G <br>11: Ab<br><br />
|-<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|0: IONIAN MAJ<br>1: DORIAN<br>2: PHRYGIAN<br>3: LYDIAN<br>4: MIXOLYDIAN<br>5: AEOLIAN MIN<br>6: LOCRIAN<br>7: MEL. MINOR<br>8: HARM. MINOR<br>9: DIMINISHED<br>10: WHOLE TONE<br>11: DOM. SEVEN<br>12: DIM. WHOLE<br>13: PENTA. MAJ<br>14: PENTA. MIN<br>15: BLUES<br>16: CHROMATIC<br>17: CUSTOM<br><br />
|-<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|0: SMOOTH<br>1: STEPPED<br><br />
|-<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|0: OFF<br>1: POLY<br>2: MONO<br><br />
|-<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br>3: MUTE FX IN<br>4: MUTE IN<br><br />
|-<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|0: DUAL<br>1: BOTH<br>2: PING-PONG<br><br />
|-<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0: 0<br>1: 1<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br><br />
|-<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0: 0<br>1: 1<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br>9: 9<br>10: 10<br>11: 11<br>12: 12<br>13: 13<br>14: 14<br>15: 15<br>16: 16<br>17: 17<br>18: 18<br>19: 19<br>20: 20<br>21: 21<br>22: 22<br>23: 23<br>24: 24<br>25: 25<br>26: 26<br>27: 27<br>28: 28<br>29: 29<br>30: 30<br>31: Infinite<br><br />
|-<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|0: CONSTANT<br>1: INCREASING<br>2: DECREASING<br>3: UP / DOWN<br>4: DOWN / UP<br>5: SINE<br><br />
|-<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|0: CONSTANT<br>1: INCREASING<br>2: DECREASING<br>3: UP / DOWN<br>4: DOWN / UP<br>5: SINE<br><br />
|-<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|0: GLOBAL<br>1: LOCAL<br><br />
|-<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|0: MONO<br>1: STEREO<br><br />
|-<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: NULL<br>1: LOWPASS<br>2: BANDPASS<br>3: HIGHPASS<br>4: LOWSHELF<br>5: HIGHSHLF<br>6: PEAKING<br>7: NOTCH<br>8: TILT EQ<br>9: LOWSHELF2<br>10: HIGHSHLF2<br>11: PEAKING2<br><br />
|-<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|0: 2nd<br>1: 4th<br><br />
|-<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: RAT DIST<br>1: PI FUZZ<br>2: TUBE DRV 3-KNOB<br>3: SUPER OD<br>4: TREBLE BOOST<br>5: MID BOOST<br>6: T808 OD<br>7: FAT RAT<br>8: T808 MOD<br>9: OCTAVE DIST<br>10: PLUS DIST<br>11: HARD FUZZ<br>12: FET BOOST<br>13: TAPE DIST<br>14: FULL OD<br>15: BLUES OD<br>16: SHRED DIST<br>17: M-ZONE DIST<br>18: BENDER FUZZ<br>19: BB PRE<br>20: MASTER FUZZ<br>21: FACE FUZZ<br>22: BIT CRUSHER<br>23: ETERNAL LOVE<br>24: ESOTERIC ACB<br>25: ESOTERIC RCB<br>26: ZEN MASTER<br>27: TUBE DRV 4-KNOB<br>28: FAS LED-DRIVE<br>29: SDD PREAMP<br>30: FET PREAMP<br>31: RUCKUS<br>32: MICRO BOOST<br>33: FAS BOOST<br>34: TIMOTHY<br>35: SHIMMER DRIVE<br><br />
|-<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|0: LV TUBE<br>1: HARD<br>2: SOFT<br>3: GERMANIUM<br>4: FW RECT<br>5: HV TUBE<br>6: SILICON<br>7: 4558/DIODE<br>8: LED<br>9: FET<br>10: OP-AMP<br>11: VARIABLE<br>12: NULL<br><br />
|-<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|0: L+R<br>1: LEFT<br>2: RIGHT<br><br />
|-<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|0: MODERN<br>1: CLASSIC<br><br />
|-<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|0: NONE<br>1: RIGHT<br>2: LEFT<br>3: BOTH<br><br />
|-<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|0: CLASSIC<br>1: INTELLIGENT<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAW UP<br>4: SAW DOWN<br>5: RANDOM<br>6: LOG<br>7: EXP<br>8: TRAPEZOID<br><br />
|-<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|0: ONCE<br>1: LOOP<br>2: SUST<br><br />
|-<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|0: ONCE<br>1: LOOP<br>2: SUST<br><br />
|-<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|0: NONE <br>1: 1/64 TRIP<br>2: 1/64<br>3: 1/64 DOT<br>4: 1/32 TRIP<br>5: 1/32<br>6: 1/32 DOT<br>7: 1/16 TRIP<br>8: 1/16<br>9: 1/16 DOT<br>10: 1/8 TRIP<br>11: 1/8<br>12: 1/8 DOT<br>13: 1/4 TRIP<br>14: 1/4<br>15: 1/4 DOT<br>16: 1/2 TRIP<br>17: 1/2<br>18: 1/2 DOT<br>19: 1 TRIP<br>20: 1<br>21: 1 DOT<br>22: 2<br>23: 3<br>24: 4<br>25: 4/3<br>26: 5/4<br>27: 5/64<br>28: 7/64<br>29: 9/64<br>30: 10/64 (5/32)<br>31: 11/64<br>32: 13/64<br>33: 14/64 (7/32)<br>34: 15/64<br>35: 17/64<br>36: 18/64 (9/32)<br>37: 19/64<br>38: 20/64 (5/16)<br>39: 21/64<br>40: 22/64 (11/32)<br>41: 23/64<br>42: 25/64<br>43: 26/64 (13/32)<br>44: 27/64<br>45: 28/64 (7/16)<br>46: 29/64<br>47: 30/64 (15/32)<br>48: 31/64<br>49: 33/64<br>50: 34/64 (17/32)<br>51: 35/64<br>52: 36/64 (9/16)<br>53: 37/64<br>54: 38/64 (19/32)<br>55: 39/64<br>56: 40/64 (5/8)<br>57: 41/64<br>58: 42/64 (21/32)<br>59: 43/64<br>60: 44/64 (11/16)<br>61: 45/64<br>62: 46/64 (23/32)<br>63: 47/64<br>64: 49/64<br>65: 50/64 (25/32)<br>66: 51/64<br>67: 52/64 (13/16)<br>68: 53/64<br>69: 54/64 (27/32)<br>70: 55/64<br>71: 56/64 (7/8)<br>72: 57/64<br>73: 58/64 (29/32)<br>74: 59/64<br>75: 60/64 (15/16)<br>76: 61/64<br>77: 62/64 (31/32)<br>78: 63/64<br><br />
|-<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0: 0<br>1: 1<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br>9: 9<br>10: 10<br>11: 11<br>12: 12<br>13: 13<br>14: 14<br>15: 15<br>16: 16<br>17: 17<br>18: 18<br>19: 19<br>20: 20<br>21: 21<br>22: 22<br>23: 23<br>24: 24<br>25: 25<br>26: 26<br>27: 27<br>28: 28<br>29: 29<br>30: 30<br>31: 31<br>32: 32<br><br />
|-<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|55<br />
|17<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|56<br />
|18<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|57<br />
|19<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|58<br />
|20<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|59<br />
|21<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|60<br />
|22<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|61<br />
|23<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|62<br />
|24<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|63<br />
|25<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|64<br />
|26<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|65<br />
|27<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|66<br />
|28<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|67<br />
|29<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|68<br />
|30<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|69<br />
|31<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|70<br />
|32<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|74<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|75<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|76<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|77<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|78<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|79<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|80<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|81<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|82<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|83<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|84<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|85<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|86<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|87<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|88<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|89<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|90<br />
|QUANTIZE<br />
|select<br />
|0: <br>1: OFF<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br>9: 9<br>10: 10<br>11: 11<br>12: 12<br>13: 13<br>14: 14<br>15: 15<br>16: 16<br>17: 17<br>18: 18<br>19: 19<br>20: 20<br>21: 21<br>22: 22<br>23: 23<br>24: 24<br>25: 25<br>26: 26<br>27: 27<br>28: 28<br>29: 29<br>30: 30<br>31: 31<br>32: 32<br><br />
|-<br />
|CONTROLLERS<br />
|91<br />
|QUANTIZE<br />
|select<br />
|0: <br>1: OFF<br>2: 2<br>3: 3<br>4: 4<br>5: 5<br>6: 6<br>7: 7<br>8: 8<br>9: 9<br>10: 10<br>11: 11<br>12: 12<br>13: 13<br>14: 14<br>15: 15<br>16: 16<br>17: 17<br>18: 18<br>19: 19<br>20: 20<br>21: 21<br>22: 22<br>23: 23<br>24: 24<br>25: 25<br>26: 26<br>27: 27<br>28: 28<br>29: 29<br>30: 30<br>31: 31<br>32: 32<br><br />
|-<br />
|CONTROLLERS<br />
|92<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|93<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|94<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|95<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|96<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|97<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|98<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|99<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|100<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|101<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|102<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|103<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|104<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|105<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|106<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|107<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAWTOOTH<br>4: RANDOM<br>5: WHT NOISE<br>6: PINK NOISE<br>7: OFF<br><br />
|-<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|0: OFF<br>1: ENV ONLY<br>2: PITCH+ENV<br>3: QUANTIZE<br><br />
|-<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAWTOOTH<br>4: RANDOM<br>5: WHT NOISE<br>6: PINK NOISE<br>7: OFF<br><br />
|-<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|0: OFF<br>1: ENV ONLY<br>2: PITCH+ENV<br>3: QUANTIZE<br><br />
|-<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|0: SINE<br>1: TRIANGLE<br>2: SQUARE<br>3: SAWTOOTH<br>4: RANDOM<br>5: WHT NOISE<br>6: PINK NOISE<br>7: OFF<br><br />
|-<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|0: OFF<br>1: ENV ONLY<br>2: PITCH+ENV<br>3: QUANTIZE<br><br />
|-<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|0: BLOCK L+R<br>1: ROW 1<br>2: ROW 2<br>3: ROW 3<br>4: ROW 4<br>5: INPUT 1<br>6: INPUT 2<br><br />
|-<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE<br><br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|0: THRU<br>1: MUTE FX OUT<br>2: MUTE OUT<br><br />
|-<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|0: MONO<br>1: STEREO<br>2: MONO UNDO<br>3: STEREO UNDO<br><br />
|-<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|0: OFF<br>1: QUARTER<br>2: EIGTH<br>3: SIXTEENTH<br><br />
|-<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|}<br />
<br />
<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43338
MIDI SysEx
2017-05-21T20:16:44Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Block IDs (as of Quantum 8.02)=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|140<br />
|Output<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
=MIDI SysEx: Axe Fx II/XL/XL+ Block Parameter IDs (as of Quantum 8.02)=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|0: HARD1: SOFT2: SOFTER3: SOFTEST<br />
|-<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|0: RMS1: PEAK2: RMS+PEAK3: FAST RMS<br />
|-<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|0: BLOCK L+R1: ROW 12: ROW 23: ROW 34: ROW 45: INPUT 16: INPUT 27: BLOCK L8: BLOCK R<br />
|-<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|0: STUDIO COMP1: PEDAL COMP 12: PEDAL COMP 23: DYNAMICS4: OPTICAL 15: OPTICAL 2<br />
|-<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|0: INSTRUMENT1: LINE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|0: 10 BAND CONST Q1: 8 BAND CONST Q2: 7 BAND CONST Q3: 5 BAND CONST Q4: 10 BAND VAR Q5: 8 BAND VAR Q6: 7 BAND VAR Q7: 5 BAND VAR Q8: 5 BAND PASSIVE9: 4 BAND PASSIVE10: 3 BAND PASSIVE11: 3 BAND CONSOLE<br />
|-<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|0: SHELVING1: PEAKING2: BLOCKING3: SHELVING2<br />
|-<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|0: SHELVING1: PEAKING2: BLOCKING3: SHELVING2<br />
|-<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|0: PEAKING1: SHELVING2: SHELVING2<br />
|-<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|0: PEAKING1: SHELVING2: SHELVING2<br />
|-<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: 59 BASSGUY1: 65 BASSGUY NRML2: VIBRATO VERB3: DELUXE VERB VIB4: DOUBLE VERB VIB5: JR BLUES6: CLASS-A 15W TB7: CLASS-A 30W8: CLASS-A 30W TB9: BRIT JM4510: PLEXI 50W NRML11: PLEXI 50W HI 112: 1987X NORMAL13: 1987X TREBLE14: BRIT 80015: BRIT SUPER16: HIPOWER NORMAL17: HIPOWER BRILLNT18: USA CLEAN19: USA PRE CLEAN20: USA RHYTHM21: USA IIC+22: USA IIC+ BRIGHT23: USA LEAD24: USA LEAD BRT25: RECTO2 ORG VNTG26: RECTO2 ORG MDRN27: RECTO2 RED VNTG28: RECTO2 RED MDRN29: EURO BLUE30: EURO RED31: SHIVER CLEAN32: SHIVER LEAD33: EURO UBER34: SOLO 99 CLEAN35: SOLO 100 RHY36: SOLO 100 LEAD37: FRIEDMAN BE V138: FRIEDMAN HBE V139: PVH 6160 BLOCK40: MR Z MZ-3841: CA3+ RHY42: CA3+ LEAD43: WRECKER ROCKET44: CORNCOB M5045: CA OD-246: FRYETTE D60 L47: FRYETTE D60 M48: BRIT BROWN49: CITRUS RV5050: JAZZ 12051: ENERGYBALL52: ODS-100 CLEAN53: ODS-100 HRM54: FAS RHYTHM55: FAS LEAD 156: FAS LEAD 257: FAS MODERN58: DAS METALL59: BRIT PRE60: BUTTERY61: BOUTIQUE 162: BOUTIQUE 263: CAMERON CCV 1A64: CAMERON CCV 2A65: SV BASS66: TUBE PRE67: FAS BROWN68: BIG HAIR69: SOLO 99 LEAD70: SUPERTWEED71: TX STAR LEAD72: FAS WRECK73: BRIT JVM OD1 OR74: BRIT JVM OD2 OR75: FAS 616076: CALI LEGGY77: USA LEAD +78: USA LEAD BRT +79: PRINCE TONE80: BLANKNSHP LEEDS81: 5153 100W GREEN82: 5153 100W BLUE83: 5153 100W RED84: SOLO 88 RHYTHM85: DIV/13 CJ86: HERBIE CH2-87: HERBIE CH2+88: HERBIE CH389: DIRTY SHIRLEY 190: DIZZY V4 BLUE 291: DIZZY V4 BLUE 392: DIZZY V4 BLUE 493: SUHR BADGER 1894: SUHR BADGER 3095: PRINCE TONE NR96: SUPREMO TREM97: ATOMICA LOW98: ATOMICA HIGH99: DELUXE TWEED100: SPAWN ROD OD2-1101: SPAWN ROD OD2-2102: SPAWN ROD OD2-3103: BRIT SILVER104: SPAWN NITROUS 2105: FAS CRUNCH106: TWO STONE J35 1107: FOX ODS108: HOT KITTY109: BAND-COMMANDER110: SUPER VERB VIB111: VIBRA-KING112: GIBTONE SCOUT113: PVH 6160+ LD114: SOLO 100 CLEAN115: USA PRE LD2 GRN116: USA PRE LD2 YLW117: CA3+ CLEAN118: FOX ODS DEEP119: BRIT JVM OD1 GN120: BRIT JVM OD2 GN121: VIBRATO LUX122: BRIT 800 MOD123: NUCLEAR-TONE124: BLUDOJAI CLEAN125: BLUDOJAI LD PAB126: PLEXI 100W HIGH127: PLEXI 100W NRML128: RUBY ROCKET129: AC-20 EF86 B130: PRINCE TONE REV131: COMET CONCOURSE132: FAS MODERN II133: CA TRIPTIK MDRN134: CA TRIPTIK CLSC135: CA TRIPTIK CLN136: THORDENDAL VINT137: THORDENDAL MDRN138: ODS-100 HRM MID139: EURO BLUE MDRN140: EURO RED MDRN141: PLEXI 50W JUMP142: AC-20 EF86 T143: COMET 60144: HIPOWER JUMPED145: PLEXI 100W JUMP146: BRIT JM45 JUMP147: 1987X JUMP148: RECTO1 ORG VNTG149: RECTO1 RED150: ODS-100 FORD 1151: BOGFISH STRATO152: BOGFISH BROWN153: 5F1 TWEED154: WRECKER EXPRESS155: TWO STONE J35 2156: ODS-100 FORD 2157: MR Z MZ-8158: CAR ROAMER159: USA SUB BLUES160: WRECKER LVRPOOL161: CITRUS TERRIER162: CITRUS A30 CLN163: CITRUS A30 DRTY164: DIV/13 FT37 LO165: DIV/13 FT37 HI166: MATCHBOX D-30167: FAS CLASS-A168: USA BASS 400 1169: USA BASS 400 2170: CITRUS BASS 200171: FAS BASS172: TREMOLO LUX173: FAS BROOTALZ174: RECTO1 ORG MDRN175: ANGLE SEVERE 1176: ANGLE SEVERE 2177: USA PRE LD2 RED178: USA PRE LD1 RED179: TX STAR CLEAN180: AC-20 12AX7 T181: VIBRATO VERB AA182: VIBRATO VERB AB183: CA TUCANA LEAD184: JR BLUES FAT185: SOLO 88 LEAD186: BRIT AFS100 1187: BRIT AFS100 2188: CLASS-A 30W HOT189: DIZZY V4 SLVR 2190: DIZZY V4 SLVR 3191: DIZZY V4 SLVR 4192: 1959SLP NORMAL193: 1959SLP TREBLE194: 1959SLP JUMP195: FAS MODERN III196: ODS-100 FORD MD197: MR Z HWY 66198: 6G4 SUPER199: 6G12 CONCERT200: 65 BASSGUY BASS201: VIBRA-KING FAT202: SPAWN ROD OD1-1203: SPAWN ROD OD1-2204: SPAWN ROD OD1-3205: CA TUCANA CLN206: BRIT JVM OD1 RD207: BRIT JVM OD2 RD208: CAMERON CCV 1B209: CAMERON CCV 2B210: CAMERON CCV 2C211: CAMERON CCV 2D212: FRIEDMAN SM BOX213: 5153 50W BLUE214: DIV/13 CJ BOOST215: USA IIC+ DEEP216: USA IIC+ BRT/DP217: 5F8 TWEED218: DOUBLE VERB SF219: VIBRATO VERB CS220: JMPRE-1 OD1221: JMPRE-1 OD2222: JMPRE-1 OD1 BS223: JMPRE-1 OD2 BS224: DELUXE VERB NRM225: DOUBLE VERB NRM226: SUPER VERB NRM227: BLUDOJAI LD 2228: PLEXI 50W 6550229: FAS HOT ROD230: PVH 6160+ RHY B231: PVH 6160+ RHY232: SOLO 88 CLEAN233: CLASS-A 30W BRT234: PLEXI 50W HI 2235: SPAWN NITROUS 1236: RUBY ROCKET BRT237: AC-20 12AX7 B238: PLEXI 100W 1970239: JS410 LEAD OR240: JS410 LEAD RD241: JS410 CRUNCH OR242: JS410 CRUNCH RD243: FRIEDMAN BE V2244: FRIEDMAN HBE V2245: DWEEZIL'S B-MAN246: FRIEDMAN BE247: FRIEDMAN HBE248: USA IIC++249: LEGATO 100250: CAPT HOOK 2B251: CAPT HOOK 3B252: CAPT HOOK 2A253: CAPT HOOK 3A254: CAPT HOOK 1A255: CAPT HOOK 1B256: DIRTY SHIRLEY 2257: BRIT 800 #34258: 5F1 TWEED EC<br />
|-<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|0: PRE1: POST2: MID3: END<br />
|-<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|0: LEFT1: RIGHT2: SUM L+R<br />
|-<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|0: LEFT1: RIGHT2: SUM L+R<br />
|-<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|0: ACTIVE1: DEFAULT2: BROWNFACE3: BLACKFACE4: BASSGUY5: TOP BOOST6: PLEXI7: BOUTIQUE8: HI POWER9: USA NORMAL10: USA FAT11: RECTO1 ORG12: RECTO1 RED13: SKYLINE14: GERMAN15: JR BLUES16: WRECKER 117: NEUTRAL18: CA3+SE19: FREYER D6020: MR Z 38 SR21: EURO UBER22: PVH 616023: SOLO 10024: CORNCOB25: XTC26: CAROLANN27: CITRUS28: BRIT JM4529: USA RHY30: RECTO2 ORG31: RECTO2 RED32: SHIVER CLN33: CAMERON34: BRIT JVM 0D135: BRIT JVM 0D236: 5153 GREEN37: 5153 BLUE38: 5153 RED39: BRIT SUPER40: DIV13 CJ41: BADGER 1842: ATOMICA43: SPAWN44: BADGER 3045: BRIT SILVER46: SUPER VERB47: HOT KITTY48: VIBRATO-KING49: GIBTONE SCOUT50: CA3+SE CLEAN51: BF FIXED MID52: GERMAN V453: VIBRATO-LUX54: DIRTY SHIRLEY55: PLEXI 100W56: RUBY ROCKET BRT57: CONCOURSE58: TRIPTIK LD59: TRIPTIK CLN60: JAZZ 12061: BOGFISH62: WRECKER 263: SKYLINE DEEP64: USA SUB BLUES65: WRECKER LVRPOOL66: CITRUS A30 CLN67: CITRUS A30 DRT68: CAR ROAMER69: USA BASS70: CITRUS BASS71: STUDIO72: BRIT 80073: RECTO1 ORG MDRN74: ANGLE SEVERE 175: ANGLE SEVERE 276: USA PRE LD1 RED77: RECTO ORG BRT78: RECTO RED BRT79: VIBROVERB AA80: PVH 6160 II LD81: RUMBLE HRM82: MR Z HWY 6683: SUPER 6G484: 65 BASSMAN BASS85: FREIDMAN86: BAND-COMMANDER87: USA PRE CLEAN88: TUCANA CLEAN89: FRIEDMAN SM BOX90: TX STAR91: USA IIC+92: THORDENDAL93: SOLO 9994: BLUDOJAI95: HERBIE96: PVH 6160 II RHY97: SOLO 88 CLEAN98: JS41099: JS410 MIDSHIFT100: RUBY ROCKET101: USA IIC++102: LEGATO 100103: HOOK EDGE104: HOOK NO EDGE105: HOOK CLEAN 1106: HOOK CLEAN 2107: SOLO 88<br />
|-<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|0: PRE-PI1: POST-PI2: PRE-TRIODE<br />
|-<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|0: OFF1: AUTH2: IDEAL<br />
|-<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|0: IDEAL TETRODE1: IDEAL PENTODE2: EL34/6CA73: EL84/6BQ54: 6L6/58815: 6V66: KT667: KT888: 65509: 697310: 6AQ511: 300B<br />
|-<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|0: 12AX7A SYL1: ECC832: 70253: 12AX7A JJ4: ECC803S5: EF866: 12AX7A RCA7: 12AX7A8: 12AX7B<br />
|-<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|0: AC1: DC<br />
|-<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|0: 8 BAND VAR Q1: 7 BAND VAR Q2: 5 BAND (MARK)3: 8 BAND CONST Q4: 7 BAND CONST Q5: 5 BAND CONST Q6: 5 BAND PASSIVE7: 4 BAND PASSIVE8: 3 BAND PASSIVE9: 3 BAND CONSOLE<br />
|-<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|0: SHELVING1: PEAKING2: DYNAMIC<br />
|-<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|0: OUTPUT1: FEEDBACK<br />
|-<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|0: POST P.A.1: PRE P.A.<br />
|-<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|0: AUTHENTIC1: IDEAL<br />
|-<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|1<br />
|MIC<br />
|select<br />
|0: NONE1: 57 DYN2: 58 DYN3: 421 DYN4: 87A COND5: U87 COND6: E609 DYN7: RE16 DYN8: R121 RIB9: D112 DYN10: 67 COND11: NULL12: INVERT<br />
|-<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|3<br />
|MIC R<br />
|select<br />
|0: NONE1: 57 DYN2: 58 DYN3: 421 DYN4: 87A COND5: U87 COND6: E609 DYN7: RE16 DYN8: R121 RIB9: D112 DYN10: 67 COND11: NULL12: INVERT<br />
|-<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|0: HI-/ULTRA-RES1: NORMAL RES2: STEREO3: STEREO ULTRARES<br />
|-<br />
|CAB<br />
|14<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|15<br />
|SATURATION<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|16<br />
|ROOM LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|17<br />
|ROOM SIZE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|18<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|21<br />
|SPEAKER SIZE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|23<br />
|AIR<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|24<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|25<br />
|AIR FREQ<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|26<br />
|DELAY L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|0: STEREO1: LEFT2: RIGHT3: SUM L+R<br />
|-<br />
|CAB<br />
|31<br />
|PREAMP TYPE<br />
|select<br />
|0: NONE1: TUBE2: BIPOLAR3: FET I4: FET II5: TRANSFORMER6: TAPE 70us7: TAPE 50us8: TAPE 35us9: VINTAGE10: MODERN11: EXCITER<br />
|-<br />
|CAB<br />
|32<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|33<br />
|MID<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|34<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|35<br />
|PREAMP MODE<br />
|select<br />
|0: ECONOMY1: HIGH QUALITY<br />
|-<br />
|CAB<br />
|36<br />
|DEPHASE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|0: 6 dB/OCT1: 12 dB/OCT<br />
|-<br />
|CAB<br />
|38<br />
|MOTOR TIME CONSTANT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: SMALL ROOM1: MEDIUM ROOM2: LARGE ROOM3: SMALL HALL4: MEDIUM HALL5: LARGE HALL6: SMALL CHAMBER7: MEDIUM CHAMBER8: LARGE CHAMBER9: SMALL PLATE10: MEDIUM PLATE11: LARGE PLATE12: SMALL CATHEDRAL13: MED. CATHEDRAL14: LARGE CATHEDRAL15: SMALL SPRING16: MEDIUM SPRING17: LARGE SPRING18: CAVERN19: STONE QUARRY20: STUDIO21: AMBIENCE22: CONCERT HALL23: LARGE DEEP HALL24: REC STUDIO C25: NORTH CHURCH26: SOUTH CHURCH27: LONDON PLATE28: SUN PLATE29: HUGE ROOM30: DRUM ROOM31: HALLWAY32: TUNNEL33: DEEP CHAMBER34: LG WOODEN ROOM35: GYMNASIUM36: ASYLUM HALL37: DEEP SPACE38: REC STUDIO A39: LG TILED ROOM40: VOCAL PLATE41: WIDE HALL42: RICH HALL<br />
|-<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|0: NORMAL1: HIGH<br />
|-<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO1: DIGITAL STEREO2: ANALOG MONO3: ANALOG STEREO4: MONO TAPE5: STEREO TAPE6: PING-PONG7: DUAL DELAY8: REVERSE DELAY9: SWEEP DELAY10: DUCKING DELAY11: VINTAGE DIGITAL12: 2290 W/ MOD13: AMBIENT STEREO14: DELUXE MIND GUY15: MONO BBD16: STEREO BBD17: LO-FI TAPE<br />
|-<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|0: MONO1: STEREO2: PING-PONG3: DUAL4: REVERSE5: SWEEP6: TAPE<br />
|-<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|0: 6 dB/OCT1: 12 dB/OCT2: 24 dB/OCT3: 36 dB/OCT4: 48 dB/OCT<br />
|-<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|0: BOTH1: LEFT2: RIGHT<br />
|-<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|0: BOTH1: LEFT2: RIGHT<br />
|-<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|0: LOW1: HIGH<br />
|-<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|0: QUAD-TAP1: PLEX DELAY2: PLEX DETUNE3: PLEX SHIFT4: BAND DELAY5: QUAD-SERIES6: TEN-TAP DLY7: RHYTHM TAP8: DIFFUSOR9: QUAD TAPE DLY<br />
|-<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|0: FORWARD1: REVERSE<br />
|-<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|0: 11: 22: 33: 4<br />
|-<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|0: 11: 22: 33: 4<br />
|-<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|0: MONO1: STEREO<br />
|-<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|0: CONSTANT1: INCREASING2: DECREASING3: UP / DOWN4: DOWN / UP5: SINE<br />
|-<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO1: DIGITAL STEREO2: ANALOG MONO3: ANALOG STEREO4: JAPAN CE-25: WARM STEREO6: 80'S STYLE7: TRIANGLE CHORUS8: 8-VOICE STEREO9: VINTAGE TAPE10: DIMENSION 111: DIMENSION 212: 4-VOICE ANALOG<br />
|-<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|0: OFF1: LOW2: HIGH<br />
|-<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|0: OFF1: LOW2: MED3: HIGH<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO1: DIGITAL STEREO2: ANALOG MONO3: ANALOG STEREO4: THRU-ZERO5: STEREO JET6: ZERO FLANGER7: POP FLANGER<br />
|-<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|0: OFF1: LOW2: MED3: HIGH<br />
|-<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO1: DIGITAL STEREO2: SCRIPT 453: SCRIPT 904: BLOCK 905: CLASSIC VIBE6: STEREO 8-STAGE7: BARBERPOLE<br />
|-<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|0: 21: 42: 63: 84: 105: 12<br />
|-<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|0: NORMAL1: VIBE2: BARBERPOLE<br />
|-<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|0: UP1: DOWN<br />
|-<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|0: OFF1: 0 DEG2: 90 DEG3: 180 DEG4: 270 DEG<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: FAS STANDARD1: CLYDE2: CRY BABE3: VX8464: COLOR-TONE5: FUNK6: MORTAL7: VX845<br />
|-<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|0: LINEAR1: LOG 30A2: LOG 20A3: LOG 15A4: LOG 10A5: LOG 5A<br />
|-<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|0: AAA1: EEE2: III3: OHH4: OOO5: EHH6: AHH7: AWW8: UHH9: ERR<br />
|-<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|0: AAA1: EEE2: III3: OHH4: OOO5: EHH6: AHH7: AWW8: UHH9: ERR<br />
|-<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|0: AAA1: EEE2: III3: OHH4: OOO5: EHH6: AHH7: AWW8: UHH9: ERR<br />
|-<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|0: LINEAR1: LOG 30A2: LOG 20A3: LOG 15A4: LOG 10A5: LOG 5A<br />
|-<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|0: STEREO1: LEFT ONLY2: RIGHT ONLY<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: TREMOLO1: PANNER<br />
|-<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DETUNE1: FIXED HARM2: INTEL HARM3: CL. WHAMMY4: OCTAVE DIV5: CRYSTALS6: AD. WHAMMY7: ARPEGGIATOR8: CUST. SHIFT<br />
|-<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|0: UP 1 OCT1: DOWN 1 OCT2: UP 2 OCT3: DOWN 2 OCT4: UP|DN 1 OCT5: UP|DN 2 OCT<br />
|-<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|0: A 1: Bb2: B 3: C 4: Db5: D 6: Eb7: E 8: F 9: Gb10: G 11: Ab<br />
|-<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|0: IONIAN MAJ1: DORIAN2: PHRYGIAN3: LYDIAN4: MIXOLYDIAN5: AEOLIAN MIN6: LOCRIAN7: MEL. MINOR8: HARM. MINOR9: DIMINISHED10: WHOLE TONE11: DOM. SEVEN12: DIM. WHOLE13: PENTA. MAJ14: PENTA. MIN15: BLUES16: CHROMATIC17: CUSTOM<br />
|-<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|0: SMOOTH1: STEPPED<br />
|-<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|0: OFF1: POLY2: MONO<br />
|-<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|0: DUAL1: BOTH2: PING-PONG<br />
|-<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0: 01: 12: 23: 34: 45: 56: 67: 78: 8<br />
|-<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0: 01: 12: 23: 34: 45: 56: 67: 78: 89: 910: 1011: 1112: 1213: 1314: 1415: 1516: 1617: 1718: 1819: 1920: 2021: 2122: 2223: 2324: 2425: 2526: 2627: 2728: 2829: 2930: 3031: Infinite<br />
|-<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|0: CONSTANT1: INCREASING2: DECREASING3: UP / DOWN4: DOWN / UP5: SINE<br />
|-<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|0: CONSTANT1: INCREASING2: DECREASING3: UP / DOWN4: DOWN / UP5: SINE<br />
|-<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|0: GLOBAL1: LOCAL<br />
|-<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|0: MONO1: STEREO<br />
|-<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: NULL1: LOWPASS2: BANDPASS3: HIGHPASS4: LOWSHELF5: HIGHSHLF6: PEAKING7: NOTCH8: TILT EQ9: LOWSHELF210: HIGHSHLF211: PEAKING2<br />
|-<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|0: 2nd1: 4th<br />
|-<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: RAT DIST1: PI FUZZ2: TUBE DRV 3-KNOB3: SUPER OD4: TREBLE BOOST5: MID BOOST6: T808 OD7: FAT RAT8: T808 MOD9: OCTAVE DIST10: PLUS DIST11: HARD FUZZ12: FET BOOST13: TAPE DIST14: FULL OD15: BLUES OD16: SHRED DIST17: M-ZONE DIST18: BENDER FUZZ19: BB PRE20: MASTER FUZZ21: FACE FUZZ22: BIT CRUSHER23: ETERNAL LOVE24: ESOTERIC ACB25: ESOTERIC RCB26: ZEN MASTER27: TUBE DRV 4-KNOB28: FAS LED-DRIVE29: SDD PREAMP30: FET PREAMP31: RUCKUS32: MICRO BOOST33: FAS BOOST34: TIMOTHY35: SHIMMER DRIVE<br />
|-<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|0: LV TUBE1: HARD2: SOFT3: GERMANIUM4: FW RECT5: HV TUBE6: SILICON7: 4558/DIODE8: LED9: FET10: OP-AMP11: VARIABLE12: NULL<br />
|-<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|0: L+R1: LEFT2: RIGHT<br />
|-<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|0: MODERN1: CLASSIC<br />
|-<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|4<br />
|INPUT Z<br />
|select<br />
|0: AUTO: 1: 1M2: 1M+CAP3: 230K4: 230K+CAP5: 90K6: 90K+CAP7: 70K8: 70K+CAP9: 32K10: 32K+CAP11: 22K12: 22K+CAP<br />
|-<br />
|INPUT<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|7<br />
|EFFECT TYPE<br />
|select<br />
|0: CLASSIC1: INTELLIGENT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|0: ONCE1: LOOP2: SUST<br />
|-<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|0: ONCE1: LOOP2: SUST<br />
|-<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0: 01: 12: 23: 34: 45: 56: 67: 78: 89: 910: 1011: 1112: 1213: 1314: 1415: 1516: 1617: 1718: 1819: 1920: 2021: 2122: 2223: 2324: 2425: 2526: 2627: 2728: 2829: 2930: 3031: 3132: 32<br />
|-<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|55<br />
|A<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|56<br />
|B<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|57<br />
|C<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|58<br />
|D<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|59<br />
|17<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|60<br />
|18<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|61<br />
|19<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|62<br />
|20<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|63<br />
|21<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|64<br />
|22<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|65<br />
|23<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|66<br />
|24<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|67<br />
|25<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|68<br />
|26<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|69<br />
|27<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|70<br />
|28<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|71<br />
|29<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|72<br />
|30<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|73<br />
|31<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|74<br />
|32<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|77<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|78<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|79<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|80<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|81<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|82<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|83<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|84<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|85<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|86<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|87<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|88<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|89<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|90<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|91<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|92<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|93<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|94<br />
|QUANTIZE<br />
|select<br />
|0: 1: OFF2: 23: 34: 45: 56: 67: 78: 89: 910: 1011: 1112: 1213: 1314: 1415: 1516: 1617: 1718: 1819: 1920: 2021: 2122: 2223: 2324: 2425: 2526: 2627: 2728: 2829: 2930: 3031: 3132: 32<br />
|-<br />
|CONTROLLERS<br />
|95<br />
|QUANTIZE<br />
|select<br />
|0: 1: OFF2: 23: 34: 45: 56: 67: 78: 89: 910: 1011: 1112: 1213: 1314: 1415: 1516: 1617: 1718: 1819: 1920: 2021: 2122: 2223: 2324: 2425: 2526: 2627: 2728: 2829: 2930: 3031: 3132: 32<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAWTOOTH4: RANDOM5: WHT NOISE6: PINK NOISE7: OFF<br />
|-<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|0: OFF1: ENV ONLY2: PITCH+ENV3: QUANTIZE<br />
|-<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAWTOOTH4: RANDOM5: WHT NOISE6: PINK NOISE7: OFF<br />
|-<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|0: OFF1: ENV ONLY2: PITCH+ENV3: QUANTIZE<br />
|-<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAWTOOTH4: RANDOM5: WHT NOISE6: PINK NOISE7: OFF<br />
|-<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|0: OFF1: ENV ONLY2: PITCH+ENV3: QUANTIZE<br />
|-<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|0: BLOCK L+R1: ROW 12: ROW 23: ROW 34: ROW 45: INPUT 16: INPUT 2<br />
|-<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|0: MONO1: STEREO2: MONO UNDO3: STEREO UNDO<br />
|-<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|0: OFF1: QUARTER2: EIGTH3: SIXTEENTH<br />
|-<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SND<br />
|0<br />
|SEND LEVEL<br />
|knob<br />
| <br />
|-<br />
|SND<br />
|1<br />
|OUT LEVEL<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RTN<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|RTN<br />
|4<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MIX<br />
|0<br />
|Gain 1<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|1<br />
|Gain 2<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|2<br />
|Gain 3<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|3<br />
|Gain 4<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|4<br />
|Balance 1<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|5<br />
|Balance 2<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|6<br />
|Balance 3<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|7<br />
|Balance 4<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|8<br />
|MASTER<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|9<br />
|OUT MODE<br />
|select<br />
|0: STEREO1: MONO<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MBC<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|2<br />
|Threshold 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|3<br />
|Ratio 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|4<br />
|Attack 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|5<br />
|Release 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|6<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|7<br />
|Detect 1<br />
|select<br />
|0: RMS1: PEAK2: FAST RMS<br />
|-<br />
|MBC<br />
|8<br />
|Mute 1<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|9<br />
|Threshold 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|10<br />
|Ratio 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|11<br />
|Attack 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|12<br />
|Release 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|13<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|14<br />
|Detect 2<br />
|select<br />
|0: RMS1: PEAK2: FAST RMS<br />
|-<br />
|MBC<br />
|15<br />
|Mute 2<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|16<br />
|Threshold 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|17<br />
|Ratio 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|18<br />
|Attack 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|19<br />
|Release 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|20<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|21<br />
|Detect 3<br />
|select<br />
|0: RMS1: PEAK2: FAST RMS<br />
|-<br />
|MBC<br />
|22<br />
|Mute 3<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|24<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|25<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|XVR<br />
|0<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|1<br />
|Freq Multi.<br />
|select<br />
|0: X 11: X 10<br />
|-<br />
|XVR<br />
|2<br />
|Lo Level L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|3<br />
|Hi Level L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|4<br />
|Lo Level R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|5<br />
|Hi Level R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|6<br />
|Lo Pan L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|7<br />
|Hi Pan L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|8<br />
|Lo Pan R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|9<br />
|Hi Pan R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|11<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|12<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MGT<br />
|0<br />
|In Gain<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|2<br />
|Time<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|3<br />
|Number of Taps<br />
|rangeKnob<br />
| <br />
|-<br />
|MGT<br />
|4<br />
|Time Shape<br />
|select<br />
|0: CONSTANT1: INCREASING2: DECREASING3: UP / DOWN4: DOWN / UP5: SINE<br />
|-<br />
|MGT<br />
|5<br />
|Time Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|6<br />
|Amplitude Shape<br />
|select<br />
|0: CONSTANT1: INCREASING2: DECREASING3: UP / DOWN4: DOWN / UP5: SINE<br />
|-<br />
|MGT<br />
|7<br />
|Alplitude Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|8<br />
|Pan Shape<br />
|select<br />
|0: CONSTANT1: INCREASING2: DECREASING3: UP / DOWN4: DOWN / UP5: SINE<br />
|-<br />
|MGT<br />
|9<br />
|Pan Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|10<br />
|Time Randomize<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|11<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|12<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|13<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|14<br />
|Bypass Mode<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|MGT<br />
|15<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|QCH<br />
|0<br />
|Master Time<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|2<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|3<br />
|Master Rate<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|4<br />
|Master Depth<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|5<br />
|Feedback<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|6<br />
|Time 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|7<br />
|Time 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|8<br />
|Time 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|9<br />
|Time 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|10<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|11<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|12<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|13<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|14<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|15<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|16<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|17<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|18<br />
|Depth 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|19<br />
|Depth 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|20<br />
|Depth 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|21<br />
|Depth 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|22<br />
|Morph 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|23<br />
|Morph 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|24<br />
|Morph 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|25<br />
|Morph 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|26<br />
|LFO1 Type<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|QCH<br />
|27<br />
|LFO2 Type<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|QCH<br />
|28<br />
|LFO3 Type<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|QCH<br />
|29<br />
|LFO4 Type<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|QCH<br />
|30<br />
|LFO1 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|31<br />
|LFO2 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|32<br />
|LFO3 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|33<br />
|LFO4 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|34<br />
|M. Depth (LFO4>All)<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|35<br />
|Input Mode<br />
|select<br />
|0: MONO1: STEREO<br />
|-<br />
|QCH<br />
|36<br />
|LFO1 Master<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|37<br />
|Wide Mode<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|38<br />
|M. Phase (LFO4)<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|39<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|40<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|41<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|42<br />
|Bypass Mode<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|QCH<br />
|43<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|45<br />
|Hi Cut Frequency<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TMA<br />
|0<br />
|Mode<br />
|select<br />
|0: OFFLINE1: LIVE<br />
|-<br />
|TMA<br />
|1<br />
|Amount<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|2<br />
|Smoothing<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|3<br />
|Reference<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|4<br />
|Local<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|6<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|7<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|8<br />
|Bypass Mode<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|TMA<br />
|10<br />
|Ref Source<br />
|select<br />
|0: ROW 11: ROW 22: ROW 33: ROW 44: INPUT 15: INPUT 26: BLK IN7: USB<br />
|-<br />
|TMA<br />
|11<br />
|Avg. Time<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|12<br />
|Ref Channel<br />
|select<br />
|0: SUM L+R1: LEFT2: RIGHT<br />
|-<br />
|TMA<br />
|13<br />
|Local Channel<br />
|select<br />
|0: SUM L+R1: LEFT2: RIGHT<br />
|-<br />
|TMA<br />
|14<br />
|Ref Solo<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|15<br />
|Resolution<br />
|select<br />
|0: LOW1: HIGH<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOC<br />
|0<br />
|Input Select<br />
|select<br />
|0: LEFT1: RIGHT<br />
|-<br />
|VOC<br />
|1<br />
|Bands<br />
|select<br />
|0: 41: 82: 123: 16<br />
|-<br />
|VOC<br />
|2<br />
|Frequency Min<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|3<br />
|Frequency Max<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|4<br />
|Shift<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|5<br />
|Freeze<br />
|switch<br />
| <br />
|-<br />
|VOC<br />
|6<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|7<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|8<br />
|Resonance<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|9<br />
|Attack<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|10<br />
|Release<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|11<br />
|Highpass Mix In<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|12<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|13<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|14<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|15<br />
|Bypass Mode<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|VOC<br />
|16<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|VOC<br />
|17<br />
|Level 1<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|18<br />
|Level 2<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|19<br />
|Level 3<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|20<br />
|Level 4<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|21<br />
|Level 5<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|22<br />
|Level 6<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|23<br />
|Level 7<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|24<br />
|Level 8<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|25<br />
|Level 9<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|26<br />
|Level 10<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|27<br />
|Level 11<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|28<br />
|Level 12<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|29<br />
|Level 13<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|30<br />
|Level 14<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|31<br />
|Level 15<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|32<br />
|Level 16<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|33<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|34<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|35<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|36<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|37<br />
|Pan 5<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|38<br />
|Pan 6<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|39<br />
|Pan 7<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|40<br />
|Pan 8<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|41<br />
|Pan 9<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|42<br />
|Pan 10<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|43<br />
|Pan 11<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|44<br />
|Pan 12<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|45<br />
|Pan 13<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|46<br />
|Pan 14<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|47<br />
|Pan 15<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|48<br />
|Pan 16<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RES<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: MANUAL1: CHORDAL<br />
|-<br />
|RES<br />
|1<br />
|Chord Type<br />
|select<br />
|0: MAJOR1: MAJOR 62: DOM. 73: MAJOR 74: MINOR5: MINOR 66: MINOR 77: DIMIN.8: AUGMEN.<br />
|-<br />
|RES<br />
|2<br />
|Input Gain<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|3<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|4<br />
|Master Freq<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|5<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|6<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|7<br />
|Master Feedback<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|8<br />
|Master Q<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|9<br />
|Freq 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|10<br />
|Freq 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|11<br />
|Freq 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|12<br />
|Freq 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|13<br />
|FB 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|14<br />
|FB 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|15<br />
|FB 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|16<br />
|FB 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|17<br />
|Filter Loc 1<br />
|select<br />
|0: PRE1: POST<br />
|-<br />
|RES<br />
|18<br />
|Filter Loc 2<br />
|select<br />
|0: PRE1: POST<br />
|-<br />
|RES<br />
|19<br />
|Filter Loc 3<br />
|select<br />
|0: PRE1: POST<br />
|-<br />
|RES<br />
|20<br />
|Filter Loc 4<br />
|select<br />
|0: PRE1: POST<br />
|-<br />
|RES<br />
|21<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|22<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|23<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|24<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|25<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|26<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|27<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|28<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|29<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|30<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|31<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|32<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|33<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|34<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|35<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|36<br />
|Bypass Mode<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|RES<br />
|37<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|RES<br />
|39<br />
|Input Mode<br />
|select<br />
|0: MONO1: STEREO<br />
|}<br />
=MIDI SysEx: AX8 Block Parameter IDs (as of Quantum 8.02)=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|0: HARD1: SOFT2: SOFTER3: SOFTEST<br />
|-<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|0: RMS1: PEAK2: RMS+PEAK3: FAST RMS<br />
|-<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|0: BLOCK L+R1: ROW 12: ROW 23: ROW 34: ROW 45: INPUT 16: INPUT 27: BLOCK L8: BLOCK R<br />
|-<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|0: STUDIO COMP1: PEDAL COMP 12: PEDAL COMP 23: DYNAMICS4: OPTICAL 15: OPTICAL 2<br />
|-<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|0: INSTRUMENT1: LINE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|0: 10 BAND CONST Q1: 8 BAND CONST Q2: 7 BAND CONST Q3: 5 BAND CONST Q4: 10 BAND VAR Q5: 8 BAND VAR Q6: 7 BAND VAR Q7: 5 BAND VAR Q8: 5 BAND PASSIVE9: 4 BAND PASSIVE10: 3 BAND PASSIVE11: 3 BAND CONSOLE<br />
|-<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|0: SHELVING1: PEAKING2: BLOCKING3: SHELVING2<br />
|-<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|0: SHELVING1: PEAKING2: BLOCKING3: SHELVING2<br />
|-<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|0: PEAKING1: SHELVING2: SHELVING2<br />
|-<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|0: PEAKING1: SHELVING2: SHELVING2<br />
|-<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: 59 BASSGUY1: 65 BASSGUY NRML2: VIBRATO VERB3: DELUXE VERB VIB4: DOUBLE VERB VIB5: JR BLUES6: CLASS-A 15W TB7: CLASS-A 30W8: CLASS-A 30W TB9: BRIT JM4510: PLEXI 50W NRML11: PLEXI 50W HI 112: 1987X NORMAL13: 1987X TREBLE14: BRIT 80015: BRIT SUPER16: HIPOWER NORMAL17: HIPOWER BRILLNT18: USA CLEAN19: USA PRE CLEAN20: USA RHYTHM21: USA IIC+22: USA IIC+ BRIGHT23: USA LEAD24: USA LEAD BRT25: RECTO2 ORG VNTG26: RECTO2 ORG MDRN27: RECTO2 RED VNTG28: RECTO2 RED MDRN29: EURO BLUE30: EURO RED31: SHIVER CLEAN32: SHIVER LEAD33: EURO UBER34: SOLO 99 CLEAN35: SOLO 100 RHY36: SOLO 100 LEAD37: FRIEDMAN BE V138: FRIEDMAN HBE V139: PVH 6160 BLOCK40: MR Z MZ-3841: CA3+ RHY42: CA3+ LEAD43: WRECKER ROCKET44: CORNCOB M5045: CA OD-246: FRYETTE D60 L47: FRYETTE D60 M48: BRIT BROWN49: CITRUS RV5050: JAZZ 12051: ENERGYBALL52: ODS-100 CLEAN53: ODS-100 HRM54: FAS RHYTHM55: FAS LEAD 156: FAS LEAD 257: FAS MODERN58: DAS METALL59: BRIT PRE60: BUTTERY61: BOUTIQUE 162: BOUTIQUE 263: CAMERON CCV 1A64: CAMERON CCV 2A65: SV BASS66: TUBE PRE67: FAS BROWN68: BIG HAIR69: SOLO 99 LEAD70: SUPERTWEED71: TX STAR LEAD72: FAS WRECK73: BRIT JVM OD1 OR74: BRIT JVM OD2 OR75: FAS 616076: CALI LEGGY77: USA LEAD +78: USA LEAD BRT +79: PRINCE TONE80: BLANKNSHP LEEDS81: 5153 100W GREEN82: 5153 100W BLUE83: 5153 100W RED84: SOLO 88 RHYTHM85: DIV/13 CJ86: HERBIE CH2-87: HERBIE CH2+88: HERBIE CH389: DIRTY SHIRLEY 190: DIZZY V4 BLUE 291: DIZZY V4 BLUE 392: DIZZY V4 BLUE 493: SUHR BADGER 1894: SUHR BADGER 3095: PRINCE TONE NR96: SUPREMO TREM97: ATOMICA LOW98: ATOMICA HIGH99: DELUXE TWEED100: SPAWN ROD OD2-1101: SPAWN ROD OD2-2102: SPAWN ROD OD2-3103: BRIT SILVER104: SPAWN NITROUS 2105: FAS CRUNCH106: TWO STONE J35 1107: FOX ODS108: HOT KITTY109: BAND-COMMANDER110: SUPER VERB VIB111: VIBRA-KING112: GIBTONE SCOUT113: PVH 6160+ LD114: SOLO 100 CLEAN115: USA PRE LD2 GRN116: USA PRE LD2 YLW117: CA3+ CLEAN118: FOX ODS DEEP119: BRIT JVM OD1 GN120: BRIT JVM OD2 GN121: VIBRATO LUX122: BRIT 800 MOD123: NUCLEAR-TONE124: BLUDOJAI CLEAN125: BLUDOJAI LD PAB126: PLEXI 100W HIGH127: PLEXI 100W NRML128: RUBY ROCKET129: AC-20 EF86 B130: PRINCE TONE REV131: COMET CONCOURSE132: FAS MODERN II133: CA TRIPTIK MDRN134: CA TRIPTIK CLSC135: CA TRIPTIK CLN136: THORDENDAL VINT137: THORDENDAL MDRN138: ODS-100 HRM MID139: EURO BLUE MDRN140: EURO RED MDRN141: PLEXI 50W JUMP142: AC-20 EF86 T143: COMET 60144: HIPOWER JUMPED145: PLEXI 100W JUMP146: BRIT JM45 JUMP147: 1987X JUMP148: RECTO1 ORG VNTG149: RECTO1 RED150: ODS-100 FORD 1151: BOGFISH STRATO152: BOGFISH BROWN153: 5F1 TWEED154: WRECKER EXPRESS155: TWO STONE J35 2156: ODS-100 FORD 2157: MR Z MZ-8158: CAR ROAMER159: USA SUB BLUES160: WRECKER LVRPOOL161: CITRUS TERRIER162: CITRUS A30 CLN163: CITRUS A30 DRTY164: DIV/13 FT37 LO165: DIV/13 FT37 HI166: MATCHBOX D-30167: FAS CLASS-A168: USA BASS 400 1169: USA BASS 400 2170: CITRUS BASS 200171: FAS BASS172: TREMOLO LUX173: FAS BROOTALZ174: RECTO1 ORG MDRN175: ANGLE SEVERE 1176: ANGLE SEVERE 2177: USA PRE LD2 RED178: USA PRE LD1 RED179: TX STAR CLEAN180: AC-20 12AX7 T181: VIBRATO VERB AA182: VIBRATO VERB AB183: CA TUCANA LEAD184: JR BLUES FAT185: SOLO 88 LEAD186: BRIT AFS100 1187: BRIT AFS100 2188: CLASS-A 30W HOT189: DIZZY V4 SLVR 2190: DIZZY V4 SLVR 3191: DIZZY V4 SLVR 4192: 1959SLP NORMAL193: 1959SLP TREBLE194: 1959SLP JUMP195: FAS MODERN III196: ODS-100 FORD MD197: MR Z HWY 66198: 6G4 SUPER199: 6G12 CONCERT200: 65 BASSGUY BASS201: VIBRA-KING FAT202: SPAWN ROD OD1-1203: SPAWN ROD OD1-2204: SPAWN ROD OD1-3205: CA TUCANA CLN206: BRIT JVM OD1 RD207: BRIT JVM OD2 RD208: CAMERON CCV 1B209: CAMERON CCV 2B210: CAMERON CCV 2C211: CAMERON CCV 2D212: FRIEDMAN SM BOX213: 5153 50W BLUE214: DIV/13 CJ BOOST215: USA IIC+ DEEP216: USA IIC+ BRT/DP217: 5F8 TWEED218: DOUBLE VERB SF219: VIBRATO VERB CS220: JMPRE-1 OD1221: JMPRE-1 OD2222: JMPRE-1 OD1 BS223: JMPRE-1 OD2 BS224: DELUXE VERB NRM225: DOUBLE VERB NRM226: SUPER VERB NRM227: BLUDOJAI LD 2228: PLEXI 50W 6550229: FAS HOT ROD230: PVH 6160+ RHY B231: PVH 6160+ RHY232: SOLO 88 CLEAN233: CLASS-A 30W BRT234: PLEXI 50W HI 2235: SPAWN NITROUS 1236: RUBY ROCKET BRT237: AC-20 12AX7 B238: PLEXI 100W 1970239: JS410 LEAD OR240: JS410 LEAD RD241: JS410 CRUNCH OR242: JS410 CRUNCH RD243: FRIEDMAN BE V2244: FRIEDMAN HBE V2245: DWEEZIL'S B-MAN246: FRIEDMAN BE247: FRIEDMAN HBE248: USA IIC++249: LEGATO 100250: CAPT HOOK 2B251: CAPT HOOK 3B252: CAPT HOOK 2A253: CAPT HOOK 3A254: CAPT HOOK 1A255: CAPT HOOK 1B256: DIRTY SHIRLEY 2257: BRIT 800 #34258: 5F1 TWEED EC<br />
|-<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|0: PRE1: POST2: MID3: END<br />
|-<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|0: LEFT1: RIGHT2: SUM L+R<br />
|-<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|0: LEFT1: RIGHT2: SUM L+R<br />
|-<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|0: ACTIVE1: DEFAULT2: BROWNFACE3: BLACKFACE4: BASSGUY5: TOP BOOST6: PLEXI7: BOUTIQUE8: HI POWER9: USA NORMAL10: USA FAT11: RECTO1 ORG12: RECTO1 RED13: SKYLINE14: GERMAN15: JR BLUES16: WRECKER 117: NEUTRAL18: CA3+SE19: FREYER D6020: MR Z 38 SR21: EURO UBER22: PVH 616023: SOLO 10024: CORNCOB25: XTC26: CAROLANN27: CITRUS28: BRIT JM4529: USA RHY30: RECTO2 ORG31: RECTO2 RED32: SHIVER CLN33: CAMERON34: BRIT JVM 0D135: BRIT JVM 0D236: 5153 GREEN37: 5153 BLUE38: 5153 RED39: BRIT SUPER40: DIV13 CJ41: BADGER 1842: ATOMICA43: SPAWN44: BADGER 3045: BRIT SILVER46: SUPER VERB47: HOT KITTY48: VIBRATO-KING49: GIBTONE SCOUT50: CA3+SE CLEAN51: BF FIXED MID52: GERMAN V453: VIBRATO-LUX54: DIRTY SHIRLEY55: PLEXI 100W56: RUBY ROCKET BRT57: CONCOURSE58: TRIPTIK LD59: TRIPTIK CLN60: JAZZ 12061: BOGFISH62: WRECKER 263: SKYLINE DEEP64: USA SUB BLUES65: WRECKER LVRPOOL66: CITRUS A30 CLN67: CITRUS A30 DRT68: CAR ROAMER69: USA BASS70: CITRUS BASS71: STUDIO72: BRIT 80073: RECTO1 ORG MDRN74: ANGLE SEVERE 175: ANGLE SEVERE 276: USA PRE LD1 RED77: RECTO ORG BRT78: RECTO RED BRT79: VIBROVERB AA80: PVH 6160 II LD81: RUMBLE HRM82: MR Z HWY 6683: SUPER 6G484: 65 BASSMAN BASS85: FREIDMAN86: BAND-COMMANDER87: USA PRE CLEAN88: TUCANA CLEAN89: FRIEDMAN SM BOX90: TX STAR91: USA IIC+92: THORDENDAL93: SOLO 9994: BLUDOJAI95: HERBIE96: PVH 6160 II RHY97: SOLO 88 CLEAN98: JS41099: JS410 MIDSHIFT100: RUBY ROCKET101: USA IIC++102: LEGATO 100103: HOOK EDGE104: HOOK NO EDGE105: HOOK CLEAN 1106: HOOK CLEAN 2107: SOLO 88<br />
|-<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|0: PRE-PI1: POST-PI2: PRE-TRIODE<br />
|-<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|0: OFF1: AUTH2: IDEAL<br />
|-<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|0: IDEAL TETRODE1: IDEAL PENTODE2: EL34/6CA73: EL84/6BQ54: 6L6/58815: 6V66: KT667: KT888: 65509: 697310: 6AQ511: 300B<br />
|-<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|0: 12AX7A SYL1: ECC832: 70253: 12AX7A JJ4: ECC803S5: EF866: 12AX7A RCA7: 12AX7A8: 12AX7B<br />
|-<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|0: AC1: DC<br />
|-<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|0: 8 BAND VAR Q1: 7 BAND VAR Q2: 5 BAND (MARK)3: 8 BAND CONST Q4: 7 BAND CONST Q5: 5 BAND CONST Q6: 5 BAND PASSIVE7: 4 BAND PASSIVE8: 3 BAND PASSIVE9: 3 BAND CONSOLE<br />
|-<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|0: SHELVING1: PEAKING2: DYNAMIC<br />
|-<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|0: OUTPUT1: FEEDBACK<br />
|-<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|0: POST P.A.1: PRE P.A.<br />
|-<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|0: AUTHENTIC1: IDEAL<br />
|-<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|1<br />
|PROX. EFFECT<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|3<br />
|PROX. EFFECT R<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|0: HI-/ULTRA-RES1: NORMAL RES2: STEREO3: STEREO ULTRARES<br />
|-<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|26<br />
|DELAY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|0: STEREO1: LEFT2: RIGHT3: SUM L+R<br />
|-<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|0: 6 dB/OCT1: 12 dB/OCT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: SMALL ROOM1: MEDIUM ROOM2: LARGE ROOM3: SMALL HALL4: MEDIUM HALL5: LARGE HALL6: SMALL CHAMBER7: MEDIUM CHAMBER8: LARGE CHAMBER9: SMALL PLATE10: MEDIUM PLATE11: LARGE PLATE12: SMALL CATHEDRAL13: MED. CATHEDRAL14: LARGE CATHEDRAL15: SMALL SPRING16: MEDIUM SPRING17: LARGE SPRING18: CAVERN19: STONE QUARRY20: STUDIO21: AMBIENCE22: CONCERT HALL23: LARGE DEEP HALL24: REC STUDIO C25: NORTH CHURCH26: SOUTH CHURCH27: LONDON PLATE28: SUN PLATE29: HUGE ROOM30: DRUM ROOM31: HALLWAY32: TUNNEL33: DEEP CHAMBER34: LG WOODEN ROOM35: GYMNASIUM36: ASYLUM HALL37: DEEP SPACE38: REC STUDIO A39: LG TILED ROOM40: VOCAL PLATE41: WIDE HALL42: RICH HALL<br />
|-<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|0: NORMAL1: HIGH<br />
|-<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO1: DIGITAL STEREO2: ANALOG MONO3: ANALOG STEREO4: MONO TAPE5: STEREO TAPE6: PING-PONG7: DUAL DELAY8: REVERSE DELAY9: SWEEP DELAY10: DUCKING DELAY11: VINTAGE DIGITAL12: 2290 W/ MOD13: AMBIENT STEREO14: DELUXE MIND GUY15: MONO BBD16: STEREO BBD17: LO-FI TAPE<br />
|-<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|0: MONO1: STEREO2: PING-PONG3: DUAL4: REVERSE5: SWEEP6: TAPE<br />
|-<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|0: 6 dB/OCT1: 12 dB/OCT2: 24 dB/OCT3: 36 dB/OCT4: 48 dB/OCT<br />
|-<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|0: BOTH1: LEFT2: RIGHT<br />
|-<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|0: BOTH1: LEFT2: RIGHT<br />
|-<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|0: LOW1: HIGH<br />
|-<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|0: QUAD-TAP1: PLEX DELAY2: PLEX DETUNE3: PLEX SHIFT4: BAND DELAY5: QUAD-SERIES6: TEN-TAP DLY7: RHYTHM TAP8: DIFFUSOR9: QUAD TAPE DLY<br />
|-<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|0: FORWARD1: REVERSE<br />
|-<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|0: 11: 22: 33: 4<br />
|-<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|0: 11: 22: 33: 4<br />
|-<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|0: MONO1: STEREO<br />
|-<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|0: CONSTANT1: INCREASING2: DECREASING3: UP / DOWN4: DOWN / UP5: SINE<br />
|-<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO1: DIGITAL STEREO2: ANALOG MONO3: ANALOG STEREO4: JAPAN CE-25: WARM STEREO6: 80'S STYLE7: TRIANGLE CHORUS8: 8-VOICE STEREO9: VINTAGE TAPE10: DIMENSION 111: DIMENSION 212: 4-VOICE ANALOG<br />
|-<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|0: OFF1: LOW2: HIGH<br />
|-<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|0: OFF1: LOW2: MED3: HIGH<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO1: DIGITAL STEREO2: ANALOG MONO3: ANALOG STEREO4: THRU-ZERO5: STEREO JET6: ZERO FLANGER7: POP FLANGER<br />
|-<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|0: OFF1: LOW2: MED3: HIGH<br />
|-<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DIGITAL MONO1: DIGITAL STEREO2: SCRIPT 453: SCRIPT 904: BLOCK 905: CLASSIC VIBE6: STEREO 8-STAGE7: BARBERPOLE<br />
|-<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|0: 21: 42: 63: 84: 105: 12<br />
|-<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|0: NORMAL1: VIBE2: BARBERPOLE<br />
|-<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|0: UP1: DOWN<br />
|-<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|0: OFF1: 0 DEG2: 90 DEG3: 180 DEG4: 270 DEG<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: FAS STANDARD1: CLYDE2: CRY BABE3: VX8464: COLOR-TONE5: FUNK6: MORTAL7: VX845<br />
|-<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|0: LINEAR1: LOG 30A2: LOG 20A3: LOG 15A4: LOG 10A5: LOG 5A<br />
|-<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|0: AAA1: EEE2: III3: OHH4: OOO5: EHH6: AHH7: AWW8: UHH9: ERR<br />
|-<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|0: AAA1: EEE2: III3: OHH4: OOO5: EHH6: AHH7: AWW8: UHH9: ERR<br />
|-<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|0: AAA1: EEE2: III3: OHH4: OOO5: EHH6: AHH7: AWW8: UHH9: ERR<br />
|-<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|0: LINEAR1: LOG 30A2: LOG 20A3: LOG 15A4: LOG 10A5: LOG 5A<br />
|-<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|0: STEREO1: LEFT ONLY2: RIGHT ONLY<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: TREMOLO1: PANNER<br />
|-<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: DETUNE1: FIXED HARM2: INTEL HARM3: CL. WHAMMY4: OCTAVE DIV5: CRYSTALS6: AD. WHAMMY7: ARPEGGIATOR8: CUST. SHIFT<br />
|-<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|0: UP 1 OCT1: DOWN 1 OCT2: UP 2 OCT3: DOWN 2 OCT4: UP|DN 1 OCT5: UP|DN 2 OCT<br />
|-<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|0: A 1: Bb2: B 3: C 4: Db5: D 6: Eb7: E 8: F 9: Gb10: G 11: Ab<br />
|-<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|0: IONIAN MAJ1: DORIAN2: PHRYGIAN3: LYDIAN4: MIXOLYDIAN5: AEOLIAN MIN6: LOCRIAN7: MEL. MINOR8: HARM. MINOR9: DIMINISHED10: WHOLE TONE11: DOM. SEVEN12: DIM. WHOLE13: PENTA. MAJ14: PENTA. MIN15: BLUES16: CHROMATIC17: CUSTOM<br />
|-<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|0: SMOOTH1: STEPPED<br />
|-<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|0: OFF1: POLY2: MONO<br />
|-<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT3: MUTE FX IN4: MUTE IN<br />
|-<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|0: DUAL1: BOTH2: PING-PONG<br />
|-<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0: 01: 12: 23: 34: 45: 56: 67: 78: 8<br />
|-<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0: 01: 12: 23: 34: 45: 56: 67: 78: 89: 910: 1011: 1112: 1213: 1314: 1415: 1516: 1617: 1718: 1819: 1920: 2021: 2122: 2223: 2324: 2425: 2526: 2627: 2728: 2829: 2930: 3031: Infinite<br />
|-<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|0: CONSTANT1: INCREASING2: DECREASING3: UP / DOWN4: DOWN / UP5: SINE<br />
|-<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|0: CONSTANT1: INCREASING2: DECREASING3: UP / DOWN4: DOWN / UP5: SINE<br />
|-<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|0: GLOBAL1: LOCAL<br />
|-<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|0: MONO1: STEREO<br />
|-<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: NULL1: LOWPASS2: BANDPASS3: HIGHPASS4: LOWSHELF5: HIGHSHLF6: PEAKING7: NOTCH8: TILT EQ9: LOWSHELF210: HIGHSHLF211: PEAKING2<br />
|-<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|0: 2nd1: 4th<br />
|-<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|0: RAT DIST1: PI FUZZ2: TUBE DRV 3-KNOB3: SUPER OD4: TREBLE BOOST5: MID BOOST6: T808 OD7: FAT RAT8: T808 MOD9: OCTAVE DIST10: PLUS DIST11: HARD FUZZ12: FET BOOST13: TAPE DIST14: FULL OD15: BLUES OD16: SHRED DIST17: M-ZONE DIST18: BENDER FUZZ19: BB PRE20: MASTER FUZZ21: FACE FUZZ22: BIT CRUSHER23: ETERNAL LOVE24: ESOTERIC ACB25: ESOTERIC RCB26: ZEN MASTER27: TUBE DRV 4-KNOB28: FAS LED-DRIVE29: SDD PREAMP30: FET PREAMP31: RUCKUS32: MICRO BOOST33: FAS BOOST34: TIMOTHY35: SHIMMER DRIVE<br />
|-<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|0: LV TUBE1: HARD2: SOFT3: GERMANIUM4: FW RECT5: HV TUBE6: SILICON7: 4558/DIODE8: LED9: FET10: OP-AMP11: VARIABLE12: NULL<br />
|-<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|0: L+R1: LEFT2: RIGHT<br />
|-<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|0: MODERN1: CLASSIC<br />
|-<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|0: NONE1: RIGHT2: LEFT3: BOTH<br />
|-<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|0: CLASSIC1: INTELLIGENT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAW UP4: SAW DOWN5: RANDOM6: LOG7: EXP8: TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|0: ONCE1: LOOP2: SUST<br />
|-<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|0: ONCE1: LOOP2: SUST<br />
|-<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|0: NONE 1: 1/64 TRIP2: 1/643: 1/64 DOT4: 1/32 TRIP5: 1/326: 1/32 DOT7: 1/16 TRIP8: 1/169: 1/16 DOT10: 1/8 TRIP11: 1/812: 1/8 DOT13: 1/4 TRIP14: 1/415: 1/4 DOT16: 1/2 TRIP17: 1/218: 1/2 DOT19: 1 TRIP20: 121: 1 DOT22: 223: 324: 425: 4/326: 5/427: 5/6428: 7/6429: 9/6430: 10/64 (5/32)31: 11/6432: 13/6433: 14/64 (7/32)34: 15/6435: 17/6436: 18/64 (9/32)37: 19/6438: 20/64 (5/16)39: 21/6440: 22/64 (11/32)41: 23/6442: 25/6443: 26/64 (13/32)44: 27/6445: 28/64 (7/16)46: 29/6447: 30/64 (15/32)48: 31/6449: 33/6450: 34/64 (17/32)51: 35/6452: 36/64 (9/16)53: 37/6454: 38/64 (19/32)55: 39/6456: 40/64 (5/8)57: 41/6458: 42/64 (21/32)59: 43/6460: 44/64 (11/16)61: 45/6462: 46/64 (23/32)63: 47/6464: 49/6465: 50/64 (25/32)66: 51/6467: 52/64 (13/16)68: 53/6469: 54/64 (27/32)70: 55/6471: 56/64 (7/8)72: 57/6473: 58/64 (29/32)74: 59/6475: 60/64 (15/16)76: 61/6477: 62/64 (31/32)78: 63/64<br />
|-<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0: 01: 12: 23: 34: 45: 56: 67: 78: 89: 910: 1011: 1112: 1213: 1314: 1415: 1516: 1617: 1718: 1819: 1920: 2021: 2122: 2223: 2324: 2425: 2526: 2627: 2728: 2829: 2930: 3031: 3132: 32<br />
|-<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|55<br />
|17<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|56<br />
|18<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|57<br />
|19<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|58<br />
|20<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|59<br />
|21<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|60<br />
|22<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|61<br />
|23<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|62<br />
|24<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|63<br />
|25<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|64<br />
|26<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|65<br />
|27<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|66<br />
|28<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|67<br />
|29<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|68<br />
|30<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|69<br />
|31<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|70<br />
|32<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|74<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|75<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|76<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|77<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|78<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|79<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|80<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|81<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|82<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|83<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|84<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|85<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|86<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|87<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|88<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|89<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|90<br />
|QUANTIZE<br />
|select<br />
|0: 1: OFF2: 23: 34: 45: 56: 67: 78: 89: 910: 1011: 1112: 1213: 1314: 1415: 1516: 1617: 1718: 1819: 1920: 2021: 2122: 2223: 2324: 2425: 2526: 2627: 2728: 2829: 2930: 3031: 3132: 32<br />
|-<br />
|CONTROLLERS<br />
|91<br />
|QUANTIZE<br />
|select<br />
|0: 1: OFF2: 23: 34: 45: 56: 67: 78: 89: 910: 1011: 1112: 1213: 1314: 1415: 1516: 1617: 1718: 1819: 1920: 2021: 2122: 2223: 2324: 2425: 2526: 2627: 2728: 2829: 2930: 3031: 3132: 32<br />
|-<br />
|CONTROLLERS<br />
|92<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|93<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|94<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|95<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|96<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|97<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|98<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|99<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|100<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|101<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|102<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|103<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|104<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|105<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|106<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|107<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAWTOOTH4: RANDOM5: WHT NOISE6: PINK NOISE7: OFF<br />
|-<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|0: OFF1: ENV ONLY2: PITCH+ENV3: QUANTIZE<br />
|-<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAWTOOTH4: RANDOM5: WHT NOISE6: PINK NOISE7: OFF<br />
|-<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|0: OFF1: ENV ONLY2: PITCH+ENV3: QUANTIZE<br />
|-<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|0: SINE1: TRIANGLE2: SQUARE3: SAWTOOTH4: RANDOM5: WHT NOISE6: PINK NOISE7: OFF<br />
|-<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|0: OFF1: ENV ONLY2: PITCH+ENV3: QUANTIZE<br />
|-<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|0: BLOCK L+R1: ROW 12: ROW 23: ROW 34: ROW 45: INPUT 16: INPUT 2<br />
|-<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|0: THRU1: MUTE FX OUT2: MUTE OUT<br />
|-<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|0: MONO1: STEREO2: MONO UNDO3: STEREO UNDO<br />
|-<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|0: OFF1: QUARTER2: EIGTH3: SIXTEENTH<br />
|-<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|}<br />
<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43337
MIDI SysEx
2017-05-21T20:10:21Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Block IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|140<br />
|Output<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
=MIDI SysEx: Axe Fx II/XL/XL+ Block Parameter IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|HARD<br>SOFT<br>SOFTER<br>SOFTEST<br />
|-<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|RMS<br>PEAK<br>RMS+PEAK<br>FAST RMS<br />
|-<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|BLOCK L+R<br>ROW 1<br>ROW 2<br>ROW 3<br>ROW 4<br>INPUT 1<br>INPUT 2<br>BLOCK L<br>BLOCK R<br />
|-<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|STUDIO COMP<br>PEDAL COMP 1<br>PEDAL COMP 2<br>DYNAMICS<br>OPTICAL 1<br>OPTICAL 2<br />
|-<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|INSTRUMENT<br>LINE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|10 BAND CONST Q<br>8 BAND CONST Q<br>7 BAND CONST Q<br>5 BAND CONST Q<br>10 BAND VAR Q<br>8 BAND VAR Q<br>7 BAND VAR Q<br>5 BAND VAR Q<br>5 BAND PASSIVE<br>4 BAND PASSIVE<br>3 BAND PASSIVE<br>3 BAND CONSOLE<br />
|-<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|SHELVING<br>PEAKING<br>BLOCKING<br>SHELVING2<br />
|-<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|SHELVING<br>PEAKING<br>BLOCKING<br>SHELVING2<br />
|-<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|PEAKING<br>SHELVING<br>SHELVING2<br />
|-<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|PEAKING<br>SHELVING<br>SHELVING2<br />
|-<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|59 BASSGUY<br>65 BASSGUY NRML<br>VIBRATO VERB<br>DELUXE VERB VIB<br>DOUBLE VERB VIB<br>JR BLUES<br>CLASS-A 15W TB<br>CLASS-A 30W<br>CLASS-A 30W TB<br>BRIT JM45<br>PLEXI 50W NRML<br>PLEXI 50W HI 1<br>1987X NORMAL<br>1987X TREBLE<br>BRIT 800<br>BRIT SUPER<br>HIPOWER NORMAL<br>HIPOWER BRILLNT<br>USA CLEAN<br>USA PRE CLEAN<br>USA RHYTHM<br>USA IIC+<br>USA IIC+ BRIGHT<br>USA LEAD<br>USA LEAD BRT<br>RECTO2 ORG VNTG<br>RECTO2 ORG MDRN<br>RECTO2 RED VNTG<br>RECTO2 RED MDRN<br>EURO BLUE<br>EURO RED<br>SHIVER CLEAN<br>SHIVER LEAD<br>EURO UBER<br>SOLO 99 CLEAN<br>SOLO 100 RHY<br>SOLO 100 LEAD<br>FRIEDMAN BE V1<br>FRIEDMAN HBE V1<br>PVH 6160 BLOCK<br>MR Z MZ-38<br>CA3+ RHY<br>CA3+ LEAD<br>WRECKER ROCKET<br>CORNCOB M50<br>CA OD-2<br>FRYETTE D60 L<br>FRYETTE D60 M<br>BRIT BROWN<br>CITRUS RV50<br>JAZZ 120<br>ENERGYBALL<br>ODS-100 CLEAN<br>ODS-100 HRM<br>FAS RHYTHM<br>FAS LEAD 1<br>FAS LEAD 2<br>FAS MODERN<br>DAS METALL<br>BRIT PRE<br>BUTTERY<br>BOUTIQUE 1<br>BOUTIQUE 2<br>CAMERON CCV 1A<br>CAMERON CCV 2A<br>SV BASS<br>TUBE PRE<br>FAS BROWN<br>BIG HAIR<br>SOLO 99 LEAD<br>SUPERTWEED<br>TX STAR LEAD<br>FAS WRECK<br>BRIT JVM OD1 OR<br>BRIT JVM OD2 OR<br>FAS 6160<br>CALI LEGGY<br>USA LEAD +<br>USA LEAD BRT +<br>PRINCE TONE<br>BLANKNSHP LEEDS<br>5153 100W GREEN<br>5153 100W BLUE<br>5153 100W RED<br>SOLO 88 RHYTHM<br>DIV/13 CJ<br>HERBIE CH2-<br>HERBIE CH2+<br>HERBIE CH3<br>DIRTY SHIRLEY 1<br>DIZZY V4 BLUE 2<br>DIZZY V4 BLUE 3<br>DIZZY V4 BLUE 4<br>SUHR BADGER 18<br>SUHR BADGER 30<br>PRINCE TONE NR<br>SUPREMO TREM<br>ATOMICA LOW<br>ATOMICA HIGH<br>DELUXE TWEED<br>SPAWN ROD OD2-1<br>SPAWN ROD OD2-2<br>SPAWN ROD OD2-3<br>BRIT SILVER<br>SPAWN NITROUS 2<br>FAS CRUNCH<br>TWO STONE J35 1<br>FOX ODS<br>HOT KITTY<br>BAND-COMMANDER<br>SUPER VERB VIB<br>VIBRA-KING<br>GIBTONE SCOUT<br>PVH 6160+ LD<br>SOLO 100 CLEAN<br>USA PRE LD2 GRN<br>USA PRE LD2 YLW<br>CA3+ CLEAN<br>FOX ODS DEEP<br>BRIT JVM OD1 GN<br>BRIT JVM OD2 GN<br>VIBRATO LUX<br>BRIT 800 MOD<br>NUCLEAR-TONE<br>BLUDOJAI CLEAN<br>BLUDOJAI LD PAB<br>PLEXI 100W HIGH<br>PLEXI 100W NRML<br>RUBY ROCKET<br>AC-20 EF86 B<br>PRINCE TONE REV<br>COMET CONCOURSE<br>FAS MODERN II<br>CA TRIPTIK MDRN<br>CA TRIPTIK CLSC<br>CA TRIPTIK CLN<br>THORDENDAL VINT<br>THORDENDAL MDRN<br>ODS-100 HRM MID<br>EURO BLUE MDRN<br>EURO RED MDRN<br>PLEXI 50W JUMP<br>AC-20 EF86 T<br>COMET 60<br>HIPOWER JUMPED<br>PLEXI 100W JUMP<br>BRIT JM45 JUMP<br>1987X JUMP<br>RECTO1 ORG VNTG<br>RECTO1 RED<br>ODS-100 FORD 1<br>BOGFISH STRATO<br>BOGFISH BROWN<br>5F1 TWEED<br>WRECKER EXPRESS<br>TWO STONE J35 2<br>ODS-100 FORD 2<br>MR Z MZ-8<br>CAR ROAMER<br>USA SUB BLUES<br>WRECKER LVRPOOL<br>CITRUS TERRIER<br>CITRUS A30 CLN<br>CITRUS A30 DRTY<br>DIV/13 FT37 LO<br>DIV/13 FT37 HI<br>MATCHBOX D-30<br>FAS CLASS-A<br>USA BASS 400 1<br>USA BASS 400 2<br>CITRUS BASS 200<br>FAS BASS<br>TREMOLO LUX<br>FAS BROOTALZ<br>RECTO1 ORG MDRN<br>ANGLE SEVERE 1<br>ANGLE SEVERE 2<br>USA PRE LD2 RED<br>USA PRE LD1 RED<br>TX STAR CLEAN<br>AC-20 12AX7 T<br>VIBRATO VERB AA<br>VIBRATO VERB AB<br>CA TUCANA LEAD<br>JR BLUES FAT<br>SOLO 88 LEAD<br>BRIT AFS100 1<br>BRIT AFS100 2<br>CLASS-A 30W HOT<br>DIZZY V4 SLVR 2<br>DIZZY V4 SLVR 3<br>DIZZY V4 SLVR 4<br>1959SLP NORMAL<br>1959SLP TREBLE<br>1959SLP JUMP<br>FAS MODERN III<br>ODS-100 FORD MD<br>MR Z HWY 66<br>6G4 SUPER<br>6G12 CONCERT<br>65 BASSGUY BASS<br>VIBRA-KING FAT<br>SPAWN ROD OD1-1<br>SPAWN ROD OD1-2<br>SPAWN ROD OD1-3<br>CA TUCANA CLN<br>BRIT JVM OD1 RD<br>BRIT JVM OD2 RD<br>CAMERON CCV 1B<br>CAMERON CCV 2B<br>CAMERON CCV 2C<br>CAMERON CCV 2D<br>FRIEDMAN SM BOX<br>5153 50W BLUE<br>DIV/13 CJ BOOST<br>USA IIC+ DEEP<br>USA IIC+ BRT/DP<br>5F8 TWEED<br>DOUBLE VERB SF<br>VIBRATO VERB CS<br>JMPRE-1 OD1<br>JMPRE-1 OD2<br>JMPRE-1 OD1 BS<br>JMPRE-1 OD2 BS<br>DELUXE VERB NRM<br>DOUBLE VERB NRM<br>SUPER VERB NRM<br>BLUDOJAI LD 2<br>PLEXI 50W 6550<br>FAS HOT ROD<br>PVH 6160+ RHY B<br>PVH 6160+ RHY<br>SOLO 88 CLEAN<br>CLASS-A 30W BRT<br>PLEXI 50W HI 2<br>SPAWN NITROUS 1<br>RUBY ROCKET BRT<br>AC-20 12AX7 B<br>PLEXI 100W 1970<br>JS410 LEAD OR<br>JS410 LEAD RD<br>JS410 CRUNCH OR<br>JS410 CRUNCH RD<br>FRIEDMAN BE V2<br>FRIEDMAN HBE V2<br>DWEEZIL'S B-MAN<br>FRIEDMAN BE<br>FRIEDMAN HBE<br>USA IIC++<br>LEGATO 100<br>CAPT HOOK 2B<br>CAPT HOOK 3B<br>CAPT HOOK 2A<br>CAPT HOOK 3A<br>CAPT HOOK 1A<br>CAPT HOOK 1B<br>DIRTY SHIRLEY 2<br>BRIT 800 #34<br>5F1 TWEED EC<br />
|-<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|PRE<br>POST<br>MID<br>END<br />
|-<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|LEFT<br>RIGHT<br>SUM L+R<br />
|-<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|LEFT<br>RIGHT<br>SUM L+R<br />
|-<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|ACTIVE<br>DEFAULT<br>BROWNFACE<br>BLACKFACE<br>BASSGUY<br>TOP BOOST<br>PLEXI<br>BOUTIQUE<br>HI POWER<br>USA NORMAL<br>USA FAT<br>RECTO1 ORG<br>RECTO1 RED<br>SKYLINE<br>GERMAN<br>JR BLUES<br>WRECKER 1<br>NEUTRAL<br>CA3+SE<br>FREYER D60<br>MR Z 38 SR<br>EURO UBER<br>PVH 6160<br>SOLO 100<br>CORNCOB<br>XTC<br>CAROLANN<br>CITRUS<br>BRIT JM45<br>USA RHY<br>RECTO2 ORG<br>RECTO2 RED<br>SHIVER CLN<br>CAMERON<br>BRIT JVM 0D1<br>BRIT JVM 0D2<br>5153 GREEN<br>5153 BLUE<br>5153 RED<br>BRIT SUPER<br>DIV13 CJ<br>BADGER 18<br>ATOMICA<br>SPAWN<br>BADGER 30<br>BRIT SILVER<br>SUPER VERB<br>HOT KITTY<br>VIBRATO-KING<br>GIBTONE SCOUT<br>CA3+SE CLEAN<br>BF FIXED MID<br>GERMAN V4<br>VIBRATO-LUX<br>DIRTY SHIRLEY<br>PLEXI 100W<br>RUBY ROCKET BRT<br>CONCOURSE<br>TRIPTIK LD<br>TRIPTIK CLN<br>JAZZ 120<br>BOGFISH<br>WRECKER 2<br>SKYLINE DEEP<br>USA SUB BLUES<br>WRECKER LVRPOOL<br>CITRUS A30 CLN<br>CITRUS A30 DRT<br>CAR ROAMER<br>USA BASS<br>CITRUS BASS<br>STUDIO<br>BRIT 800<br>RECTO1 ORG MDRN<br>ANGLE SEVERE 1<br>ANGLE SEVERE 2<br>USA PRE LD1 RED<br>RECTO ORG BRT<br>RECTO RED BRT<br>VIBROVERB AA<br>PVH 6160 II LD<br>RUMBLE HRM<br>MR Z HWY 66<br>SUPER 6G4<br>65 BASSMAN BASS<br>FREIDMAN<br>BAND-COMMANDER<br>USA PRE CLEAN<br>TUCANA CLEAN<br>FRIEDMAN SM BOX<br>TX STAR<br>USA IIC+<br>THORDENDAL<br>SOLO 99<br>BLUDOJAI<br>HERBIE<br>PVH 6160 II RHY<br>SOLO 88 CLEAN<br>JS410<br>JS410 MIDSHIFT<br>RUBY ROCKET<br>USA IIC++<br>LEGATO 100<br>HOOK EDGE<br>HOOK NO EDGE<br>HOOK CLEAN 1<br>HOOK CLEAN 2<br>SOLO 88<br />
|-<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|PRE-PI<br>POST-PI<br>PRE-TRIODE<br />
|-<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|OFF<br>AUTH<br>IDEAL<br />
|-<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|IDEAL TETRODE<br>IDEAL PENTODE<br>EL34/6CA7<br>EL84/6BQ5<br>6L6/5881<br>6V6<br>KT66<br>KT88<br>6550<br>6973<br>6AQ5<br>300B<br />
|-<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|12AX7A SYL<br>ECC83<br>7025<br>12AX7A JJ<br>ECC803S<br>EF86<br>12AX7A RCA<br>12AX7A<br>12AX7B<br />
|-<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|AC<br>DC<br />
|-<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|8 BAND VAR Q<br>7 BAND VAR Q<br>5 BAND (MARK)<br>8 BAND CONST Q<br>7 BAND CONST Q<br>5 BAND CONST Q<br>5 BAND PASSIVE<br>4 BAND PASSIVE<br>3 BAND PASSIVE<br>3 BAND CONSOLE<br />
|-<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|SHELVING<br>PEAKING<br>DYNAMIC<br />
|-<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|OUTPUT<br>FEEDBACK<br />
|-<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|POST P.A.<br>PRE P.A.<br />
|-<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|AUTHENTIC<br>IDEAL<br />
|-<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|1<br />
|MIC<br />
|select<br />
|NONE<br>57 DYN<br>58 DYN<br>421 DYN<br>87A COND<br>U87 COND<br>E609 DYN<br>RE16 DYN<br>R121 RIB<br>D112 DYN<br>67 COND<br>NULL<br>INVERT<br />
|-<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|3<br />
|MIC R<br />
|select<br />
|NONE<br>57 DYN<br>58 DYN<br>421 DYN<br>87A COND<br>U87 COND<br>E609 DYN<br>RE16 DYN<br>R121 RIB<br>D112 DYN<br>67 COND<br>NULL<br>INVERT<br />
|-<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|HI-/ULTRA-RES<br>NORMAL RES<br>STEREO<br>STEREO ULTRARES<br />
|-<br />
|CAB<br />
|14<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|15<br />
|SATURATION<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|16<br />
|ROOM LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|17<br />
|ROOM SIZE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|18<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|21<br />
|SPEAKER SIZE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|23<br />
|AIR<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|24<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|25<br />
|AIR FREQ<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|26<br />
|DELAY L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|STEREO<br>LEFT<br>RIGHT<br>SUM L+R<br />
|-<br />
|CAB<br />
|31<br />
|PREAMP TYPE<br />
|select<br />
|NONE<br>TUBE<br>BIPOLAR<br>FET I<br>FET II<br>TRANSFORMER<br>TAPE 70us<br>TAPE 50us<br>TAPE 35us<br>VINTAGE<br>MODERN<br>EXCITER<br />
|-<br />
|CAB<br />
|32<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|33<br />
|MID<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|34<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|35<br />
|PREAMP MODE<br />
|select<br />
|ECONOMY<br>HIGH QUALITY<br />
|-<br />
|CAB<br />
|36<br />
|DEPHASE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT<br>12 dB/OCT<br />
|-<br />
|CAB<br />
|38<br />
|MOTOR TIME CONSTANT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|SMALL ROOM<br>MEDIUM ROOM<br>LARGE ROOM<br>SMALL HALL<br>MEDIUM HALL<br>LARGE HALL<br>SMALL CHAMBER<br>MEDIUM CHAMBER<br>LARGE CHAMBER<br>SMALL PLATE<br>MEDIUM PLATE<br>LARGE PLATE<br>SMALL CATHEDRAL<br>MED. CATHEDRAL<br>LARGE CATHEDRAL<br>SMALL SPRING<br>MEDIUM SPRING<br>LARGE SPRING<br>CAVERN<br>STONE QUARRY<br>STUDIO<br>AMBIENCE<br>CONCERT HALL<br>LARGE DEEP HALL<br>REC STUDIO C<br>NORTH CHURCH<br>SOUTH CHURCH<br>LONDON PLATE<br>SUN PLATE<br>HUGE ROOM<br>DRUM ROOM<br>HALLWAY<br>TUNNEL<br>DEEP CHAMBER<br>LG WOODEN ROOM<br>GYMNASIUM<br>ASYLUM HALL<br>DEEP SPACE<br>REC STUDIO A<br>LG TILED ROOM<br>VOCAL PLATE<br>WIDE HALL<br>RICH HALL<br />
|-<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|NORMAL<br>HIGH<br />
|-<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO<br>DIGITAL STEREO<br>ANALOG MONO<br>ANALOG STEREO<br>MONO TAPE<br>STEREO TAPE<br>PING-PONG<br>DUAL DELAY<br>REVERSE DELAY<br>SWEEP DELAY<br>DUCKING DELAY<br>VINTAGE DIGITAL<br>2290 W/ MOD<br>AMBIENT STEREO<br>DELUXE MIND GUY<br>MONO BBD<br>STEREO BBD<br>LO-FI TAPE<br />
|-<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|MONO<br>STEREO<br>PING-PONG<br>DUAL<br>REVERSE<br>SWEEP<br>TAPE<br />
|-<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT<br>12 dB/OCT<br>24 dB/OCT<br>36 dB/OCT<br>48 dB/OCT<br />
|-<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|BOTH<br>LEFT<br>RIGHT<br />
|-<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|BOTH<br>LEFT<br>RIGHT<br />
|-<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|LOW<br>HIGH<br />
|-<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|QUAD-TAP<br>PLEX DELAY<br>PLEX DETUNE<br>PLEX SHIFT<br>BAND DELAY<br>QUAD-SERIES<br>TEN-TAP DLY<br>RHYTHM TAP<br>DIFFUSOR<br>QUAD TAPE DLY<br />
|-<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|FORWARD<br>REVERSE<br />
|-<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|1<br>2<br>3<br>4<br />
|-<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|1<br>2<br>3<br>4<br />
|-<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|MONO<br>STEREO<br />
|-<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT<br>INCREASING<br>DECREASING<br>UP / DOWN<br>DOWN / UP<br>SINE<br />
|-<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO<br>DIGITAL STEREO<br>ANALOG MONO<br>ANALOG STEREO<br>JAPAN CE-2<br>WARM STEREO<br>80'S STYLE<br>TRIANGLE CHORUS<br>8-VOICE STEREO<br>VINTAGE TAPE<br>DIMENSION 1<br>DIMENSION 2<br>4-VOICE ANALOG<br />
|-<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|OFF<br>LOW<br>HIGH<br />
|-<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|OFF<br>LOW<br>MED<br>HIGH<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO<br>DIGITAL STEREO<br>ANALOG MONO<br>ANALOG STEREO<br>THRU-ZERO<br>STEREO JET<br>ZERO FLANGER<br>POP FLANGER<br />
|-<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|OFF<br>LOW<br>MED<br>HIGH<br />
|-<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO<br>DIGITAL STEREO<br>SCRIPT 45<br>SCRIPT 90<br>BLOCK 90<br>CLASSIC VIBE<br>STEREO 8-STAGE<br>BARBERPOLE<br />
|-<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|2<br>4<br>6<br>8<br>10<br>12<br />
|-<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|NORMAL<br>VIBE<br>BARBERPOLE<br />
|-<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|UP<br>DOWN<br />
|-<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|OFF<br>0 DEG<br>90 DEG<br>180 DEG<br>270 DEG<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|FAS STANDARD<br>CLYDE<br>CRY BABE<br>VX846<br>COLOR-TONE<br>FUNK<br>MORTAL<br>VX845<br />
|-<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|LINEAR<br>LOG 30A<br>LOG 20A<br>LOG 15A<br>LOG 10A<br>LOG 5A<br />
|-<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|AAA<br>EEE<br>III<br>OHH<br>OOO<br>EHH<br>AHH<br>AWW<br>UHH<br>ERR<br />
|-<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|AAA<br>EEE<br>III<br>OHH<br>OOO<br>EHH<br>AHH<br>AWW<br>UHH<br>ERR<br />
|-<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|AAA<br>EEE<br>III<br>OHH<br>OOO<br>EHH<br>AHH<br>AWW<br>UHH<br>ERR<br />
|-<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|LINEAR<br>LOG 30A<br>LOG 20A<br>LOG 15A<br>LOG 10A<br>LOG 5A<br />
|-<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|STEREO<br>LEFT ONLY<br>RIGHT ONLY<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|TREMOLO<br>PANNER<br />
|-<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DETUNE<br>FIXED HARM<br>INTEL HARM<br>CL. WHAMMY<br>OCTAVE DIV<br>CRYSTALS<br>AD. WHAMMY<br>ARPEGGIATOR<br>CUST. SHIFT<br />
|-<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|UP 1 OCT<br>DOWN 1 OCT<br>UP 2 OCT<br>DOWN 2 OCT<br>UP|DN 1 OCT<br>UP|DN 2 OCT<br />
|-<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|A <br>Bb<br>B <br>C <br>Db<br>D <br>Eb<br>E <br>F <br>Gb<br>G <br>Ab<br />
|-<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|IONIAN MAJ<br>DORIAN<br>PHRYGIAN<br>LYDIAN<br>MIXOLYDIAN<br>AEOLIAN MIN<br>LOCRIAN<br>MEL. MINOR<br>HARM. MINOR<br>DIMINISHED<br>WHOLE TONE<br>DOM. SEVEN<br>DIM. WHOLE<br>PENTA. MAJ<br>PENTA. MIN<br>BLUES<br>CHROMATIC<br>CUSTOM<br />
|-<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|SMOOTH<br>STEPPED<br />
|-<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|OFF<br>POLY<br>MONO<br />
|-<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|DUAL<br>BOTH<br>PING-PONG<br />
|-<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br />
|-<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>Infinite<br />
|-<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|CONSTANT<br>INCREASING<br>DECREASING<br>UP / DOWN<br>DOWN / UP<br>SINE<br />
|-<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT<br>INCREASING<br>DECREASING<br>UP / DOWN<br>DOWN / UP<br>SINE<br />
|-<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|GLOBAL<br>LOCAL<br />
|-<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|MONO<br>STEREO<br />
|-<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|NULL<br>LOWPASS<br>BANDPASS<br>HIGHPASS<br>LOWSHELF<br>HIGHSHLF<br>PEAKING<br>NOTCH<br>TILT EQ<br>LOWSHELF2<br>HIGHSHLF2<br>PEAKING2<br />
|-<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|2nd<br>4th<br />
|-<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|RAT DIST<br>PI FUZZ<br>TUBE DRV 3-KNOB<br>SUPER OD<br>TREBLE BOOST<br>MID BOOST<br>T808 OD<br>FAT RAT<br>T808 MOD<br>OCTAVE DIST<br>PLUS DIST<br>HARD FUZZ<br>FET BOOST<br>TAPE DIST<br>FULL OD<br>BLUES OD<br>SHRED DIST<br>M-ZONE DIST<br>BENDER FUZZ<br>BB PRE<br>MASTER FUZZ<br>FACE FUZZ<br>BIT CRUSHER<br>ETERNAL LOVE<br>ESOTERIC ACB<br>ESOTERIC RCB<br>ZEN MASTER<br>TUBE DRV 4-KNOB<br>FAS LED-DRIVE<br>SDD PREAMP<br>FET PREAMP<br>RUCKUS<br>MICRO BOOST<br>FAS BOOST<br>TIMOTHY<br>SHIMMER DRIVE<br />
|-<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|LV TUBE<br>HARD<br>SOFT<br>GERMANIUM<br>FW RECT<br>HV TUBE<br>SILICON<br>4558/DIODE<br>LED<br>FET<br>OP-AMP<br>VARIABLE<br>NULL<br />
|-<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|L+R<br>LEFT<br>RIGHT<br />
|-<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|MODERN<br>CLASSIC<br />
|-<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|4<br />
|INPUT Z<br />
|select<br />
|AUTO: <br>1M<br>1M+CAP<br>230K<br>230K+CAP<br>90K<br>90K+CAP<br>70K<br>70K+CAP<br>32K<br>32K+CAP<br>22K<br>22K+CAP<br />
|-<br />
|INPUT<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|7<br />
|EFFECT TYPE<br />
|select<br />
|CLASSIC<br>INTELLIGENT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|ONCE<br>LOOP<br>SUST<br />
|-<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|ONCE<br>LOOP<br>SUST<br />
|-<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br />
|-<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|55<br />
|A<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|56<br />
|B<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|57<br />
|C<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|58<br />
|D<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|59<br />
|17<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|60<br />
|18<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|61<br />
|19<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|62<br />
|20<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|63<br />
|21<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|64<br />
|22<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|65<br />
|23<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|66<br />
|24<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|67<br />
|25<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|68<br />
|26<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|69<br />
|27<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|70<br />
|28<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|71<br />
|29<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|72<br />
|30<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|73<br />
|31<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|74<br />
|32<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|77<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|78<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|79<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|80<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|81<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|82<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|83<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|84<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|85<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|86<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|87<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|88<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|89<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|90<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|91<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|92<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|93<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|94<br />
|QUANTIZE<br />
|select<br />
|<br>OFF<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br />
|-<br />
|CONTROLLERS<br />
|95<br />
|QUANTIZE<br />
|select<br />
|<br>OFF<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAWTOOTH<br>RANDOM<br>WHT NOISE<br>PINK NOISE<br>OFF<br />
|-<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|OFF<br>ENV ONLY<br>PITCH+ENV<br>QUANTIZE<br />
|-<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAWTOOTH<br>RANDOM<br>WHT NOISE<br>PINK NOISE<br>OFF<br />
|-<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|OFF<br>ENV ONLY<br>PITCH+ENV<br>QUANTIZE<br />
|-<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAWTOOTH<br>RANDOM<br>WHT NOISE<br>PINK NOISE<br>OFF<br />
|-<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|OFF<br>ENV ONLY<br>PITCH+ENV<br>QUANTIZE<br />
|-<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|BLOCK L+R<br>ROW 1<br>ROW 2<br>ROW 3<br>ROW 4<br>INPUT 1<br>INPUT 2<br />
|-<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|MONO<br>STEREO<br>MONO UNDO<br>STEREO UNDO<br />
|-<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|OFF<br>QUARTER<br>EIGTH<br>SIXTEENTH<br />
|-<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SND<br />
|0<br />
|SEND LEVEL<br />
|knob<br />
| <br />
|-<br />
|SND<br />
|1<br />
|OUT LEVEL<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RTN<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|RTN<br />
|4<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MIX<br />
|0<br />
|Gain 1<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|1<br />
|Gain 2<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|2<br />
|Gain 3<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|3<br />
|Gain 4<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|4<br />
|Balance 1<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|5<br />
|Balance 2<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|6<br />
|Balance 3<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|7<br />
|Balance 4<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|8<br />
|MASTER<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|9<br />
|OUT MODE<br />
|select<br />
|STEREO<br>MONO<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MBC<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|2<br />
|Threshold 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|3<br />
|Ratio 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|4<br />
|Attack 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|5<br />
|Release 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|6<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|7<br />
|Detect 1<br />
|select<br />
|RMS<br>PEAK<br>FAST RMS<br />
|-<br />
|MBC<br />
|8<br />
|Mute 1<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|9<br />
|Threshold 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|10<br />
|Ratio 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|11<br />
|Attack 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|12<br />
|Release 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|13<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|14<br />
|Detect 2<br />
|select<br />
|RMS<br>PEAK<br>FAST RMS<br />
|-<br />
|MBC<br />
|15<br />
|Mute 2<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|16<br />
|Threshold 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|17<br />
|Ratio 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|18<br />
|Attack 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|19<br />
|Release 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|20<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|21<br />
|Detect 3<br />
|select<br />
|RMS<br>PEAK<br>FAST RMS<br />
|-<br />
|MBC<br />
|22<br />
|Mute 3<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|24<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|25<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|XVR<br />
|0<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|1<br />
|Freq Multi.<br />
|select<br />
|X 1<br>X 10<br />
|-<br />
|XVR<br />
|2<br />
|Lo Level L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|3<br />
|Hi Level L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|4<br />
|Lo Level R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|5<br />
|Hi Level R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|6<br />
|Lo Pan L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|7<br />
|Hi Pan L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|8<br />
|Lo Pan R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|9<br />
|Hi Pan R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|11<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|12<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MGT<br />
|0<br />
|In Gain<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|2<br />
|Time<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|3<br />
|Number of Taps<br />
|rangeKnob<br />
| <br />
|-<br />
|MGT<br />
|4<br />
|Time Shape<br />
|select<br />
|CONSTANT<br>INCREASING<br>DECREASING<br>UP / DOWN<br>DOWN / UP<br>SINE<br />
|-<br />
|MGT<br />
|5<br />
|Time Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|6<br />
|Amplitude Shape<br />
|select<br />
|CONSTANT<br>INCREASING<br>DECREASING<br>UP / DOWN<br>DOWN / UP<br>SINE<br />
|-<br />
|MGT<br />
|7<br />
|Alplitude Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|8<br />
|Pan Shape<br />
|select<br />
|CONSTANT<br>INCREASING<br>DECREASING<br>UP / DOWN<br>DOWN / UP<br>SINE<br />
|-<br />
|MGT<br />
|9<br />
|Pan Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|10<br />
|Time Randomize<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|11<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|12<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|13<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|14<br />
|Bypass Mode<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|MGT<br />
|15<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|QCH<br />
|0<br />
|Master Time<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|2<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|3<br />
|Master Rate<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|4<br />
|Master Depth<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|5<br />
|Feedback<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|6<br />
|Time 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|7<br />
|Time 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|8<br />
|Time 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|9<br />
|Time 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|10<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|11<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|12<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|13<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|14<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|15<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|16<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|17<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|18<br />
|Depth 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|19<br />
|Depth 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|20<br />
|Depth 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|21<br />
|Depth 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|22<br />
|Morph 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|23<br />
|Morph 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|24<br />
|Morph 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|25<br />
|Morph 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|26<br />
|LFO1 Type<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|QCH<br />
|27<br />
|LFO2 Type<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|QCH<br />
|28<br />
|LFO3 Type<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|QCH<br />
|29<br />
|LFO4 Type<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|QCH<br />
|30<br />
|LFO1 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|31<br />
|LFO2 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|32<br />
|LFO3 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|33<br />
|LFO4 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|34<br />
|M. Depth (LFO4>All)<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|35<br />
|Input Mode<br />
|select<br />
|MONO<br>STEREO<br />
|-<br />
|QCH<br />
|36<br />
|LFO1 Master<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|37<br />
|Wide Mode<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|38<br />
|M. Phase (LFO4)<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|39<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|40<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|41<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|42<br />
|Bypass Mode<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|QCH<br />
|43<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|45<br />
|Hi Cut Frequency<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TMA<br />
|0<br />
|Mode<br />
|select<br />
|OFFLINE<br>LIVE<br />
|-<br />
|TMA<br />
|1<br />
|Amount<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|2<br />
|Smoothing<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|3<br />
|Reference<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|4<br />
|Local<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|6<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|7<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|8<br />
|Bypass Mode<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|TMA<br />
|10<br />
|Ref Source<br />
|select<br />
|ROW 1<br>ROW 2<br>ROW 3<br>ROW 4<br>INPUT 1<br>INPUT 2<br>BLK IN<br>USB<br />
|-<br />
|TMA<br />
|11<br />
|Avg. Time<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|12<br />
|Ref Channel<br />
|select<br />
|SUM L+R<br>LEFT<br>RIGHT<br />
|-<br />
|TMA<br />
|13<br />
|Local Channel<br />
|select<br />
|SUM L+R<br>LEFT<br>RIGHT<br />
|-<br />
|TMA<br />
|14<br />
|Ref Solo<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|15<br />
|Resolution<br />
|select<br />
|LOW<br>HIGH<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOC<br />
|0<br />
|Input Select<br />
|select<br />
|LEFT<br>RIGHT<br />
|-<br />
|VOC<br />
|1<br />
|Bands<br />
|select<br />
|4<br>8<br>12<br>16<br />
|-<br />
|VOC<br />
|2<br />
|Frequency Min<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|3<br />
|Frequency Max<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|4<br />
|Shift<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|5<br />
|Freeze<br />
|switch<br />
| <br />
|-<br />
|VOC<br />
|6<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|7<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|8<br />
|Resonance<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|9<br />
|Attack<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|10<br />
|Release<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|11<br />
|Highpass Mix In<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|12<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|13<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|14<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|15<br />
|Bypass Mode<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|VOC<br />
|16<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|VOC<br />
|17<br />
|Level 1<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|18<br />
|Level 2<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|19<br />
|Level 3<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|20<br />
|Level 4<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|21<br />
|Level 5<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|22<br />
|Level 6<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|23<br />
|Level 7<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|24<br />
|Level 8<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|25<br />
|Level 9<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|26<br />
|Level 10<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|27<br />
|Level 11<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|28<br />
|Level 12<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|29<br />
|Level 13<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|30<br />
|Level 14<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|31<br />
|Level 15<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|32<br />
|Level 16<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|33<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|34<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|35<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|36<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|37<br />
|Pan 5<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|38<br />
|Pan 6<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|39<br />
|Pan 7<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|40<br />
|Pan 8<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|41<br />
|Pan 9<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|42<br />
|Pan 10<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|43<br />
|Pan 11<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|44<br />
|Pan 12<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|45<br />
|Pan 13<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|46<br />
|Pan 14<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|47<br />
|Pan 15<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|48<br />
|Pan 16<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RES<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|MANUAL<br>CHORDAL<br />
|-<br />
|RES<br />
|1<br />
|Chord Type<br />
|select<br />
|MAJOR<br>MAJOR 6<br>DOM. 7<br>MAJOR 7<br>MINOR<br>MINOR 6<br>MINOR 7<br>DIMIN.<br>AUGMEN.<br />
|-<br />
|RES<br />
|2<br />
|Input Gain<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|3<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|4<br />
|Master Freq<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|5<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|6<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|7<br />
|Master Feedback<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|8<br />
|Master Q<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|9<br />
|Freq 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|10<br />
|Freq 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|11<br />
|Freq 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|12<br />
|Freq 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|13<br />
|FB 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|14<br />
|FB 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|15<br />
|FB 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|16<br />
|FB 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|17<br />
|Filter Loc 1<br />
|select<br />
|PRE<br>POST<br />
|-<br />
|RES<br />
|18<br />
|Filter Loc 2<br />
|select<br />
|PRE<br>POST<br />
|-<br />
|RES<br />
|19<br />
|Filter Loc 3<br />
|select<br />
|PRE<br>POST<br />
|-<br />
|RES<br />
|20<br />
|Filter Loc 4<br />
|select<br />
|PRE<br>POST<br />
|-<br />
|RES<br />
|21<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|22<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|23<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|24<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|25<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|26<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|27<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|28<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|29<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|30<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|31<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|32<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|33<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|34<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|35<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|36<br />
|Bypass Mode<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|RES<br />
|37<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|RES<br />
|39<br />
|Input Mode<br />
|select<br />
|MONO<br>STEREO<br />
|}<br />
=MIDI SysEx: AX8 Block Parameter IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|HARD<br>SOFT<br>SOFTER<br>SOFTEST<br />
|-<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|RMS<br>PEAK<br>RMS+PEAK<br>FAST RMS<br />
|-<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|BLOCK L+R<br>ROW 1<br>ROW 2<br>ROW 3<br>ROW 4<br>INPUT 1<br>INPUT 2<br>BLOCK L<br>BLOCK R<br />
|-<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|STUDIO COMP<br>PEDAL COMP 1<br>PEDAL COMP 2<br>DYNAMICS<br>OPTICAL 1<br>OPTICAL 2<br />
|-<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|INSTRUMENT<br>LINE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|10 BAND CONST Q<br>8 BAND CONST Q<br>7 BAND CONST Q<br>5 BAND CONST Q<br>10 BAND VAR Q<br>8 BAND VAR Q<br>7 BAND VAR Q<br>5 BAND VAR Q<br>5 BAND PASSIVE<br>4 BAND PASSIVE<br>3 BAND PASSIVE<br>3 BAND CONSOLE<br />
|-<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|SHELVING<br>PEAKING<br>BLOCKING<br>SHELVING2<br />
|-<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|SHELVING<br>PEAKING<br>BLOCKING<br>SHELVING2<br />
|-<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|PEAKING<br>SHELVING<br>SHELVING2<br />
|-<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|PEAKING<br>SHELVING<br>SHELVING2<br />
|-<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|59 BASSGUY<br>65 BASSGUY NRML<br>VIBRATO VERB<br>DELUXE VERB VIB<br>DOUBLE VERB VIB<br>JR BLUES<br>CLASS-A 15W TB<br>CLASS-A 30W<br>CLASS-A 30W TB<br>BRIT JM45<br>PLEXI 50W NRML<br>PLEXI 50W HI 1<br>1987X NORMAL<br>1987X TREBLE<br>BRIT 800<br>BRIT SUPER<br>HIPOWER NORMAL<br>HIPOWER BRILLNT<br>USA CLEAN<br>USA PRE CLEAN<br>USA RHYTHM<br>USA IIC+<br>USA IIC+ BRIGHT<br>USA LEAD<br>USA LEAD BRT<br>RECTO2 ORG VNTG<br>RECTO2 ORG MDRN<br>RECTO2 RED VNTG<br>RECTO2 RED MDRN<br>EURO BLUE<br>EURO RED<br>SHIVER CLEAN<br>SHIVER LEAD<br>EURO UBER<br>SOLO 99 CLEAN<br>SOLO 100 RHY<br>SOLO 100 LEAD<br>FRIEDMAN BE V1<br>FRIEDMAN HBE V1<br>PVH 6160 BLOCK<br>MR Z MZ-38<br>CA3+ RHY<br>CA3+ LEAD<br>WRECKER ROCKET<br>CORNCOB M50<br>CA OD-2<br>FRYETTE D60 L<br>FRYETTE D60 M<br>BRIT BROWN<br>CITRUS RV50<br>JAZZ 120<br>ENERGYBALL<br>ODS-100 CLEAN<br>ODS-100 HRM<br>FAS RHYTHM<br>FAS LEAD 1<br>FAS LEAD 2<br>FAS MODERN<br>DAS METALL<br>BRIT PRE<br>BUTTERY<br>BOUTIQUE 1<br>BOUTIQUE 2<br>CAMERON CCV 1A<br>CAMERON CCV 2A<br>SV BASS<br>TUBE PRE<br>FAS BROWN<br>BIG HAIR<br>SOLO 99 LEAD<br>SUPERTWEED<br>TX STAR LEAD<br>FAS WRECK<br>BRIT JVM OD1 OR<br>BRIT JVM OD2 OR<br>FAS 6160<br>CALI LEGGY<br>USA LEAD +<br>USA LEAD BRT +<br>PRINCE TONE<br>BLANKNSHP LEEDS<br>5153 100W GREEN<br>5153 100W BLUE<br>5153 100W RED<br>SOLO 88 RHYTHM<br>DIV/13 CJ<br>HERBIE CH2-<br>HERBIE CH2+<br>HERBIE CH3<br>DIRTY SHIRLEY 1<br>DIZZY V4 BLUE 2<br>DIZZY V4 BLUE 3<br>DIZZY V4 BLUE 4<br>SUHR BADGER 18<br>SUHR BADGER 30<br>PRINCE TONE NR<br>SUPREMO TREM<br>ATOMICA LOW<br>ATOMICA HIGH<br>DELUXE TWEED<br>SPAWN ROD OD2-1<br>SPAWN ROD OD2-2<br>SPAWN ROD OD2-3<br>BRIT SILVER<br>SPAWN NITROUS 2<br>FAS CRUNCH<br>TWO STONE J35 1<br>FOX ODS<br>HOT KITTY<br>BAND-COMMANDER<br>SUPER VERB VIB<br>VIBRA-KING<br>GIBTONE SCOUT<br>PVH 6160+ LD<br>SOLO 100 CLEAN<br>USA PRE LD2 GRN<br>USA PRE LD2 YLW<br>CA3+ CLEAN<br>FOX ODS DEEP<br>BRIT JVM OD1 GN<br>BRIT JVM OD2 GN<br>VIBRATO LUX<br>BRIT 800 MOD<br>NUCLEAR-TONE<br>BLUDOJAI CLEAN<br>BLUDOJAI LD PAB<br>PLEXI 100W HIGH<br>PLEXI 100W NRML<br>RUBY ROCKET<br>AC-20 EF86 B<br>PRINCE TONE REV<br>COMET CONCOURSE<br>FAS MODERN II<br>CA TRIPTIK MDRN<br>CA TRIPTIK CLSC<br>CA TRIPTIK CLN<br>THORDENDAL VINT<br>THORDENDAL MDRN<br>ODS-100 HRM MID<br>EURO BLUE MDRN<br>EURO RED MDRN<br>PLEXI 50W JUMP<br>AC-20 EF86 T<br>COMET 60<br>HIPOWER JUMPED<br>PLEXI 100W JUMP<br>BRIT JM45 JUMP<br>1987X JUMP<br>RECTO1 ORG VNTG<br>RECTO1 RED<br>ODS-100 FORD 1<br>BOGFISH STRATO<br>BOGFISH BROWN<br>5F1 TWEED<br>WRECKER EXPRESS<br>TWO STONE J35 2<br>ODS-100 FORD 2<br>MR Z MZ-8<br>CAR ROAMER<br>USA SUB BLUES<br>WRECKER LVRPOOL<br>CITRUS TERRIER<br>CITRUS A30 CLN<br>CITRUS A30 DRTY<br>DIV/13 FT37 LO<br>DIV/13 FT37 HI<br>MATCHBOX D-30<br>FAS CLASS-A<br>USA BASS 400 1<br>USA BASS 400 2<br>CITRUS BASS 200<br>FAS BASS<br>TREMOLO LUX<br>FAS BROOTALZ<br>RECTO1 ORG MDRN<br>ANGLE SEVERE 1<br>ANGLE SEVERE 2<br>USA PRE LD2 RED<br>USA PRE LD1 RED<br>TX STAR CLEAN<br>AC-20 12AX7 T<br>VIBRATO VERB AA<br>VIBRATO VERB AB<br>CA TUCANA LEAD<br>JR BLUES FAT<br>SOLO 88 LEAD<br>BRIT AFS100 1<br>BRIT AFS100 2<br>CLASS-A 30W HOT<br>DIZZY V4 SLVR 2<br>DIZZY V4 SLVR 3<br>DIZZY V4 SLVR 4<br>1959SLP NORMAL<br>1959SLP TREBLE<br>1959SLP JUMP<br>FAS MODERN III<br>ODS-100 FORD MD<br>MR Z HWY 66<br>6G4 SUPER<br>6G12 CONCERT<br>65 BASSGUY BASS<br>VIBRA-KING FAT<br>SPAWN ROD OD1-1<br>SPAWN ROD OD1-2<br>SPAWN ROD OD1-3<br>CA TUCANA CLN<br>BRIT JVM OD1 RD<br>BRIT JVM OD2 RD<br>CAMERON CCV 1B<br>CAMERON CCV 2B<br>CAMERON CCV 2C<br>CAMERON CCV 2D<br>FRIEDMAN SM BOX<br>5153 50W BLUE<br>DIV/13 CJ BOOST<br>USA IIC+ DEEP<br>USA IIC+ BRT/DP<br>5F8 TWEED<br>DOUBLE VERB SF<br>VIBRATO VERB CS<br>JMPRE-1 OD1<br>JMPRE-1 OD2<br>JMPRE-1 OD1 BS<br>JMPRE-1 OD2 BS<br>DELUXE VERB NRM<br>DOUBLE VERB NRM<br>SUPER VERB NRM<br>BLUDOJAI LD 2<br>PLEXI 50W 6550<br>FAS HOT ROD<br>PVH 6160+ RHY B<br>PVH 6160+ RHY<br>SOLO 88 CLEAN<br>CLASS-A 30W BRT<br>PLEXI 50W HI 2<br>SPAWN NITROUS 1<br>RUBY ROCKET BRT<br>AC-20 12AX7 B<br>PLEXI 100W 1970<br>JS410 LEAD OR<br>JS410 LEAD RD<br>JS410 CRUNCH OR<br>JS410 CRUNCH RD<br>FRIEDMAN BE V2<br>FRIEDMAN HBE V2<br>DWEEZIL'S B-MAN<br>FRIEDMAN BE<br>FRIEDMAN HBE<br>USA IIC++<br>LEGATO 100<br>CAPT HOOK 2B<br>CAPT HOOK 3B<br>CAPT HOOK 2A<br>CAPT HOOK 3A<br>CAPT HOOK 1A<br>CAPT HOOK 1B<br>DIRTY SHIRLEY 2<br>BRIT 800 #34<br>5F1 TWEED EC<br />
|-<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|PRE<br>POST<br>MID<br>END<br />
|-<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|LEFT<br>RIGHT<br>SUM L+R<br />
|-<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|LEFT<br>RIGHT<br>SUM L+R<br />
|-<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|ACTIVE<br>DEFAULT<br>BROWNFACE<br>BLACKFACE<br>BASSGUY<br>TOP BOOST<br>PLEXI<br>BOUTIQUE<br>HI POWER<br>USA NORMAL<br>USA FAT<br>RECTO1 ORG<br>RECTO1 RED<br>SKYLINE<br>GERMAN<br>JR BLUES<br>WRECKER 1<br>NEUTRAL<br>CA3+SE<br>FREYER D60<br>MR Z 38 SR<br>EURO UBER<br>PVH 6160<br>SOLO 100<br>CORNCOB<br>XTC<br>CAROLANN<br>CITRUS<br>BRIT JM45<br>USA RHY<br>RECTO2 ORG<br>RECTO2 RED<br>SHIVER CLN<br>CAMERON<br>BRIT JVM 0D1<br>BRIT JVM 0D2<br>5153 GREEN<br>5153 BLUE<br>5153 RED<br>BRIT SUPER<br>DIV13 CJ<br>BADGER 18<br>ATOMICA<br>SPAWN<br>BADGER 30<br>BRIT SILVER<br>SUPER VERB<br>HOT KITTY<br>VIBRATO-KING<br>GIBTONE SCOUT<br>CA3+SE CLEAN<br>BF FIXED MID<br>GERMAN V4<br>VIBRATO-LUX<br>DIRTY SHIRLEY<br>PLEXI 100W<br>RUBY ROCKET BRT<br>CONCOURSE<br>TRIPTIK LD<br>TRIPTIK CLN<br>JAZZ 120<br>BOGFISH<br>WRECKER 2<br>SKYLINE DEEP<br>USA SUB BLUES<br>WRECKER LVRPOOL<br>CITRUS A30 CLN<br>CITRUS A30 DRT<br>CAR ROAMER<br>USA BASS<br>CITRUS BASS<br>STUDIO<br>BRIT 800<br>RECTO1 ORG MDRN<br>ANGLE SEVERE 1<br>ANGLE SEVERE 2<br>USA PRE LD1 RED<br>RECTO ORG BRT<br>RECTO RED BRT<br>VIBROVERB AA<br>PVH 6160 II LD<br>RUMBLE HRM<br>MR Z HWY 66<br>SUPER 6G4<br>65 BASSMAN BASS<br>FREIDMAN<br>BAND-COMMANDER<br>USA PRE CLEAN<br>TUCANA CLEAN<br>FRIEDMAN SM BOX<br>TX STAR<br>USA IIC+<br>THORDENDAL<br>SOLO 99<br>BLUDOJAI<br>HERBIE<br>PVH 6160 II RHY<br>SOLO 88 CLEAN<br>JS410<br>JS410 MIDSHIFT<br>RUBY ROCKET<br>USA IIC++<br>LEGATO 100<br>HOOK EDGE<br>HOOK NO EDGE<br>HOOK CLEAN 1<br>HOOK CLEAN 2<br>SOLO 88<br />
|-<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|PRE-PI<br>POST-PI<br>PRE-TRIODE<br />
|-<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|OFF<br>AUTH<br>IDEAL<br />
|-<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|IDEAL TETRODE<br>IDEAL PENTODE<br>EL34/6CA7<br>EL84/6BQ5<br>6L6/5881<br>6V6<br>KT66<br>KT88<br>6550<br>6973<br>6AQ5<br>300B<br />
|-<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|12AX7A SYL<br>ECC83<br>7025<br>12AX7A JJ<br>ECC803S<br>EF86<br>12AX7A RCA<br>12AX7A<br>12AX7B<br />
|-<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|AC<br>DC<br />
|-<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|8 BAND VAR Q<br>7 BAND VAR Q<br>5 BAND (MARK)<br>8 BAND CONST Q<br>7 BAND CONST Q<br>5 BAND CONST Q<br>5 BAND PASSIVE<br>4 BAND PASSIVE<br>3 BAND PASSIVE<br>3 BAND CONSOLE<br />
|-<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|SHELVING<br>PEAKING<br>DYNAMIC<br />
|-<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|OUTPUT<br>FEEDBACK<br />
|-<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|POST P.A.<br>PRE P.A.<br />
|-<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|AUTHENTIC<br>IDEAL<br />
|-<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|1<br />
|PROX. EFFECT<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|3<br />
|PROX. EFFECT R<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|HI-/ULTRA-RES<br>NORMAL RES<br>STEREO<br>STEREO ULTRARES<br />
|-<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|26<br />
|DELAY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|STEREO<br>LEFT<br>RIGHT<br>SUM L+R<br />
|-<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT<br>12 dB/OCT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|SMALL ROOM<br>MEDIUM ROOM<br>LARGE ROOM<br>SMALL HALL<br>MEDIUM HALL<br>LARGE HALL<br>SMALL CHAMBER<br>MEDIUM CHAMBER<br>LARGE CHAMBER<br>SMALL PLATE<br>MEDIUM PLATE<br>LARGE PLATE<br>SMALL CATHEDRAL<br>MED. CATHEDRAL<br>LARGE CATHEDRAL<br>SMALL SPRING<br>MEDIUM SPRING<br>LARGE SPRING<br>CAVERN<br>STONE QUARRY<br>STUDIO<br>AMBIENCE<br>CONCERT HALL<br>LARGE DEEP HALL<br>REC STUDIO C<br>NORTH CHURCH<br>SOUTH CHURCH<br>LONDON PLATE<br>SUN PLATE<br>HUGE ROOM<br>DRUM ROOM<br>HALLWAY<br>TUNNEL<br>DEEP CHAMBER<br>LG WOODEN ROOM<br>GYMNASIUM<br>ASYLUM HALL<br>DEEP SPACE<br>REC STUDIO A<br>LG TILED ROOM<br>VOCAL PLATE<br>WIDE HALL<br>RICH HALL<br />
|-<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|NORMAL<br>HIGH<br />
|-<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO<br>DIGITAL STEREO<br>ANALOG MONO<br>ANALOG STEREO<br>MONO TAPE<br>STEREO TAPE<br>PING-PONG<br>DUAL DELAY<br>REVERSE DELAY<br>SWEEP DELAY<br>DUCKING DELAY<br>VINTAGE DIGITAL<br>2290 W/ MOD<br>AMBIENT STEREO<br>DELUXE MIND GUY<br>MONO BBD<br>STEREO BBD<br>LO-FI TAPE<br />
|-<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|MONO<br>STEREO<br>PING-PONG<br>DUAL<br>REVERSE<br>SWEEP<br>TAPE<br />
|-<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT<br>12 dB/OCT<br>24 dB/OCT<br>36 dB/OCT<br>48 dB/OCT<br />
|-<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|BOTH<br>LEFT<br>RIGHT<br />
|-<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|BOTH<br>LEFT<br>RIGHT<br />
|-<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|LOW<br>HIGH<br />
|-<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|QUAD-TAP<br>PLEX DELAY<br>PLEX DETUNE<br>PLEX SHIFT<br>BAND DELAY<br>QUAD-SERIES<br>TEN-TAP DLY<br>RHYTHM TAP<br>DIFFUSOR<br>QUAD TAPE DLY<br />
|-<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|FORWARD<br>REVERSE<br />
|-<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|1<br>2<br>3<br>4<br />
|-<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|1<br>2<br>3<br>4<br />
|-<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|MONO<br>STEREO<br />
|-<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT<br>INCREASING<br>DECREASING<br>UP / DOWN<br>DOWN / UP<br>SINE<br />
|-<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO<br>DIGITAL STEREO<br>ANALOG MONO<br>ANALOG STEREO<br>JAPAN CE-2<br>WARM STEREO<br>80'S STYLE<br>TRIANGLE CHORUS<br>8-VOICE STEREO<br>VINTAGE TAPE<br>DIMENSION 1<br>DIMENSION 2<br>4-VOICE ANALOG<br />
|-<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|OFF<br>LOW<br>HIGH<br />
|-<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|OFF<br>LOW<br>MED<br>HIGH<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO<br>DIGITAL STEREO<br>ANALOG MONO<br>ANALOG STEREO<br>THRU-ZERO<br>STEREO JET<br>ZERO FLANGER<br>POP FLANGER<br />
|-<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|OFF<br>LOW<br>MED<br>HIGH<br />
|-<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO<br>DIGITAL STEREO<br>SCRIPT 45<br>SCRIPT 90<br>BLOCK 90<br>CLASSIC VIBE<br>STEREO 8-STAGE<br>BARBERPOLE<br />
|-<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|2<br>4<br>6<br>8<br>10<br>12<br />
|-<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|NORMAL<br>VIBE<br>BARBERPOLE<br />
|-<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|UP<br>DOWN<br />
|-<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|OFF<br>0 DEG<br>90 DEG<br>180 DEG<br>270 DEG<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|FAS STANDARD<br>CLYDE<br>CRY BABE<br>VX846<br>COLOR-TONE<br>FUNK<br>MORTAL<br>VX845<br />
|-<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|LINEAR<br>LOG 30A<br>LOG 20A<br>LOG 15A<br>LOG 10A<br>LOG 5A<br />
|-<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|AAA<br>EEE<br>III<br>OHH<br>OOO<br>EHH<br>AHH<br>AWW<br>UHH<br>ERR<br />
|-<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|AAA<br>EEE<br>III<br>OHH<br>OOO<br>EHH<br>AHH<br>AWW<br>UHH<br>ERR<br />
|-<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|AAA<br>EEE<br>III<br>OHH<br>OOO<br>EHH<br>AHH<br>AWW<br>UHH<br>ERR<br />
|-<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|LINEAR<br>LOG 30A<br>LOG 20A<br>LOG 15A<br>LOG 10A<br>LOG 5A<br />
|-<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|STEREO<br>LEFT ONLY<br>RIGHT ONLY<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|TREMOLO<br>PANNER<br />
|-<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DETUNE<br>FIXED HARM<br>INTEL HARM<br>CL. WHAMMY<br>OCTAVE DIV<br>CRYSTALS<br>AD. WHAMMY<br>ARPEGGIATOR<br>CUST. SHIFT<br />
|-<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|UP 1 OCT<br>DOWN 1 OCT<br>UP 2 OCT<br>DOWN 2 OCT<br>UP|DN 1 OCT<br>UP|DN 2 OCT<br />
|-<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|A <br>Bb<br>B <br>C <br>Db<br>D <br>Eb<br>E <br>F <br>Gb<br>G <br>Ab<br />
|-<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|IONIAN MAJ<br>DORIAN<br>PHRYGIAN<br>LYDIAN<br>MIXOLYDIAN<br>AEOLIAN MIN<br>LOCRIAN<br>MEL. MINOR<br>HARM. MINOR<br>DIMINISHED<br>WHOLE TONE<br>DOM. SEVEN<br>DIM. WHOLE<br>PENTA. MAJ<br>PENTA. MIN<br>BLUES<br>CHROMATIC<br>CUSTOM<br />
|-<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|SMOOTH<br>STEPPED<br />
|-<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|OFF<br>POLY<br>MONO<br />
|-<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br>MUTE FX IN<br>MUTE IN<br />
|-<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|DUAL<br>BOTH<br>PING-PONG<br />
|-<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br />
|-<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>Infinite<br />
|-<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|CONSTANT<br>INCREASING<br>DECREASING<br>UP / DOWN<br>DOWN / UP<br>SINE<br />
|-<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT<br>INCREASING<br>DECREASING<br>UP / DOWN<br>DOWN / UP<br>SINE<br />
|-<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|GLOBAL<br>LOCAL<br />
|-<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|MONO<br>STEREO<br />
|-<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|NULL<br>LOWPASS<br>BANDPASS<br>HIGHPASS<br>LOWSHELF<br>HIGHSHLF<br>PEAKING<br>NOTCH<br>TILT EQ<br>LOWSHELF2<br>HIGHSHLF2<br>PEAKING2<br />
|-<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|2nd<br>4th<br />
|-<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|RAT DIST<br>PI FUZZ<br>TUBE DRV 3-KNOB<br>SUPER OD<br>TREBLE BOOST<br>MID BOOST<br>T808 OD<br>FAT RAT<br>T808 MOD<br>OCTAVE DIST<br>PLUS DIST<br>HARD FUZZ<br>FET BOOST<br>TAPE DIST<br>FULL OD<br>BLUES OD<br>SHRED DIST<br>M-ZONE DIST<br>BENDER FUZZ<br>BB PRE<br>MASTER FUZZ<br>FACE FUZZ<br>BIT CRUSHER<br>ETERNAL LOVE<br>ESOTERIC ACB<br>ESOTERIC RCB<br>ZEN MASTER<br>TUBE DRV 4-KNOB<br>FAS LED-DRIVE<br>SDD PREAMP<br>FET PREAMP<br>RUCKUS<br>MICRO BOOST<br>FAS BOOST<br>TIMOTHY<br>SHIMMER DRIVE<br />
|-<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|LV TUBE<br>HARD<br>SOFT<br>GERMANIUM<br>FW RECT<br>HV TUBE<br>SILICON<br>4558/DIODE<br>LED<br>FET<br>OP-AMP<br>VARIABLE<br>NULL<br />
|-<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|L+R<br>LEFT<br>RIGHT<br />
|-<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|MODERN<br>CLASSIC<br />
|-<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|NONE<br>RIGHT<br>LEFT<br>BOTH<br />
|-<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|CLASSIC<br>INTELLIGENT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAW UP<br>SAW DOWN<br>RANDOM<br>LOG<br>EXP<br>TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|ONCE<br>LOOP<br>SUST<br />
|-<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|ONCE<br>LOOP<br>SUST<br />
|-<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|NONE <br>1/64 TRIP<br>1/64<br>1/64 DOT<br>1/32 TRIP<br>1/32<br>1/32 DOT<br>1/16 TRIP<br>1/16<br>1/16 DOT<br>1/8 TRIP<br>1/8<br>1/8 DOT<br>1/4 TRIP<br>1/4<br>1/4 DOT<br>1/2 TRIP<br>1/2<br>1/2 DOT<br>1 TRIP<br>1<br>1 DOT<br>2<br>3<br>4<br>4/3<br>5/4<br>5/64<br>7/64<br>9/64<br>10/64 (5/32)<br>11/64<br>13/64<br>14/64 (7/32)<br>15/64<br>17/64<br>18/64 (9/32)<br>19/64<br>20/64 (5/16)<br>21/64<br>22/64 (11/32)<br>23/64<br>25/64<br>26/64 (13/32)<br>27/64<br>28/64 (7/16)<br>29/64<br>30/64 (15/32)<br>31/64<br>33/64<br>34/64 (17/32)<br>35/64<br>36/64 (9/16)<br>37/64<br>38/64 (19/32)<br>39/64<br>40/64 (5/8)<br>41/64<br>42/64 (21/32)<br>43/64<br>44/64 (11/16)<br>45/64<br>46/64 (23/32)<br>47/64<br>49/64<br>50/64 (25/32)<br>51/64<br>52/64 (13/16)<br>53/64<br>54/64 (27/32)<br>55/64<br>56/64 (7/8)<br>57/64<br>58/64 (29/32)<br>59/64<br>60/64 (15/16)<br>61/64<br>62/64 (31/32)<br>63/64<br />
|-<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br />
|-<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|55<br />
|17<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|56<br />
|18<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|57<br />
|19<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|58<br />
|20<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|59<br />
|21<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|60<br />
|22<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|61<br />
|23<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|62<br />
|24<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|63<br />
|25<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|64<br />
|26<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|65<br />
|27<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|66<br />
|28<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|67<br />
|29<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|68<br />
|30<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|69<br />
|31<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|70<br />
|32<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|74<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|75<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|76<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|77<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|78<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|79<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|80<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|81<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|82<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|83<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|84<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|85<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|86<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|87<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|88<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|89<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|90<br />
|QUANTIZE<br />
|select<br />
|<br>OFF<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br />
|-<br />
|CONTROLLERS<br />
|91<br />
|QUANTIZE<br />
|select<br />
|<br>OFF<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br />
|-<br />
|CONTROLLERS<br />
|92<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|93<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|94<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|95<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|96<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|97<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|98<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|99<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|100<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|101<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|102<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|103<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|104<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|105<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|106<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|107<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAWTOOTH<br>RANDOM<br>WHT NOISE<br>PINK NOISE<br>OFF<br />
|-<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|OFF<br>ENV ONLY<br>PITCH+ENV<br>QUANTIZE<br />
|-<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAWTOOTH<br>RANDOM<br>WHT NOISE<br>PINK NOISE<br>OFF<br />
|-<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|OFF<br>ENV ONLY<br>PITCH+ENV<br>QUANTIZE<br />
|-<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|SINE<br>TRIANGLE<br>SQUARE<br>SAWTOOTH<br>RANDOM<br>WHT NOISE<br>PINK NOISE<br>OFF<br />
|-<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|OFF<br>ENV ONLY<br>PITCH+ENV<br>QUANTIZE<br />
|-<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|BLOCK L+R<br>ROW 1<br>ROW 2<br>ROW 3<br>ROW 4<br>INPUT 1<br>INPUT 2<br />
|-<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU<br>MUTE FX OUT<br>MUTE OUT<br />
|-<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|MONO<br>STEREO<br>MONO UNDO<br>STEREO UNDO<br />
|-<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|OFF<br>QUARTER<br>EIGTH<br>SIXTEENTH<br />
|-<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|}<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43336
MIDI SysEx
2017-05-21T20:07:45Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Block IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|140<br />
|Output<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
=MIDI SysEx: Axe Fx II/XL/XL+ Block Parameter IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|HARD, SOFT, SOFTER, SOFTEST<br />
|-<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|RMS, PEAK, RMS+PEAK, FAST RMS<br />
|-<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2, BLOCK L, BLOCK R<br />
|-<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|STUDIO COMP, PEDAL COMP 1, PEDAL COMP 2, DYNAMICS, OPTICAL 1, OPTICAL 2<br />
|-<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|INSTRUMENT, LINE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|10 BAND CONST Q, 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 10 BAND VAR Q, 8 BAND VAR Q, 7 BAND VAR Q, 5 BAND VAR Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|59 BASSGUY, 65 BASSGUY NRML, VIBRATO VERB, DELUXE VERB VIB, DOUBLE VERB VIB, JR BLUES, CLASS-A 15W TB, CLASS-A 30W, CLASS-A 30W TB, BRIT JM45, PLEXI 50W NRML, PLEXI 50W HI 1, 1987X NORMAL, 1987X TREBLE, BRIT 800, BRIT SUPER, HIPOWER NORMAL, HIPOWER BRILLNT, USA CLEAN, USA PRE CLEAN, USA RHYTHM, USA IIC+, USA IIC+ BRIGHT, USA LEAD, USA LEAD BRT, RECTO2 ORG VNTG, RECTO2 ORG MDRN, RECTO2 RED VNTG, RECTO2 RED MDRN, EURO BLUE, EURO RED, SHIVER CLEAN, SHIVER LEAD, EURO UBER, SOLO 99 CLEAN, SOLO 100 RHY, SOLO 100 LEAD, FRIEDMAN BE V1, FRIEDMAN HBE V1, PVH 6160 BLOCK, MR Z MZ-38, CA3+ RHY, CA3+ LEAD, WRECKER ROCKET, CORNCOB M50, CA OD-2, FRYETTE D60 L, FRYETTE D60 M, BRIT BROWN, CITRUS RV50, JAZZ 120, ENERGYBALL, ODS-100 CLEAN, ODS-100 HRM, FAS RHYTHM, FAS LEAD 1, FAS LEAD 2, FAS MODERN, DAS METALL, BRIT PRE, BUTTERY, BOUTIQUE 1, BOUTIQUE 2, CAMERON CCV 1A, CAMERON CCV 2A, SV BASS, TUBE PRE, FAS BROWN, BIG HAIR, SOLO 99 LEAD, SUPERTWEED, TX STAR LEAD, FAS WRECK, BRIT JVM OD1 OR, BRIT JVM OD2 OR, FAS 6160, CALI LEGGY, USA LEAD +, USA LEAD BRT +, PRINCE TONE, BLANKNSHP LEEDS, 5153 100W GREEN, 5153 100W BLUE, 5153 100W RED, SOLO 88 RHYTHM, DIV/13 CJ, HERBIE CH2-, HERBIE CH2+, HERBIE CH3, DIRTY SHIRLEY 1, DIZZY V4 BLUE 2, DIZZY V4 BLUE 3, DIZZY V4 BLUE 4, SUHR BADGER 18, SUHR BADGER 30, PRINCE TONE NR, SUPREMO TREM, ATOMICA LOW, ATOMICA HIGH, DELUXE TWEED, SPAWN ROD OD2-1, SPAWN ROD OD2-2, SPAWN ROD OD2-3, BRIT SILVER, SPAWN NITROUS 2, FAS CRUNCH, TWO STONE J35 1, FOX ODS, HOT KITTY, BAND-COMMANDER, SUPER VERB VIB, VIBRA-KING, GIBTONE SCOUT, PVH 6160+ LD, SOLO 100 CLEAN, USA PRE LD2 GRN, USA PRE LD2 YLW, CA3+ CLEAN, FOX ODS DEEP, BRIT JVM OD1 GN, BRIT JVM OD2 GN, VIBRATO LUX, BRIT 800 MOD, NUCLEAR-TONE, BLUDOJAI CLEAN, BLUDOJAI LD PAB, PLEXI 100W HIGH, PLEXI 100W NRML, RUBY ROCKET, AC-20 EF86 B, PRINCE TONE REV, COMET CONCOURSE, FAS MODERN II, CA TRIPTIK MDRN, CA TRIPTIK CLSC, CA TRIPTIK CLN, THORDENDAL VINT, THORDENDAL MDRN, ODS-100 HRM MID, EURO BLUE MDRN, EURO RED MDRN, PLEXI 50W JUMP, AC-20 EF86 T, COMET 60, HIPOWER JUMPED, PLEXI 100W JUMP, BRIT JM45 JUMP, 1987X JUMP, RECTO1 ORG VNTG, RECTO1 RED, ODS-100 FORD 1, BOGFISH STRATO, BOGFISH BROWN, 5F1 TWEED, WRECKER EXPRESS, TWO STONE J35 2, ODS-100 FORD 2, MR Z MZ-8, CAR ROAMER, USA SUB BLUES, WRECKER LVRPOOL, CITRUS TERRIER, CITRUS A30 CLN, CITRUS A30 DRTY, DIV/13 FT37 LO, DIV/13 FT37 HI, MATCHBOX D-30, FAS CLASS-A, USA BASS 400 1, USA BASS 400 2, CITRUS BASS 200, FAS BASS, TREMOLO LUX, FAS BROOTALZ, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD2 RED, USA PRE LD1 RED, TX STAR CLEAN, AC-20 12AX7 T, VIBRATO VERB AA, VIBRATO VERB AB, CA TUCANA LEAD, JR BLUES FAT, SOLO 88 LEAD, BRIT AFS100 1, BRIT AFS100 2, CLASS-A 30W HOT, DIZZY V4 SLVR 2, DIZZY V4 SLVR 3, DIZZY V4 SLVR 4, 1959SLP NORMAL, 1959SLP TREBLE, 1959SLP JUMP, FAS MODERN III, ODS-100 FORD MD, MR Z HWY 66, 6G4 SUPER, 6G12 CONCERT, 65 BASSGUY BASS, VIBRA-KING FAT, SPAWN ROD OD1-1, SPAWN ROD OD1-2, SPAWN ROD OD1-3, CA TUCANA CLN, BRIT JVM OD1 RD, BRIT JVM OD2 RD, CAMERON CCV 1B, CAMERON CCV 2B, CAMERON CCV 2C, CAMERON CCV 2D, FRIEDMAN SM BOX, 5153 50W BLUE, DIV/13 CJ BOOST, USA IIC+ DEEP, USA IIC+ BRT/DP, 5F8 TWEED, DOUBLE VERB SF, VIBRATO VERB CS, JMPRE-1 OD1, JMPRE-1 OD2, JMPRE-1 OD1 BS, JMPRE-1 OD2 BS, DELUXE VERB NRM, DOUBLE VERB NRM, SUPER VERB NRM, BLUDOJAI LD 2, PLEXI 50W 6550, FAS HOT ROD, PVH 6160+ RHY B, PVH 6160+ RHY, SOLO 88 CLEAN, CLASS-A 30W BRT, PLEXI 50W HI 2, SPAWN NITROUS 1, RUBY ROCKET BRT, AC-20 12AX7 B, PLEXI 100W 1970, JS410 LEAD OR, JS410 LEAD RD, JS410 CRUNCH OR, JS410 CRUNCH RD, FRIEDMAN BE V2, FRIEDMAN HBE V2, DWEEZIL'S B-MAN, FRIEDMAN BE, FRIEDMAN HBE, USA IIC++, LEGATO 100, CAPT HOOK 2B, CAPT HOOK 3B, CAPT HOOK 2A, CAPT HOOK 3A, CAPT HOOK 1A, CAPT HOOK 1B, DIRTY SHIRLEY 2, BRIT 800 #34, 5F1 TWEED EC<br />
|-<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|PRE, POST, MID, END<br />
|-<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|ACTIVE, DEFAULT, BROWNFACE, BLACKFACE, BASSGUY, TOP BOOST, PLEXI, BOUTIQUE, HI POWER, USA NORMAL, USA FAT, RECTO1 ORG, RECTO1 RED, SKYLINE, GERMAN, JR BLUES, WRECKER 1, NEUTRAL, CA3+SE, FREYER D60, MR Z 38 SR, EURO UBER, PVH 6160, SOLO 100, CORNCOB, XTC, CAROLANN, CITRUS, BRIT JM45, USA RHY, RECTO2 ORG, RECTO2 RED, SHIVER CLN, CAMERON, BRIT JVM 0D1, BRIT JVM 0D2, 5153 GREEN, 5153 BLUE, 5153 RED, BRIT SUPER, DIV13 CJ, BADGER 18, ATOMICA, SPAWN, BADGER 30, BRIT SILVER, SUPER VERB, HOT KITTY, VIBRATO-KING, GIBTONE SCOUT, CA3+SE CLEAN, BF FIXED MID, GERMAN V4, VIBRATO-LUX, DIRTY SHIRLEY, PLEXI 100W, RUBY ROCKET BRT, CONCOURSE, TRIPTIK LD, TRIPTIK CLN, JAZZ 120, BOGFISH, WRECKER 2, SKYLINE DEEP, USA SUB BLUES, WRECKER LVRPOOL, CITRUS A30 CLN, CITRUS A30 DRT, CAR ROAMER, USA BASS, CITRUS BASS, STUDIO, BRIT 800, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD1 RED, RECTO ORG BRT, RECTO RED BRT, VIBROVERB AA, PVH 6160 II LD, RUMBLE HRM, MR Z HWY 66, SUPER 6G4, 65 BASSMAN BASS, FREIDMAN, BAND-COMMANDER, USA PRE CLEAN, TUCANA CLEAN, FRIEDMAN SM BOX, TX STAR, USA IIC+, THORDENDAL, SOLO 99, BLUDOJAI, HERBIE, PVH 6160 II RHY, SOLO 88 CLEAN, JS410, JS410 MIDSHIFT, RUBY ROCKET, USA IIC++, LEGATO 100, HOOK EDGE, HOOK NO EDGE, HOOK CLEAN 1, HOOK CLEAN 2, SOLO 88<br />
|-<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|PRE-PI, POST-PI, PRE-TRIODE<br />
|-<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|OFF, AUTH, IDEAL<br />
|-<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|IDEAL TETRODE, IDEAL PENTODE, EL34/6CA7, EL84/6BQ5, 6L6/5881, 6V6, KT66, KT88, 6550, 6973, 6AQ5, 300B<br />
|-<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|12AX7A SYL, ECC83, 7025, 12AX7A JJ, ECC803S, EF86, 12AX7A RCA, 12AX7A, 12AX7B<br />
|-<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|AC, DC<br />
|-<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|8 BAND VAR Q, 7 BAND VAR Q, 5 BAND (MARK), 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|SHELVING, PEAKING, DYNAMIC<br />
|-<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|OUTPUT, FEEDBACK<br />
|-<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|POST P.A., PRE P.A.<br />
|-<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|AUTHENTIC, IDEAL<br />
|-<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|1<br />
|MIC<br />
|select<br />
|NONE, 57 DYN, 58 DYN, 421 DYN, 87A COND, U87 COND, E609 DYN, RE16 DYN, R121 RIB, D112 DYN, 67 COND, NULL, INVERT<br />
|-<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|3<br />
|MIC R<br />
|select<br />
|NONE, 57 DYN, 58 DYN, 421 DYN, 87A COND, U87 COND, E609 DYN, RE16 DYN, R121 RIB, D112 DYN, 67 COND, NULL, INVERT<br />
|-<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|HI-/ULTRA-RES, NORMAL RES, STEREO, STEREO ULTRARES<br />
|-<br />
|CAB<br />
|14<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|15<br />
|SATURATION<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|16<br />
|ROOM LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|17<br />
|ROOM SIZE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|18<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|21<br />
|SPEAKER SIZE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|23<br />
|AIR<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|24<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|25<br />
|AIR FREQ<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|26<br />
|DELAY L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT, RIGHT, SUM L+R<br />
|-<br />
|CAB<br />
|31<br />
|PREAMP TYPE<br />
|select<br />
|NONE, TUBE, BIPOLAR, FET I, FET II, TRANSFORMER, TAPE 70us, TAPE 50us, TAPE 35us, VINTAGE, MODERN, EXCITER<br />
|-<br />
|CAB<br />
|32<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|33<br />
|MID<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|34<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|35<br />
|PREAMP MODE<br />
|select<br />
|ECONOMY, HIGH QUALITY<br />
|-<br />
|CAB<br />
|36<br />
|DEPHASE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT<br />
|-<br />
|CAB<br />
|38<br />
|MOTOR TIME CONSTANT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|SMALL ROOM, MEDIUM ROOM, LARGE ROOM, SMALL HALL, MEDIUM HALL, LARGE HALL, SMALL CHAMBER, MEDIUM CHAMBER, LARGE CHAMBER, SMALL PLATE, MEDIUM PLATE, LARGE PLATE, SMALL CATHEDRAL, MED. CATHEDRAL, LARGE CATHEDRAL, SMALL SPRING, MEDIUM SPRING, LARGE SPRING, CAVERN, STONE QUARRY, STUDIO, AMBIENCE, CONCERT HALL, LARGE DEEP HALL, REC STUDIO C, NORTH CHURCH, SOUTH CHURCH, LONDON PLATE, SUN PLATE, HUGE ROOM, DRUM ROOM, HALLWAY, TUNNEL, DEEP CHAMBER, LG WOODEN ROOM, GYMNASIUM, ASYLUM HALL, DEEP SPACE, REC STUDIO A, LG TILED ROOM, VOCAL PLATE, WIDE HALL, RICH HALL<br />
|-<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|NORMAL, HIGH<br />
|-<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, MONO TAPE, STEREO TAPE, PING-PONG, DUAL DELAY, REVERSE DELAY, SWEEP DELAY, DUCKING DELAY, VINTAGE DIGITAL, 2290 W/ MOD, AMBIENT STEREO, DELUXE MIND GUY, MONO BBD, STEREO BBD, LO-FI TAPE<br />
|-<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|MONO, STEREO, PING-PONG, DUAL, REVERSE, SWEEP, TAPE<br />
|-<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT, 24 dB/OCT, 36 dB/OCT, 48 dB/OCT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|LOW, HIGH<br />
|-<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|QUAD-TAP, PLEX DELAY, PLEX DETUNE, PLEX SHIFT, BAND DELAY, QUAD-SERIES, TEN-TAP DLY, RHYTHM TAP, DIFFUSOR, QUAD TAPE DLY<br />
|-<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|FORWARD, REVERSE<br />
|-<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, JAPAN CE-2, WARM STEREO, 80'S STYLE, TRIANGLE CHORUS, 8-VOICE STEREO, VINTAGE TAPE, DIMENSION 1, DIMENSION 2, 4-VOICE ANALOG<br />
|-<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, HIGH<br />
|-<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, THRU-ZERO, STEREO JET, ZERO FLANGER, POP FLANGER<br />
|-<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, SCRIPT 45, SCRIPT 90, BLOCK 90, CLASSIC VIBE, STEREO 8-STAGE, BARBERPOLE<br />
|-<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|2, 4, 6, 8, 10, 12<br />
|-<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|NORMAL, VIBE, BARBERPOLE<br />
|-<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|UP, DOWN<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|OFF, 0 DEG, 90 DEG, 180 DEG, 270 DEG<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|FAS STANDARD, CLYDE, CRY BABE, VX846, COLOR-TONE, FUNK, MORTAL, VX845<br />
|-<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT ONLY, RIGHT ONLY<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|TREMOLO, PANNER<br />
|-<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DETUNE, FIXED HARM, INTEL HARM, CL. WHAMMY, OCTAVE DIV, CRYSTALS, AD. WHAMMY, ARPEGGIATOR, CUST. SHIFT<br />
|-<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|UP 1 OCT, DOWN 1 OCT, UP 2 OCT, DOWN 2 OCT, UP|DN 1 OCT, UP|DN 2 OCT<br />
|-<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|A , Bb, B , C , Db, D , Eb, E , F , Gb, G , Ab<br />
|-<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|IONIAN MAJ, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, AEOLIAN MIN, LOCRIAN, MEL. MINOR, HARM. MINOR, DIMINISHED, WHOLE TONE, DOM. SEVEN, DIM. WHOLE, PENTA. MAJ, PENTA. MIN, BLUES, CHROMATIC, CUSTOM<br />
|-<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|SMOOTH, STEPPED<br />
|-<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|OFF, POLY, MONO<br />
|-<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|DUAL, BOTH, PING-PONG<br />
|-<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8<br />
|-<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, Infinite<br />
|-<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|GLOBAL, LOCAL<br />
|-<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|NULL, LOWPASS, BANDPASS, HIGHPASS, LOWSHELF, HIGHSHLF, PEAKING, NOTCH, TILT EQ, LOWSHELF2, HIGHSHLF2, PEAKING2<br />
|-<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|2nd, 4th<br />
|-<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|RAT DIST, PI FUZZ, TUBE DRV 3-KNOB, SUPER OD, TREBLE BOOST, MID BOOST, T808 OD, FAT RAT, T808 MOD, OCTAVE DIST, PLUS DIST, HARD FUZZ, FET BOOST, TAPE DIST, FULL OD, BLUES OD, SHRED DIST, M-ZONE DIST, BENDER FUZZ, BB PRE, MASTER FUZZ, FACE FUZZ, BIT CRUSHER, ETERNAL LOVE, ESOTERIC ACB, ESOTERIC RCB, ZEN MASTER, TUBE DRV 4-KNOB, FAS LED-DRIVE, SDD PREAMP, FET PREAMP, RUCKUS, MICRO BOOST, FAS BOOST, TIMOTHY, SHIMMER DRIVE<br />
|-<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|LV TUBE, HARD, SOFT, GERMANIUM, FW RECT, HV TUBE, SILICON, 4558/DIODE, LED, FET, OP-AMP, VARIABLE, NULL<br />
|-<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|L+R, LEFT, RIGHT<br />
|-<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|MODERN, CLASSIC<br />
|-<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|4<br />
|INPUT Z<br />
|select<br />
|AUTO: , 1M, 1M+CAP, 230K, 230K+CAP, 90K, 90K+CAP, 70K, 70K+CAP, 32K, 32K+CAP, 22K, 22K+CAP<br />
|-<br />
|INPUT<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|7<br />
|EFFECT TYPE<br />
|select<br />
|CLASSIC, INTELLIGENT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|55<br />
|A<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|56<br />
|B<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|57<br />
|C<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|58<br />
|D<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|59<br />
|17<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|60<br />
|18<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|61<br />
|19<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|62<br />
|20<br />
|slider<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|63<br />
|21<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|64<br />
|22<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|65<br />
|23<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|66<br />
|24<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|67<br />
|25<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|68<br />
|26<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|69<br />
|27<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|70<br />
|28<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|71<br />
|29<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|72<br />
|30<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|73<br />
|31<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|74<br />
|32<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|77<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|78<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|79<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|80<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|81<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|82<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|83<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|84<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|85<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|86<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|87<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|88<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|89<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|90<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|91<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|92<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|93<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|94<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|CONTROLLERS<br />
|95<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2<br />
|-<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|MONO, STEREO, MONO UNDO, STEREO UNDO<br />
|-<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|OFF, QUARTER, EIGTH, SIXTEENTH<br />
|-<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SND<br />
|0<br />
|SEND LEVEL<br />
|knob<br />
| <br />
|-<br />
|SND<br />
|1<br />
|OUT LEVEL<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RTN<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RTN<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|RTN<br />
|4<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MIX<br />
|0<br />
|Gain 1<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|1<br />
|Gain 2<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|2<br />
|Gain 3<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|3<br />
|Gain 4<br />
|slider<br />
| <br />
|-<br />
|MIX<br />
|4<br />
|Balance 1<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|5<br />
|Balance 2<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|6<br />
|Balance 3<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|7<br />
|Balance 4<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|8<br />
|MASTER<br />
|knob<br />
| <br />
|-<br />
|MIX<br />
|9<br />
|OUT MODE<br />
|select<br />
|STEREO, MONO<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MBC<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|2<br />
|Threshold 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|3<br />
|Ratio 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|4<br />
|Attack 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|5<br />
|Release 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|6<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|7<br />
|Detect 1<br />
|select<br />
|RMS, PEAK, FAST RMS<br />
|-<br />
|MBC<br />
|8<br />
|Mute 1<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|9<br />
|Threshold 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|10<br />
|Ratio 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|11<br />
|Attack 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|12<br />
|Release 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|13<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|14<br />
|Detect 2<br />
|select<br />
|RMS, PEAK, FAST RMS<br />
|-<br />
|MBC<br />
|15<br />
|Mute 2<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|16<br />
|Threshold 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|17<br />
|Ratio 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|18<br />
|Attack 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|19<br />
|Release 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MBC<br />
|20<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|21<br />
|Detect 3<br />
|select<br />
|RMS, PEAK, FAST RMS<br />
|-<br />
|MBC<br />
|22<br />
|Mute 3<br />
|switch<br />
| <br />
|-<br />
|MBC<br />
|24<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|25<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|MBC<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|XVR<br />
|0<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|1<br />
|Freq Multi.<br />
|select<br />
|X 1, X 10<br />
|-<br />
|XVR<br />
|2<br />
|Lo Level L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|3<br />
|Hi Level L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|4<br />
|Lo Level R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|5<br />
|Hi Level R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|6<br />
|Lo Pan L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|7<br />
|Hi Pan L<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|8<br />
|Lo Pan R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|9<br />
|Hi Pan R<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|11<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|12<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|XVR<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MGT<br />
|0<br />
|In Gain<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|2<br />
|Time<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|3<br />
|Number of Taps<br />
|rangeKnob<br />
| <br />
|-<br />
|MGT<br />
|4<br />
|Time Shape<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|MGT<br />
|5<br />
|Time Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|6<br />
|Amplitude Shape<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|MGT<br />
|7<br />
|Alplitude Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|8<br />
|Pan Shape<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|MGT<br />
|9<br />
|Pan Alpha<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|10<br />
|Time Randomize<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|11<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|12<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|13<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|MGT<br />
|14<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|MGT<br />
|15<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|QCH<br />
|0<br />
|Master Time<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|2<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|3<br />
|Master Rate<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|4<br />
|Master Depth<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|5<br />
|Feedback<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|6<br />
|Time 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|7<br />
|Time 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|8<br />
|Time 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|9<br />
|Time 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|10<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|11<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|12<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|13<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|14<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|15<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|16<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|17<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|18<br />
|Depth 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|19<br />
|Depth 2<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|QCH<br />
|20<br />
|Depth 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|21<br />
|Depth 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|22<br />
|Morph 1<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|23<br />
|Morph 2<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|24<br />
|Morph 3<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|25<br />
|Morph 4<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|26<br />
|LFO1 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|QCH<br />
|27<br />
|LFO2 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|QCH<br />
|28<br />
|LFO3 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|QCH<br />
|29<br />
|LFO4 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|QCH<br />
|30<br />
|LFO1 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|31<br />
|LFO2 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|32<br />
|LFO3 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|33<br />
|LFO4 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|34<br />
|M. Depth (LFO4>All)<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|35<br />
|Input Mode<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|QCH<br />
|36<br />
|LFO1 Master<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|37<br />
|Wide Mode<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|38<br />
|M. Phase (LFO4)<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|39<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|QCH<br />
|40<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|41<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|QCH<br />
|42<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|QCH<br />
|43<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|QCH<br />
|45<br />
|Hi Cut Frequency<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TMA<br />
|0<br />
|Mode<br />
|select<br />
|OFFLINE, LIVE<br />
|-<br />
|TMA<br />
|1<br />
|Amount<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|2<br />
|Smoothing<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|3<br />
|Reference<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|4<br />
|Local<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|6<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|7<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|8<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|TMA<br />
|10<br />
|Ref Source<br />
|select<br />
|ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2, BLK IN, USB<br />
|-<br />
|TMA<br />
|11<br />
|Avg. Time<br />
|knob<br />
| <br />
|-<br />
|TMA<br />
|12<br />
|Ref Channel<br />
|select<br />
|SUM L+R, LEFT, RIGHT<br />
|-<br />
|TMA<br />
|13<br />
|Local Channel<br />
|select<br />
|SUM L+R, LEFT, RIGHT<br />
|-<br />
|TMA<br />
|14<br />
|Ref Solo<br />
|switch<br />
| <br />
|-<br />
|TMA<br />
|15<br />
|Resolution<br />
|select<br />
|LOW, HIGH<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOC<br />
|0<br />
|Input Select<br />
|select<br />
|LEFT, RIGHT<br />
|-<br />
|VOC<br />
|1<br />
|Bands<br />
|select<br />
|4, 8, 12, 16<br />
|-<br />
|VOC<br />
|2<br />
|Frequency Min<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|3<br />
|Frequency Max<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|4<br />
|Shift<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|5<br />
|Freeze<br />
|switch<br />
| <br />
|-<br />
|VOC<br />
|6<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|7<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|8<br />
|Resonance<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|9<br />
|Attack<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|10<br />
|Release<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|11<br />
|Highpass Mix In<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|12<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|13<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|14<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|15<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|VOC<br />
|16<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|VOC<br />
|17<br />
|Level 1<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|18<br />
|Level 2<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|19<br />
|Level 3<br />
|slider<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOC<br />
|20<br />
|Level 4<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|21<br />
|Level 5<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|22<br />
|Level 6<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|23<br />
|Level 7<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|24<br />
|Level 8<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|25<br />
|Level 9<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|26<br />
|Level 10<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|27<br />
|Level 11<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|28<br />
|Level 12<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|29<br />
|Level 13<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|30<br />
|Level 14<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|31<br />
|Level 15<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|32<br />
|Level 16<br />
|slider<br />
| <br />
|-<br />
|VOC<br />
|33<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|34<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|35<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|36<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|37<br />
|Pan 5<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|38<br />
|Pan 6<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|39<br />
|Pan 7<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOC<br />
|40<br />
|Pan 8<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|41<br />
|Pan 9<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|42<br />
|Pan 10<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|43<br />
|Pan 11<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|44<br />
|Pan 12<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|45<br />
|Pan 13<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|46<br />
|Pan 14<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|47<br />
|Pan 15<br />
|knob<br />
| <br />
|-<br />
|VOC<br />
|48<br />
|Pan 16<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RES<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|MANUAL, CHORDAL<br />
|-<br />
|RES<br />
|1<br />
|Chord Type<br />
|select<br />
|MAJOR, MAJOR 6, DOM. 7, MAJOR 7, MINOR, MINOR 6, MINOR 7, DIMIN., AUGMEN.<br />
|-<br />
|RES<br />
|2<br />
|Input Gain<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|3<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|4<br />
|Master Freq<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|5<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|6<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|7<br />
|Master Feedback<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|8<br />
|Master Q<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|9<br />
|Freq 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|10<br />
|Freq 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|11<br />
|Freq 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|12<br />
|Freq 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|13<br />
|FB 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|14<br />
|FB 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|15<br />
|FB 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|16<br />
|FB 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|17<br />
|Filter Loc 1<br />
|select<br />
|PRE, POST<br />
|-<br />
|RES<br />
|18<br />
|Filter Loc 2<br />
|select<br />
|PRE, POST<br />
|-<br />
|RES<br />
|19<br />
|Filter Loc 3<br />
|select<br />
|PRE, POST<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RES<br />
|20<br />
|Filter Loc 4<br />
|select<br />
|PRE, POST<br />
|-<br />
|RES<br />
|21<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|22<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|23<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|24<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|25<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|26<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|27<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|28<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|29<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|30<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|31<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|32<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|33<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|34<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|35<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|RES<br />
|36<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|RES<br />
|37<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|RES<br />
|39<br />
|Input Mode<br />
|select<br />
|MONO, STEREO<br />
|}<br />
=MIDI SysEx: AX8 Block Parameter IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|HARD, SOFT, SOFTER, SOFTEST<br />
|-<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|RMS, PEAK, RMS+PEAK, FAST RMS<br />
|-<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2, BLOCK L, BLOCK R<br />
|-<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|STUDIO COMP, PEDAL COMP 1, PEDAL COMP 2, DYNAMICS, OPTICAL 1, OPTICAL 2<br />
|-<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|INSTRUMENT, LINE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|10 BAND CONST Q, 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 10 BAND VAR Q, 8 BAND VAR Q, 7 BAND VAR Q, 5 BAND VAR Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|59 BASSGUY, 65 BASSGUY NRML, VIBRATO VERB, DELUXE VERB VIB, DOUBLE VERB VIB, JR BLUES, CLASS-A 15W TB, CLASS-A 30W, CLASS-A 30W TB, BRIT JM45, PLEXI 50W NRML, PLEXI 50W HI 1, 1987X NORMAL, 1987X TREBLE, BRIT 800, BRIT SUPER, HIPOWER NORMAL, HIPOWER BRILLNT, USA CLEAN, USA PRE CLEAN, USA RHYTHM, USA IIC+, USA IIC+ BRIGHT, USA LEAD, USA LEAD BRT, RECTO2 ORG VNTG, RECTO2 ORG MDRN, RECTO2 RED VNTG, RECTO2 RED MDRN, EURO BLUE, EURO RED, SHIVER CLEAN, SHIVER LEAD, EURO UBER, SOLO 99 CLEAN, SOLO 100 RHY, SOLO 100 LEAD, FRIEDMAN BE V1, FRIEDMAN HBE V1, PVH 6160 BLOCK, MR Z MZ-38, CA3+ RHY, CA3+ LEAD, WRECKER ROCKET, CORNCOB M50, CA OD-2, FRYETTE D60 L, FRYETTE D60 M, BRIT BROWN, CITRUS RV50, JAZZ 120, ENERGYBALL, ODS-100 CLEAN, ODS-100 HRM, FAS RHYTHM, FAS LEAD 1, FAS LEAD 2, FAS MODERN, DAS METALL, BRIT PRE, BUTTERY, BOUTIQUE 1, BOUTIQUE 2, CAMERON CCV 1A, CAMERON CCV 2A, SV BASS, TUBE PRE, FAS BROWN, BIG HAIR, SOLO 99 LEAD, SUPERTWEED, TX STAR LEAD, FAS WRECK, BRIT JVM OD1 OR, BRIT JVM OD2 OR, FAS 6160, CALI LEGGY, USA LEAD +, USA LEAD BRT +, PRINCE TONE, BLANKNSHP LEEDS, 5153 100W GREEN, 5153 100W BLUE, 5153 100W RED, SOLO 88 RHYTHM, DIV/13 CJ, HERBIE CH2-, HERBIE CH2+, HERBIE CH3, DIRTY SHIRLEY 1, DIZZY V4 BLUE 2, DIZZY V4 BLUE 3, DIZZY V4 BLUE 4, SUHR BADGER 18, SUHR BADGER 30, PRINCE TONE NR, SUPREMO TREM, ATOMICA LOW, ATOMICA HIGH, DELUXE TWEED, SPAWN ROD OD2-1, SPAWN ROD OD2-2, SPAWN ROD OD2-3, BRIT SILVER, SPAWN NITROUS 2, FAS CRUNCH, TWO STONE J35 1, FOX ODS, HOT KITTY, BAND-COMMANDER, SUPER VERB VIB, VIBRA-KING, GIBTONE SCOUT, PVH 6160+ LD, SOLO 100 CLEAN, USA PRE LD2 GRN, USA PRE LD2 YLW, CA3+ CLEAN, FOX ODS DEEP, BRIT JVM OD1 GN, BRIT JVM OD2 GN, VIBRATO LUX, BRIT 800 MOD, NUCLEAR-TONE, BLUDOJAI CLEAN, BLUDOJAI LD PAB, PLEXI 100W HIGH, PLEXI 100W NRML, RUBY ROCKET, AC-20 EF86 B, PRINCE TONE REV, COMET CONCOURSE, FAS MODERN II, CA TRIPTIK MDRN, CA TRIPTIK CLSC, CA TRIPTIK CLN, THORDENDAL VINT, THORDENDAL MDRN, ODS-100 HRM MID, EURO BLUE MDRN, EURO RED MDRN, PLEXI 50W JUMP, AC-20 EF86 T, COMET 60, HIPOWER JUMPED, PLEXI 100W JUMP, BRIT JM45 JUMP, 1987X JUMP, RECTO1 ORG VNTG, RECTO1 RED, ODS-100 FORD 1, BOGFISH STRATO, BOGFISH BROWN, 5F1 TWEED, WRECKER EXPRESS, TWO STONE J35 2, ODS-100 FORD 2, MR Z MZ-8, CAR ROAMER, USA SUB BLUES, WRECKER LVRPOOL, CITRUS TERRIER, CITRUS A30 CLN, CITRUS A30 DRTY, DIV/13 FT37 LO, DIV/13 FT37 HI, MATCHBOX D-30, FAS CLASS-A, USA BASS 400 1, USA BASS 400 2, CITRUS BASS 200, FAS BASS, TREMOLO LUX, FAS BROOTALZ, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD2 RED, USA PRE LD1 RED, TX STAR CLEAN, AC-20 12AX7 T, VIBRATO VERB AA, VIBRATO VERB AB, CA TUCANA LEAD, JR BLUES FAT, SOLO 88 LEAD, BRIT AFS100 1, BRIT AFS100 2, CLASS-A 30W HOT, DIZZY V4 SLVR 2, DIZZY V4 SLVR 3, DIZZY V4 SLVR 4, 1959SLP NORMAL, 1959SLP TREBLE, 1959SLP JUMP, FAS MODERN III, ODS-100 FORD MD, MR Z HWY 66, 6G4 SUPER, 6G12 CONCERT, 65 BASSGUY BASS, VIBRA-KING FAT, SPAWN ROD OD1-1, SPAWN ROD OD1-2, SPAWN ROD OD1-3, CA TUCANA CLN, BRIT JVM OD1 RD, BRIT JVM OD2 RD, CAMERON CCV 1B, CAMERON CCV 2B, CAMERON CCV 2C, CAMERON CCV 2D, FRIEDMAN SM BOX, 5153 50W BLUE, DIV/13 CJ BOOST, USA IIC+ DEEP, USA IIC+ BRT/DP, 5F8 TWEED, DOUBLE VERB SF, VIBRATO VERB CS, JMPRE-1 OD1, JMPRE-1 OD2, JMPRE-1 OD1 BS, JMPRE-1 OD2 BS, DELUXE VERB NRM, DOUBLE VERB NRM, SUPER VERB NRM, BLUDOJAI LD 2, PLEXI 50W 6550, FAS HOT ROD, PVH 6160+ RHY B, PVH 6160+ RHY, SOLO 88 CLEAN, CLASS-A 30W BRT, PLEXI 50W HI 2, SPAWN NITROUS 1, RUBY ROCKET BRT, AC-20 12AX7 B, PLEXI 100W 1970, JS410 LEAD OR, JS410 LEAD RD, JS410 CRUNCH OR, JS410 CRUNCH RD, FRIEDMAN BE V2, FRIEDMAN HBE V2, DWEEZIL'S B-MAN, FRIEDMAN BE, FRIEDMAN HBE, USA IIC++, LEGATO 100, CAPT HOOK 2B, CAPT HOOK 3B, CAPT HOOK 2A, CAPT HOOK 3A, CAPT HOOK 1A, CAPT HOOK 1B, DIRTY SHIRLEY 2, BRIT 800 #34, 5F1 TWEED EC<br />
|-<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|PRE, POST, MID, END<br />
|-<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|ACTIVE, DEFAULT, BROWNFACE, BLACKFACE, BASSGUY, TOP BOOST, PLEXI, BOUTIQUE, HI POWER, USA NORMAL, USA FAT, RECTO1 ORG, RECTO1 RED, SKYLINE, GERMAN, JR BLUES, WRECKER 1, NEUTRAL, CA3+SE, FREYER D60, MR Z 38 SR, EURO UBER, PVH 6160, SOLO 100, CORNCOB, XTC, CAROLANN, CITRUS, BRIT JM45, USA RHY, RECTO2 ORG, RECTO2 RED, SHIVER CLN, CAMERON, BRIT JVM 0D1, BRIT JVM 0D2, 5153 GREEN, 5153 BLUE, 5153 RED, BRIT SUPER, DIV13 CJ, BADGER 18, ATOMICA, SPAWN, BADGER 30, BRIT SILVER, SUPER VERB, HOT KITTY, VIBRATO-KING, GIBTONE SCOUT, CA3+SE CLEAN, BF FIXED MID, GERMAN V4, VIBRATO-LUX, DIRTY SHIRLEY, PLEXI 100W, RUBY ROCKET BRT, CONCOURSE, TRIPTIK LD, TRIPTIK CLN, JAZZ 120, BOGFISH, WRECKER 2, SKYLINE DEEP, USA SUB BLUES, WRECKER LVRPOOL, CITRUS A30 CLN, CITRUS A30 DRT, CAR ROAMER, USA BASS, CITRUS BASS, STUDIO, BRIT 800, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD1 RED, RECTO ORG BRT, RECTO RED BRT, VIBROVERB AA, PVH 6160 II LD, RUMBLE HRM, MR Z HWY 66, SUPER 6G4, 65 BASSMAN BASS, FREIDMAN, BAND-COMMANDER, USA PRE CLEAN, TUCANA CLEAN, FRIEDMAN SM BOX, TX STAR, USA IIC+, THORDENDAL, SOLO 99, BLUDOJAI, HERBIE, PVH 6160 II RHY, SOLO 88 CLEAN, JS410, JS410 MIDSHIFT, RUBY ROCKET, USA IIC++, LEGATO 100, HOOK EDGE, HOOK NO EDGE, HOOK CLEAN 1, HOOK CLEAN 2, SOLO 88<br />
|-<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|PRE-PI, POST-PI, PRE-TRIODE<br />
|-<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|OFF, AUTH, IDEAL<br />
|-<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|IDEAL TETRODE, IDEAL PENTODE, EL34/6CA7, EL84/6BQ5, 6L6/5881, 6V6, KT66, KT88, 6550, 6973, 6AQ5, 300B<br />
|-<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|12AX7A SYL, ECC83, 7025, 12AX7A JJ, ECC803S, EF86, 12AX7A RCA, 12AX7A, 12AX7B<br />
|-<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|AC, DC<br />
|-<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|8 BAND VAR Q, 7 BAND VAR Q, 5 BAND (MARK), 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|SHELVING, PEAKING, DYNAMIC<br />
|-<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|OUTPUT, FEEDBACK<br />
|-<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|POST P.A., PRE P.A.<br />
|-<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|AUTHENTIC, IDEAL<br />
|-<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|1<br />
|PROX. EFFECT<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|CAB<br />
|3<br />
|PROX. EFFECT R<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|HI-/ULTRA-RES, NORMAL RES, STEREO, STEREO ULTRARES<br />
|-<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|26<br />
|DELAY<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT, RIGHT, SUM L+R<br />
|-<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|SMALL ROOM, MEDIUM ROOM, LARGE ROOM, SMALL HALL, MEDIUM HALL, LARGE HALL, SMALL CHAMBER, MEDIUM CHAMBER, LARGE CHAMBER, SMALL PLATE, MEDIUM PLATE, LARGE PLATE, SMALL CATHEDRAL, MED. CATHEDRAL, LARGE CATHEDRAL, SMALL SPRING, MEDIUM SPRING, LARGE SPRING, CAVERN, STONE QUARRY, STUDIO, AMBIENCE, CONCERT HALL, LARGE DEEP HALL, REC STUDIO C, NORTH CHURCH, SOUTH CHURCH, LONDON PLATE, SUN PLATE, HUGE ROOM, DRUM ROOM, HALLWAY, TUNNEL, DEEP CHAMBER, LG WOODEN ROOM, GYMNASIUM, ASYLUM HALL, DEEP SPACE, REC STUDIO A, LG TILED ROOM, VOCAL PLATE, WIDE HALL, RICH HALL<br />
|-<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|NORMAL, HIGH<br />
|-<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, MONO TAPE, STEREO TAPE, PING-PONG, DUAL DELAY, REVERSE DELAY, SWEEP DELAY, DUCKING DELAY, VINTAGE DIGITAL, 2290 W/ MOD, AMBIENT STEREO, DELUXE MIND GUY, MONO BBD, STEREO BBD, LO-FI TAPE<br />
|-<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|MONO, STEREO, PING-PONG, DUAL, REVERSE, SWEEP, TAPE<br />
|-<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT, 24 dB/OCT, 36 dB/OCT, 48 dB/OCT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|LOW, HIGH<br />
|-<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|QUAD-TAP, PLEX DELAY, PLEX DETUNE, PLEX SHIFT, BAND DELAY, QUAD-SERIES, TEN-TAP DLY, RHYTHM TAP, DIFFUSOR, QUAD TAPE DLY<br />
|-<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|FORWARD, REVERSE<br />
|-<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, JAPAN CE-2, WARM STEREO, 80'S STYLE, TRIANGLE CHORUS, 8-VOICE STEREO, VINTAGE TAPE, DIMENSION 1, DIMENSION 2, 4-VOICE ANALOG<br />
|-<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, HIGH<br />
|-<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, THRU-ZERO, STEREO JET, ZERO FLANGER, POP FLANGER<br />
|-<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, SCRIPT 45, SCRIPT 90, BLOCK 90, CLASSIC VIBE, STEREO 8-STAGE, BARBERPOLE<br />
|-<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|2, 4, 6, 8, 10, 12<br />
|-<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|NORMAL, VIBE, BARBERPOLE<br />
|-<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|UP, DOWN<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|OFF, 0 DEG, 90 DEG, 180 DEG, 270 DEG<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|FAS STANDARD, CLYDE, CRY BABE, VX846, COLOR-TONE, FUNK, MORTAL, VX845<br />
|-<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT ONLY, RIGHT ONLY<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|TREMOLO, PANNER<br />
|-<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DETUNE, FIXED HARM, INTEL HARM, CL. WHAMMY, OCTAVE DIV, CRYSTALS, AD. WHAMMY, ARPEGGIATOR, CUST. SHIFT<br />
|-<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|UP 1 OCT, DOWN 1 OCT, UP 2 OCT, DOWN 2 OCT, UP|DN 1 OCT, UP|DN 2 OCT<br />
|-<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|A , Bb, B , C , Db, D , Eb, E , F , Gb, G , Ab<br />
|-<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|IONIAN MAJ, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, AEOLIAN MIN, LOCRIAN, MEL. MINOR, HARM. MINOR, DIMINISHED, WHOLE TONE, DOM. SEVEN, DIM. WHOLE, PENTA. MAJ, PENTA. MIN, BLUES, CHROMATIC, CUSTOM<br />
|-<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|SMOOTH, STEPPED<br />
|-<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|OFF, POLY, MONO<br />
|-<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|DUAL, BOTH, PING-PONG<br />
|-<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8<br />
|-<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, Infinite<br />
|-<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|GLOBAL, LOCAL<br />
|-<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|NULL, LOWPASS, BANDPASS, HIGHPASS, LOWSHELF, HIGHSHLF, PEAKING, NOTCH, TILT EQ, LOWSHELF2, HIGHSHLF2, PEAKING2<br />
|-<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|2nd, 4th<br />
|-<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|RAT DIST, PI FUZZ, TUBE DRV 3-KNOB, SUPER OD, TREBLE BOOST, MID BOOST, T808 OD, FAT RAT, T808 MOD, OCTAVE DIST, PLUS DIST, HARD FUZZ, FET BOOST, TAPE DIST, FULL OD, BLUES OD, SHRED DIST, M-ZONE DIST, BENDER FUZZ, BB PRE, MASTER FUZZ, FACE FUZZ, BIT CRUSHER, ETERNAL LOVE, ESOTERIC ACB, ESOTERIC RCB, ZEN MASTER, TUBE DRV 4-KNOB, FAS LED-DRIVE, SDD PREAMP, FET PREAMP, RUCKUS, MICRO BOOST, FAS BOOST, TIMOTHY, SHIMMER DRIVE<br />
|-<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|LV TUBE, HARD, SOFT, GERMANIUM, FW RECT, HV TUBE, SILICON, 4558/DIODE, LED, FET, OP-AMP, VARIABLE, NULL<br />
|-<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|L+R, LEFT, RIGHT<br />
|-<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|MODERN, CLASSIC<br />
|-<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|INPUT<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|CLASSIC, INTELLIGENT<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|55<br />
|17<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|56<br />
|18<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|57<br />
|19<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|58<br />
|20<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|59<br />
|21<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|60<br />
|22<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|61<br />
|23<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|62<br />
|24<br />
|slider<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|63<br />
|25<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|64<br />
|26<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|65<br />
|27<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|66<br />
|28<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|67<br />
|29<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|68<br />
|30<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|69<br />
|31<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|70<br />
|32<br />
|slider<br />
| <br />
|-<br />
|CONTROLLERS<br />
|74<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|75<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|76<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|77<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|78<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|79<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|80<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|81<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|82<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|83<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|84<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|85<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|86<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|87<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|88<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|89<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|CONTROLLERS<br />
|90<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|CONTROLLERS<br />
|91<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|CONTROLLERS<br />
|92<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|93<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|94<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|95<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|96<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|97<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|98<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|99<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|100<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|101<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|102<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|103<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|104<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|105<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|CONTROLLERS<br />
|106<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|CONTROLLERS<br />
|107<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2<br />
|-<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|MONO, STEREO, MONO UNDO, STEREO UNDO<br />
|-<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|OFF, QUARTER, EIGTH, SIXTEENTH<br />
|-<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|}<br />
<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43335
MIDI SysEx
2017-05-21T20:06:12Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Block IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|140<br />
|Output<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|No<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
=MIDI SysEx: Axe Fx II/XL/XL+ Block Parameter IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|HARD, SOFT, SOFTER, SOFTEST<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|RMS, PEAK, RMS+PEAK, FAST RMS<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2, BLOCK L, BLOCK R<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|STUDIO COMP, PEDAL COMP 1, PEDAL COMP 2, DYNAMICS, OPTICAL 1, OPTICAL 2<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|INSTRUMENT, LINE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|10 BAND CONST Q, 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 10 BAND VAR Q, 8 BAND VAR Q, 7 BAND VAR Q, 5 BAND VAR Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|59 BASSGUY, 65 BASSGUY NRML, VIBRATO VERB, DELUXE VERB VIB, DOUBLE VERB VIB, JR BLUES, CLASS-A 15W TB, CLASS-A 30W, CLASS-A 30W TB, BRIT JM45, PLEXI 50W NRML, PLEXI 50W HI 1, 1987X NORMAL, 1987X TREBLE, BRIT 800, BRIT SUPER, HIPOWER NORMAL, HIPOWER BRILLNT, USA CLEAN, USA PRE CLEAN, USA RHYTHM, USA IIC+, USA IIC+ BRIGHT, USA LEAD, USA LEAD BRT, RECTO2 ORG VNTG, RECTO2 ORG MDRN, RECTO2 RED VNTG, RECTO2 RED MDRN, EURO BLUE, EURO RED, SHIVER CLEAN, SHIVER LEAD, EURO UBER, SOLO 99 CLEAN, SOLO 100 RHY, SOLO 100 LEAD, FRIEDMAN BE V1, FRIEDMAN HBE V1, PVH 6160 BLOCK, MR Z MZ-38, CA3+ RHY, CA3+ LEAD, WRECKER ROCKET, CORNCOB M50, CA OD-2, FRYETTE D60 L, FRYETTE D60 M, BRIT BROWN, CITRUS RV50, JAZZ 120, ENERGYBALL, ODS-100 CLEAN, ODS-100 HRM, FAS RHYTHM, FAS LEAD 1, FAS LEAD 2, FAS MODERN, DAS METALL, BRIT PRE, BUTTERY, BOUTIQUE 1, BOUTIQUE 2, CAMERON CCV 1A, CAMERON CCV 2A, SV BASS, TUBE PRE, FAS BROWN, BIG HAIR, SOLO 99 LEAD, SUPERTWEED, TX STAR LEAD, FAS WRECK, BRIT JVM OD1 OR, BRIT JVM OD2 OR, FAS 6160, CALI LEGGY, USA LEAD +, USA LEAD BRT +, PRINCE TONE, BLANKNSHP LEEDS, 5153 100W GREEN, 5153 100W BLUE, 5153 100W RED, SOLO 88 RHYTHM, DIV/13 CJ, HERBIE CH2-, HERBIE CH2+, HERBIE CH3, DIRTY SHIRLEY 1, DIZZY V4 BLUE 2, DIZZY V4 BLUE 3, DIZZY V4 BLUE 4, SUHR BADGER 18, SUHR BADGER 30, PRINCE TONE NR, SUPREMO TREM, ATOMICA LOW, ATOMICA HIGH, DELUXE TWEED, SPAWN ROD OD2-1, SPAWN ROD OD2-2, SPAWN ROD OD2-3, BRIT SILVER, SPAWN NITROUS 2, FAS CRUNCH, TWO STONE J35 1, FOX ODS, HOT KITTY, BAND-COMMANDER, SUPER VERB VIB, VIBRA-KING, GIBTONE SCOUT, PVH 6160+ LD, SOLO 100 CLEAN, USA PRE LD2 GRN, USA PRE LD2 YLW, CA3+ CLEAN, FOX ODS DEEP, BRIT JVM OD1 GN, BRIT JVM OD2 GN, VIBRATO LUX, BRIT 800 MOD, NUCLEAR-TONE, BLUDOJAI CLEAN, BLUDOJAI LD PAB, PLEXI 100W HIGH, PLEXI 100W NRML, RUBY ROCKET, AC-20 EF86 B, PRINCE TONE REV, COMET CONCOURSE, FAS MODERN II, CA TRIPTIK MDRN, CA TRIPTIK CLSC, CA TRIPTIK CLN, THORDENDAL VINT, THORDENDAL MDRN, ODS-100 HRM MID, EURO BLUE MDRN, EURO RED MDRN, PLEXI 50W JUMP, AC-20 EF86 T, COMET 60, HIPOWER JUMPED, PLEXI 100W JUMP, BRIT JM45 JUMP, 1987X JUMP, RECTO1 ORG VNTG, RECTO1 RED, ODS-100 FORD 1, BOGFISH STRATO, BOGFISH BROWN, 5F1 TWEED, WRECKER EXPRESS, TWO STONE J35 2, ODS-100 FORD 2, MR Z MZ-8, CAR ROAMER, USA SUB BLUES, WRECKER LVRPOOL, CITRUS TERRIER, CITRUS A30 CLN, CITRUS A30 DRTY, DIV/13 FT37 LO, DIV/13 FT37 HI, MATCHBOX D-30, FAS CLASS-A, USA BASS 400 1, USA BASS 400 2, CITRUS BASS 200, FAS BASS, TREMOLO LUX, FAS BROOTALZ, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD2 RED, USA PRE LD1 RED, TX STAR CLEAN, AC-20 12AX7 T, VIBRATO VERB AA, VIBRATO VERB AB, CA TUCANA LEAD, JR BLUES FAT, SOLO 88 LEAD, BRIT AFS100 1, BRIT AFS100 2, CLASS-A 30W HOT, DIZZY V4 SLVR 2, DIZZY V4 SLVR 3, DIZZY V4 SLVR 4, 1959SLP NORMAL, 1959SLP TREBLE, 1959SLP JUMP, FAS MODERN III, ODS-100 FORD MD, MR Z HWY 66, 6G4 SUPER, 6G12 CONCERT, 65 BASSGUY BASS, VIBRA-KING FAT, SPAWN ROD OD1-1, SPAWN ROD OD1-2, SPAWN ROD OD1-3, CA TUCANA CLN, BRIT JVM OD1 RD, BRIT JVM OD2 RD, CAMERON CCV 1B, CAMERON CCV 2B, CAMERON CCV 2C, CAMERON CCV 2D, FRIEDMAN SM BOX, 5153 50W BLUE, DIV/13 CJ BOOST, USA IIC+ DEEP, USA IIC+ BRT/DP, 5F8 TWEED, DOUBLE VERB SF, VIBRATO VERB CS, JMPRE-1 OD1, JMPRE-1 OD2, JMPRE-1 OD1 BS, JMPRE-1 OD2 BS, DELUXE VERB NRM, DOUBLE VERB NRM, SUPER VERB NRM, BLUDOJAI LD 2, PLEXI 50W 6550, FAS HOT ROD, PVH 6160+ RHY B, PVH 6160+ RHY, SOLO 88 CLEAN, CLASS-A 30W BRT, PLEXI 50W HI 2, SPAWN NITROUS 1, RUBY ROCKET BRT, AC-20 12AX7 B, PLEXI 100W 1970, JS410 LEAD OR, JS410 LEAD RD, JS410 CRUNCH OR, JS410 CRUNCH RD, FRIEDMAN BE V2, FRIEDMAN HBE V2, DWEEZIL'S B-MAN, FRIEDMAN BE, FRIEDMAN HBE, USA IIC++, LEGATO 100, CAPT HOOK 2B, CAPT HOOK 3B, CAPT HOOK 2A, CAPT HOOK 3A, CAPT HOOK 1A, CAPT HOOK 1B, DIRTY SHIRLEY 2, BRIT 800 #34, 5F1 TWEED EC<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|PRE, POST, MID, END<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|ACTIVE, DEFAULT, BROWNFACE, BLACKFACE, BASSGUY, TOP BOOST, PLEXI, BOUTIQUE, HI POWER, USA NORMAL, USA FAT, RECTO1 ORG, RECTO1 RED, SKYLINE, GERMAN, JR BLUES, WRECKER 1, NEUTRAL, CA3+SE, FREYER D60, MR Z 38 SR, EURO UBER, PVH 6160, SOLO 100, CORNCOB, XTC, CAROLANN, CITRUS, BRIT JM45, USA RHY, RECTO2 ORG, RECTO2 RED, SHIVER CLN, CAMERON, BRIT JVM 0D1, BRIT JVM 0D2, 5153 GREEN, 5153 BLUE, 5153 RED, BRIT SUPER, DIV13 CJ, BADGER 18, ATOMICA, SPAWN, BADGER 30, BRIT SILVER, SUPER VERB, HOT KITTY, VIBRATO-KING, GIBTONE SCOUT, CA3+SE CLEAN, BF FIXED MID, GERMAN V4, VIBRATO-LUX, DIRTY SHIRLEY, PLEXI 100W, RUBY ROCKET BRT, CONCOURSE, TRIPTIK LD, TRIPTIK CLN, JAZZ 120, BOGFISH, WRECKER 2, SKYLINE DEEP, USA SUB BLUES, WRECKER LVRPOOL, CITRUS A30 CLN, CITRUS A30 DRT, CAR ROAMER, USA BASS, CITRUS BASS, STUDIO, BRIT 800, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD1 RED, RECTO ORG BRT, RECTO RED BRT, VIBROVERB AA, PVH 6160 II LD, RUMBLE HRM, MR Z HWY 66, SUPER 6G4, 65 BASSMAN BASS, FREIDMAN, BAND-COMMANDER, USA PRE CLEAN, TUCANA CLEAN, FRIEDMAN SM BOX, TX STAR, USA IIC+, THORDENDAL, SOLO 99, BLUDOJAI, HERBIE, PVH 6160 II RHY, SOLO 88 CLEAN, JS410, JS410 MIDSHIFT, RUBY ROCKET, USA IIC++, LEGATO 100, HOOK EDGE, HOOK NO EDGE, HOOK CLEAN 1, HOOK CLEAN 2, SOLO 88<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|PRE-PI, POST-PI, PRE-TRIODE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|OFF, AUTH, IDEAL<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|IDEAL TETRODE, IDEAL PENTODE, EL34/6CA7, EL84/6BQ5, 6L6/5881, 6V6, KT66, KT88, 6550, 6973, 6AQ5, 300B<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|12AX7A SYL, ECC83, 7025, 12AX7A JJ, ECC803S, EF86, 12AX7A RCA, 12AX7A, 12AX7B<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|AC, DC<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|8 BAND VAR Q, 7 BAND VAR Q, 5 BAND (MARK), 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|SHELVING, PEAKING, DYNAMIC<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|OUTPUT, FEEDBACK<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|POST P.A., PRE P.A.<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|AUTHENTIC, IDEAL<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|1<br />
|MIC<br />
|select<br />
|NONE, 57 DYN, 58 DYN, 421 DYN, 87A COND, U87 COND, E609 DYN, RE16 DYN, R121 RIB, D112 DYN, 67 COND, NULL, INVERT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|3<br />
|MIC R<br />
|select<br />
|NONE, 57 DYN, 58 DYN, 421 DYN, 87A COND, U87 COND, E609 DYN, RE16 DYN, R121 RIB, D112 DYN, 67 COND, NULL, INVERT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|HI-/ULTRA-RES, NORMAL RES, STEREO, STEREO ULTRARES<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|14<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|15<br />
|SATURATION<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|16<br />
|ROOM LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|17<br />
|ROOM SIZE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|18<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|21<br />
|SPEAKER SIZE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|23<br />
|AIR<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|24<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|25<br />
|AIR FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|26<br />
|DELAY L<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT, RIGHT, SUM L+R<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|31<br />
|PREAMP TYPE<br />
|select<br />
|NONE, TUBE, BIPOLAR, FET I, FET II, TRANSFORMER, TAPE 70us, TAPE 50us, TAPE 35us, VINTAGE, MODERN, EXCITER<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|32<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|33<br />
|MID<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|34<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|35<br />
|PREAMP MODE<br />
|select<br />
|ECONOMY, HIGH QUALITY<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|36<br />
|DEPHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CAB<br />
|38<br />
|MOTOR TIME CONSTANT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|SMALL ROOM, MEDIUM ROOM, LARGE ROOM, SMALL HALL, MEDIUM HALL, LARGE HALL, SMALL CHAMBER, MEDIUM CHAMBER, LARGE CHAMBER, SMALL PLATE, MEDIUM PLATE, LARGE PLATE, SMALL CATHEDRAL, MED. CATHEDRAL, LARGE CATHEDRAL, SMALL SPRING, MEDIUM SPRING, LARGE SPRING, CAVERN, STONE QUARRY, STUDIO, AMBIENCE, CONCERT HALL, LARGE DEEP HALL, REC STUDIO C, NORTH CHURCH, SOUTH CHURCH, LONDON PLATE, SUN PLATE, HUGE ROOM, DRUM ROOM, HALLWAY, TUNNEL, DEEP CHAMBER, LG WOODEN ROOM, GYMNASIUM, ASYLUM HALL, DEEP SPACE, REC STUDIO A, LG TILED ROOM, VOCAL PLATE, WIDE HALL, RICH HALL<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|NORMAL, HIGH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, MONO TAPE, STEREO TAPE, PING-PONG, DUAL DELAY, REVERSE DELAY, SWEEP DELAY, DUCKING DELAY, VINTAGE DIGITAL, 2290 W/ MOD, AMBIENT STEREO, DELUXE MIND GUY, MONO BBD, STEREO BBD, LO-FI TAPE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|MONO, STEREO, PING-PONG, DUAL, REVERSE, SWEEP, TAPE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT, 24 dB/OCT, 36 dB/OCT, 48 dB/OCT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|LOW, HIGH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|QUAD-TAP, PLEX DELAY, PLEX DETUNE, PLEX SHIFT, BAND DELAY, QUAD-SERIES, TEN-TAP DLY, RHYTHM TAP, DIFFUSOR, QUAD TAPE DLY<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|FORWARD, REVERSE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, JAPAN CE-2, WARM STEREO, 80'S STYLE, TRIANGLE CHORUS, 8-VOICE STEREO, VINTAGE TAPE, DIMENSION 1, DIMENSION 2, 4-VOICE ANALOG<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, HIGH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, THRU-ZERO, STEREO JET, ZERO FLANGER, POP FLANGER<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, SCRIPT 45, SCRIPT 90, BLOCK 90, CLASSIC VIBE, STEREO 8-STAGE, BARBERPOLE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|2, 4, 6, 8, 10, 12<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|NORMAL, VIBE, BARBERPOLE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|UP, DOWN<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|OFF, 0 DEG, 90 DEG, 180 DEG, 270 DEG<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|FAS STANDARD, CLYDE, CRY BABE, VX846, COLOR-TONE, FUNK, MORTAL, VX845<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT ONLY, RIGHT ONLY<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|TREMOLO, PANNER<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DETUNE, FIXED HARM, INTEL HARM, CL. WHAMMY, OCTAVE DIV, CRYSTALS, AD. WHAMMY, ARPEGGIATOR, CUST. SHIFT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|UP 1 OCT, DOWN 1 OCT, UP 2 OCT, DOWN 2 OCT, UP|DN 1 OCT, UP|DN 2 OCT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|A , Bb, B , C , Db, D , Eb, E , F , Gb, G , Ab<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|IONIAN MAJ, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, AEOLIAN MIN, LOCRIAN, MEL. MINOR, HARM. MINOR, DIMINISHED, WHOLE TONE, DOM. SEVEN, DIM. WHOLE, PENTA. MAJ, PENTA. MIN, BLUES, CHROMATIC, CUSTOM<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|SMOOTH, STEPPED<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|OFF, POLY, MONO<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|DUAL, BOTH, PING-PONG<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, Infinite<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|GLOBAL, LOCAL<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|NULL, LOWPASS, BANDPASS, HIGHPASS, LOWSHELF, HIGHSHLF, PEAKING, NOTCH, TILT EQ, LOWSHELF2, HIGHSHLF2, PEAKING2<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|2nd, 4th<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|RAT DIST, PI FUZZ, TUBE DRV 3-KNOB, SUPER OD, TREBLE BOOST, MID BOOST, T808 OD, FAT RAT, T808 MOD, OCTAVE DIST, PLUS DIST, HARD FUZZ, FET BOOST, TAPE DIST, FULL OD, BLUES OD, SHRED DIST, M-ZONE DIST, BENDER FUZZ, BB PRE, MASTER FUZZ, FACE FUZZ, BIT CRUSHER, ETERNAL LOVE, ESOTERIC ACB, ESOTERIC RCB, ZEN MASTER, TUBE DRV 4-KNOB, FAS LED-DRIVE, SDD PREAMP, FET PREAMP, RUCKUS, MICRO BOOST, FAS BOOST, TIMOTHY, SHIMMER DRIVE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|LV TUBE, HARD, SOFT, GERMANIUM, FW RECT, HV TUBE, SILICON, 4558/DIODE, LED, FET, OP-AMP, VARIABLE, NULL<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|L+R, LEFT, RIGHT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|MODERN, CLASSIC<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|INPUT<br />
|4<br />
|INPUT Z<br />
|select<br />
|AUTO: , 1M, 1M+CAP, 230K, 230K+CAP, 90K, 90K+CAP, 70K, 70K+CAP, 32K, 32K+CAP, 22K, 22K+CAP<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|INPUT<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|INPUT<br />
|7<br />
|EFFECT TYPE<br />
|select<br />
|CLASSIC, INTELLIGENT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|55<br />
|A<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|56<br />
|B<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|57<br />
|C<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|58<br />
|D<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|59<br />
|17<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|60<br />
|18<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|61<br />
|19<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|62<br />
|20<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|63<br />
|21<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|64<br />
|22<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|65<br />
|23<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|66<br />
|24<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|67<br />
|25<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|68<br />
|26<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|69<br />
|27<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|70<br />
|28<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|71<br />
|29<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|72<br />
|30<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|73<br />
|31<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|74<br />
|32<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|77<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|78<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|79<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|80<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|81<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|82<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|83<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|84<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|85<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|86<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|87<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|88<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|89<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|90<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|91<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|92<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|93<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|94<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|95<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|MONO, STEREO, MONO UNDO, STEREO UNDO<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|OFF, QUARTER, EIGTH, SIXTEENTH<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SND<br />
|0<br />
|SEND LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|SND<br />
|1<br />
|OUT LEVEL<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RTN<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RTN<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RTN<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RTN<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RTN<br />
|4<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|0<br />
|Gain 1<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|1<br />
|Gain 2<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|2<br />
|Gain 3<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|3<br />
|Gain 4<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|4<br />
|Balance 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|5<br />
|Balance 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|6<br />
|Balance 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|7<br />
|Balance 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|8<br />
|MASTER<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MIX<br />
|9<br />
|OUT MODE<br />
|select<br />
|STEREO, MONO<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|2<br />
|Threshold 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|3<br />
|Ratio 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|4<br />
|Attack 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|5<br />
|Release 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|6<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|7<br />
|Detect 1<br />
|select<br />
|RMS, PEAK, FAST RMS<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|8<br />
|Mute 1<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|9<br />
|Threshold 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|10<br />
|Ratio 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|11<br />
|Attack 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|12<br />
|Release 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|13<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|14<br />
|Detect 2<br />
|select<br />
|RMS, PEAK, FAST RMS<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|15<br />
|Mute 2<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|16<br />
|Threshold 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|17<br />
|Ratio 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|18<br />
|Attack 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|19<br />
|Release 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|20<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|21<br />
|Detect 3<br />
|select<br />
|RMS, PEAK, FAST RMS<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|22<br />
|Mute 3<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|24<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|25<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MBC<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|0<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|1<br />
|Freq Multi.<br />
|select<br />
|X 1, X 10<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|2<br />
|Lo Level L<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|3<br />
|Hi Level L<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|4<br />
|Lo Level R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|5<br />
|Hi Level R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|6<br />
|Lo Pan L<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|7<br />
|Hi Pan L<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|8<br />
|Lo Pan R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|9<br />
|Hi Pan R<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|11<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|12<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|XVR<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|0<br />
|In Gain<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|2<br />
|Time<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|3<br />
|Number of Taps<br />
|rangeKnob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|4<br />
|Time Shape<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|5<br />
|Time Alpha<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|6<br />
|Amplitude Shape<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|7<br />
|Alplitude Alpha<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|8<br />
|Pan Shape<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|9<br />
|Pan Alpha<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|10<br />
|Time Randomize<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|11<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|12<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|13<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|14<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|MGT<br />
|15<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|0<br />
|Master Time<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|2<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|3<br />
|Master Rate<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|4<br />
|Master Depth<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|5<br />
|Feedback<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|6<br />
|Time 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|7<br />
|Time 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|8<br />
|Time 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|9<br />
|Time 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|10<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|11<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|12<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|13<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|14<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|15<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|16<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|17<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|18<br />
|Depth 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|19<br />
|Depth 2<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|20<br />
|Depth 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|21<br />
|Depth 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|22<br />
|Morph 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|23<br />
|Morph 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|24<br />
|Morph 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|25<br />
|Morph 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|26<br />
|LFO1 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|27<br />
|LFO2 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|28<br />
|LFO3 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|29<br />
|LFO4 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|30<br />
|LFO1 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|31<br />
|LFO2 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|32<br />
|LFO3 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|33<br />
|LFO4 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|34<br />
|M. Depth (LFO4>All)<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|35<br />
|Input Mode<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|36<br />
|LFO1 Master<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|37<br />
|Wide Mode<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|38<br />
|M. Phase (LFO4)<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|39<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|40<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|41<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|42<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|43<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|QCH<br />
|45<br />
|Hi Cut Frequency<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|0<br />
|Mode<br />
|select<br />
|OFFLINE, LIVE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|1<br />
|Amount<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|2<br />
|Smoothing<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|3<br />
|Reference<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|4<br />
|Local<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|6<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|7<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|8<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|10<br />
|Ref Source<br />
|select<br />
|ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2, BLK IN, USB<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|11<br />
|Avg. Time<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|12<br />
|Ref Channel<br />
|select<br />
|SUM L+R, LEFT, RIGHT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|13<br />
|Local Channel<br />
|select<br />
|SUM L+R, LEFT, RIGHT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|14<br />
|Ref Solo<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|TMA<br />
|15<br />
|Resolution<br />
|select<br />
|LOW, HIGH<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|0<br />
|Input Select<br />
|select<br />
|LEFT, RIGHT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|1<br />
|Bands<br />
|select<br />
|4, 8, 12, 16<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|2<br />
|Frequency Min<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|3<br />
|Frequency Max<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|4<br />
|Shift<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|5<br />
|Freeze<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|6<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|7<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|8<br />
|Resonance<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|9<br />
|Attack<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|10<br />
|Release<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|11<br />
|Highpass Mix In<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|12<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|13<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|14<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|15<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|16<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|17<br />
|Level 1<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|18<br />
|Level 2<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|19<br />
|Level 3<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|20<br />
|Level 4<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|21<br />
|Level 5<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|22<br />
|Level 6<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|23<br />
|Level 7<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|24<br />
|Level 8<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|25<br />
|Level 9<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|26<br />
|Level 10<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|27<br />
|Level 11<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|28<br />
|Level 12<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|29<br />
|Level 13<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|30<br />
|Level 14<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|31<br />
|Level 15<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|32<br />
|Level 16<br />
|slider<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|33<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|34<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|35<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|36<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|37<br />
|Pan 5<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|38<br />
|Pan 6<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|39<br />
|Pan 7<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|40<br />
|Pan 8<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|41<br />
|Pan 9<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|42<br />
|Pan 10<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|43<br />
|Pan 11<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|44<br />
|Pan 12<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|45<br />
|Pan 13<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|46<br />
|Pan 14<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|47<br />
|Pan 15<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|VOC<br />
|48<br />
|Pan 16<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|MANUAL, CHORDAL<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|1<br />
|Chord Type<br />
|select<br />
|MAJOR, MAJOR 6, DOM. 7, MAJOR 7, MINOR, MINOR 6, MINOR 7, DIMIN., AUGMEN.<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|2<br />
|Input Gain<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|3<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|4<br />
|Master Freq<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|5<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|6<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|7<br />
|Master Feedback<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|8<br />
|Master Q<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|9<br />
|Freq 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|10<br />
|Freq 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|11<br />
|Freq 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|12<br />
|Freq 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|13<br />
|FB 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|14<br />
|FB 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|15<br />
|FB 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|16<br />
|FB 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|17<br />
|Filter Loc 1<br />
|select<br />
|PRE, POST<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|18<br />
|Filter Loc 2<br />
|select<br />
|PRE, POST<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|19<br />
|Filter Loc 3<br />
|select<br />
|PRE, POST<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|20<br />
|Filter Loc 4<br />
|select<br />
|PRE, POST<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|21<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|22<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|23<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|24<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|25<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|26<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|27<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|28<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|29<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|30<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|31<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|32<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|33<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|34<br />
|Level<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|35<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|36<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|37<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
|Axe-Fx II/XL/XL+<br />
|RES<br />
|39<br />
|Input Mode<br />
|select<br />
|MONO, STEREO<br />
|}<br />
=MIDI SysEx: AX8 Block Parameter IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|HARD, SOFT, SOFTER, SOFTEST<br />
|-<br />
|AX8<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|RMS, PEAK, RMS+PEAK, FAST RMS<br />
|-<br />
|AX8<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2, BLOCK L, BLOCK R<br />
|-<br />
|AX8<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|STUDIO COMP, PEDAL COMP 1, PEDAL COMP 2, DYNAMICS, OPTICAL 1, OPTICAL 2<br />
|-<br />
|AX8<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|AX8<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|INSTRUMENT, LINE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|AX8<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|10 BAND CONST Q, 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 10 BAND VAR Q, 8 BAND VAR Q, 7 BAND VAR Q, 5 BAND VAR Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
|AX8<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
|AX8<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
|AX8<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
|AX8<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
|AX8<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|59 BASSGUY, 65 BASSGUY NRML, VIBRATO VERB, DELUXE VERB VIB, DOUBLE VERB VIB, JR BLUES, CLASS-A 15W TB, CLASS-A 30W, CLASS-A 30W TB, BRIT JM45, PLEXI 50W NRML, PLEXI 50W HI 1, 1987X NORMAL, 1987X TREBLE, BRIT 800, BRIT SUPER, HIPOWER NORMAL, HIPOWER BRILLNT, USA CLEAN, USA PRE CLEAN, USA RHYTHM, USA IIC+, USA IIC+ BRIGHT, USA LEAD, USA LEAD BRT, RECTO2 ORG VNTG, RECTO2 ORG MDRN, RECTO2 RED VNTG, RECTO2 RED MDRN, EURO BLUE, EURO RED, SHIVER CLEAN, SHIVER LEAD, EURO UBER, SOLO 99 CLEAN, SOLO 100 RHY, SOLO 100 LEAD, FRIEDMAN BE V1, FRIEDMAN HBE V1, PVH 6160 BLOCK, MR Z MZ-38, CA3+ RHY, CA3+ LEAD, WRECKER ROCKET, CORNCOB M50, CA OD-2, FRYETTE D60 L, FRYETTE D60 M, BRIT BROWN, CITRUS RV50, JAZZ 120, ENERGYBALL, ODS-100 CLEAN, ODS-100 HRM, FAS RHYTHM, FAS LEAD 1, FAS LEAD 2, FAS MODERN, DAS METALL, BRIT PRE, BUTTERY, BOUTIQUE 1, BOUTIQUE 2, CAMERON CCV 1A, CAMERON CCV 2A, SV BASS, TUBE PRE, FAS BROWN, BIG HAIR, SOLO 99 LEAD, SUPERTWEED, TX STAR LEAD, FAS WRECK, BRIT JVM OD1 OR, BRIT JVM OD2 OR, FAS 6160, CALI LEGGY, USA LEAD +, USA LEAD BRT +, PRINCE TONE, BLANKNSHP LEEDS, 5153 100W GREEN, 5153 100W BLUE, 5153 100W RED, SOLO 88 RHYTHM, DIV/13 CJ, HERBIE CH2-, HERBIE CH2+, HERBIE CH3, DIRTY SHIRLEY 1, DIZZY V4 BLUE 2, DIZZY V4 BLUE 3, DIZZY V4 BLUE 4, SUHR BADGER 18, SUHR BADGER 30, PRINCE TONE NR, SUPREMO TREM, ATOMICA LOW, ATOMICA HIGH, DELUXE TWEED, SPAWN ROD OD2-1, SPAWN ROD OD2-2, SPAWN ROD OD2-3, BRIT SILVER, SPAWN NITROUS 2, FAS CRUNCH, TWO STONE J35 1, FOX ODS, HOT KITTY, BAND-COMMANDER, SUPER VERB VIB, VIBRA-KING, GIBTONE SCOUT, PVH 6160+ LD, SOLO 100 CLEAN, USA PRE LD2 GRN, USA PRE LD2 YLW, CA3+ CLEAN, FOX ODS DEEP, BRIT JVM OD1 GN, BRIT JVM OD2 GN, VIBRATO LUX, BRIT 800 MOD, NUCLEAR-TONE, BLUDOJAI CLEAN, BLUDOJAI LD PAB, PLEXI 100W HIGH, PLEXI 100W NRML, RUBY ROCKET, AC-20 EF86 B, PRINCE TONE REV, COMET CONCOURSE, FAS MODERN II, CA TRIPTIK MDRN, CA TRIPTIK CLSC, CA TRIPTIK CLN, THORDENDAL VINT, THORDENDAL MDRN, ODS-100 HRM MID, EURO BLUE MDRN, EURO RED MDRN, PLEXI 50W JUMP, AC-20 EF86 T, COMET 60, HIPOWER JUMPED, PLEXI 100W JUMP, BRIT JM45 JUMP, 1987X JUMP, RECTO1 ORG VNTG, RECTO1 RED, ODS-100 FORD 1, BOGFISH STRATO, BOGFISH BROWN, 5F1 TWEED, WRECKER EXPRESS, TWO STONE J35 2, ODS-100 FORD 2, MR Z MZ-8, CAR ROAMER, USA SUB BLUES, WRECKER LVRPOOL, CITRUS TERRIER, CITRUS A30 CLN, CITRUS A30 DRTY, DIV/13 FT37 LO, DIV/13 FT37 HI, MATCHBOX D-30, FAS CLASS-A, USA BASS 400 1, USA BASS 400 2, CITRUS BASS 200, FAS BASS, TREMOLO LUX, FAS BROOTALZ, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD2 RED, USA PRE LD1 RED, TX STAR CLEAN, AC-20 12AX7 T, VIBRATO VERB AA, VIBRATO VERB AB, CA TUCANA LEAD, JR BLUES FAT, SOLO 88 LEAD, BRIT AFS100 1, BRIT AFS100 2, CLASS-A 30W HOT, DIZZY V4 SLVR 2, DIZZY V4 SLVR 3, DIZZY V4 SLVR 4, 1959SLP NORMAL, 1959SLP TREBLE, 1959SLP JUMP, FAS MODERN III, ODS-100 FORD MD, MR Z HWY 66, 6G4 SUPER, 6G12 CONCERT, 65 BASSGUY BASS, VIBRA-KING FAT, SPAWN ROD OD1-1, SPAWN ROD OD1-2, SPAWN ROD OD1-3, CA TUCANA CLN, BRIT JVM OD1 RD, BRIT JVM OD2 RD, CAMERON CCV 1B, CAMERON CCV 2B, CAMERON CCV 2C, CAMERON CCV 2D, FRIEDMAN SM BOX, 5153 50W BLUE, DIV/13 CJ BOOST, USA IIC+ DEEP, USA IIC+ BRT/DP, 5F8 TWEED, DOUBLE VERB SF, VIBRATO VERB CS, JMPRE-1 OD1, JMPRE-1 OD2, JMPRE-1 OD1 BS, JMPRE-1 OD2 BS, DELUXE VERB NRM, DOUBLE VERB NRM, SUPER VERB NRM, BLUDOJAI LD 2, PLEXI 50W 6550, FAS HOT ROD, PVH 6160+ RHY B, PVH 6160+ RHY, SOLO 88 CLEAN, CLASS-A 30W BRT, PLEXI 50W HI 2, SPAWN NITROUS 1, RUBY ROCKET BRT, AC-20 12AX7 B, PLEXI 100W 1970, JS410 LEAD OR, JS410 LEAD RD, JS410 CRUNCH OR, JS410 CRUNCH RD, FRIEDMAN BE V2, FRIEDMAN HBE V2, DWEEZIL'S B-MAN, FRIEDMAN BE, FRIEDMAN HBE, USA IIC++, LEGATO 100, CAPT HOOK 2B, CAPT HOOK 3B, CAPT HOOK 2A, CAPT HOOK 3A, CAPT HOOK 1A, CAPT HOOK 1B, DIRTY SHIRLEY 2, BRIT 800 #34, 5F1 TWEED EC<br />
|-<br />
|AX8<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|PRE, POST, MID, END<br />
|-<br />
|AX8<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
|AX8<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
|AX8<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|ACTIVE, DEFAULT, BROWNFACE, BLACKFACE, BASSGUY, TOP BOOST, PLEXI, BOUTIQUE, HI POWER, USA NORMAL, USA FAT, RECTO1 ORG, RECTO1 RED, SKYLINE, GERMAN, JR BLUES, WRECKER 1, NEUTRAL, CA3+SE, FREYER D60, MR Z 38 SR, EURO UBER, PVH 6160, SOLO 100, CORNCOB, XTC, CAROLANN, CITRUS, BRIT JM45, USA RHY, RECTO2 ORG, RECTO2 RED, SHIVER CLN, CAMERON, BRIT JVM 0D1, BRIT JVM 0D2, 5153 GREEN, 5153 BLUE, 5153 RED, BRIT SUPER, DIV13 CJ, BADGER 18, ATOMICA, SPAWN, BADGER 30, BRIT SILVER, SUPER VERB, HOT KITTY, VIBRATO-KING, GIBTONE SCOUT, CA3+SE CLEAN, BF FIXED MID, GERMAN V4, VIBRATO-LUX, DIRTY SHIRLEY, PLEXI 100W, RUBY ROCKET BRT, CONCOURSE, TRIPTIK LD, TRIPTIK CLN, JAZZ 120, BOGFISH, WRECKER 2, SKYLINE DEEP, USA SUB BLUES, WRECKER LVRPOOL, CITRUS A30 CLN, CITRUS A30 DRT, CAR ROAMER, USA BASS, CITRUS BASS, STUDIO, BRIT 800, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD1 RED, RECTO ORG BRT, RECTO RED BRT, VIBROVERB AA, PVH 6160 II LD, RUMBLE HRM, MR Z HWY 66, SUPER 6G4, 65 BASSMAN BASS, FREIDMAN, BAND-COMMANDER, USA PRE CLEAN, TUCANA CLEAN, FRIEDMAN SM BOX, TX STAR, USA IIC+, THORDENDAL, SOLO 99, BLUDOJAI, HERBIE, PVH 6160 II RHY, SOLO 88 CLEAN, JS410, JS410 MIDSHIFT, RUBY ROCKET, USA IIC++, LEGATO 100, HOOK EDGE, HOOK NO EDGE, HOOK CLEAN 1, HOOK CLEAN 2, SOLO 88<br />
|-<br />
|AX8<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|PRE-PI, POST-PI, PRE-TRIODE<br />
|-<br />
|AX8<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|OFF, AUTH, IDEAL<br />
|-<br />
|AX8<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|IDEAL TETRODE, IDEAL PENTODE, EL34/6CA7, EL84/6BQ5, 6L6/5881, 6V6, KT66, KT88, 6550, 6973, 6AQ5, 300B<br />
|-<br />
|AX8<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|12AX7A SYL, ECC83, 7025, 12AX7A JJ, ECC803S, EF86, 12AX7A RCA, 12AX7A, 12AX7B<br />
|-<br />
|AX8<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|AC, DC<br />
|-<br />
|AX8<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|8 BAND VAR Q, 7 BAND VAR Q, 5 BAND (MARK), 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
|AX8<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|SHELVING, PEAKING, DYNAMIC<br />
|-<br />
|AX8<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|OUTPUT, FEEDBACK<br />
|-<br />
|AX8<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|POST P.A., PRE P.A.<br />
|-<br />
|AX8<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|AUTHENTIC, IDEAL<br />
|-<br />
|AX8<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
|AX8<br />
|CAB<br />
|1<br />
|PROX. EFFECT<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
|AX8<br />
|CAB<br />
|3<br />
|PROX. EFFECT R<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|AX8<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|HI-/ULTRA-RES, NORMAL RES, STEREO, STEREO ULTRARES<br />
|-<br />
|AX8<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|26<br />
|DELAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT, RIGHT, SUM L+R<br />
|-<br />
|AX8<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|SMALL ROOM, MEDIUM ROOM, LARGE ROOM, SMALL HALL, MEDIUM HALL, LARGE HALL, SMALL CHAMBER, MEDIUM CHAMBER, LARGE CHAMBER, SMALL PLATE, MEDIUM PLATE, LARGE PLATE, SMALL CATHEDRAL, MED. CATHEDRAL, LARGE CATHEDRAL, SMALL SPRING, MEDIUM SPRING, LARGE SPRING, CAVERN, STONE QUARRY, STUDIO, AMBIENCE, CONCERT HALL, LARGE DEEP HALL, REC STUDIO C, NORTH CHURCH, SOUTH CHURCH, LONDON PLATE, SUN PLATE, HUGE ROOM, DRUM ROOM, HALLWAY, TUNNEL, DEEP CHAMBER, LG WOODEN ROOM, GYMNASIUM, ASYLUM HALL, DEEP SPACE, REC STUDIO A, LG TILED ROOM, VOCAL PLATE, WIDE HALL, RICH HALL<br />
|-<br />
|AX8<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|AX8<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|NORMAL, HIGH<br />
|-<br />
|AX8<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, MONO TAPE, STEREO TAPE, PING-PONG, DUAL DELAY, REVERSE DELAY, SWEEP DELAY, DUCKING DELAY, VINTAGE DIGITAL, 2290 W/ MOD, AMBIENT STEREO, DELUXE MIND GUY, MONO BBD, STEREO BBD, LO-FI TAPE<br />
|-<br />
|AX8<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|MONO, STEREO, PING-PONG, DUAL, REVERSE, SWEEP, TAPE<br />
|-<br />
|AX8<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|AX8<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|AX8<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT, 24 dB/OCT, 36 dB/OCT, 48 dB/OCT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|AX8<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
|AX8<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
|AX8<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|AX8<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|LOW, HIGH<br />
|-<br />
|AX8<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|AX8<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|QUAD-TAP, PLEX DELAY, PLEX DETUNE, PLEX SHIFT, BAND DELAY, QUAD-SERIES, TEN-TAP DLY, RHYTHM TAP, DIFFUSOR, QUAD TAPE DLY<br />
|-<br />
|AX8<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|FORWARD, REVERSE<br />
|-<br />
|AX8<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
|AX8<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
|AX8<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|AX8<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|AX8<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, JAPAN CE-2, WARM STEREO, 80'S STYLE, TRIANGLE CHORUS, 8-VOICE STEREO, VINTAGE TAPE, DIMENSION 1, DIMENSION 2, 4-VOICE ANALOG<br />
|-<br />
|AX8<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|AX8<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, HIGH<br />
|-<br />
|AX8<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|AX8<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|AX8<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, THRU-ZERO, STEREO JET, ZERO FLANGER, POP FLANGER<br />
|-<br />
|AX8<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|AX8<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
|AX8<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|AX8<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|AX8<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|AX8<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, SCRIPT 45, SCRIPT 90, BLOCK 90, CLASSIC VIBE, STEREO 8-STAGE, BARBERPOLE<br />
|-<br />
|AX8<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|2, 4, 6, 8, 10, 12<br />
|-<br />
|AX8<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|AX8<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|AX8<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|NORMAL, VIBE, BARBERPOLE<br />
|-<br />
|AX8<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|UP, DOWN<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|OFF, 0 DEG, 90 DEG, 180 DEG, 270 DEG<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|FAS STANDARD, CLYDE, CRY BABE, VX846, COLOR-TONE, FUNK, MORTAL, VX845<br />
|-<br />
|AX8<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|AX8<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
|AX8<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|AX8<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|AX8<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
|AX8<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|AX8<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
|AX8<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|AX8<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT ONLY, RIGHT ONLY<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|TREMOLO, PANNER<br />
|-<br />
|AX8<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|AX8<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|AX8<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DETUNE, FIXED HARM, INTEL HARM, CL. WHAMMY, OCTAVE DIV, CRYSTALS, AD. WHAMMY, ARPEGGIATOR, CUST. SHIFT<br />
|-<br />
|AX8<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|UP 1 OCT, DOWN 1 OCT, UP 2 OCT, DOWN 2 OCT, UP|DN 1 OCT, UP|DN 2 OCT<br />
|-<br />
|AX8<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|A , Bb, B , C , Db, D , Eb, E , F , Gb, G , Ab<br />
|-<br />
|AX8<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|IONIAN MAJ, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, AEOLIAN MIN, LOCRIAN, MEL. MINOR, HARM. MINOR, DIMINISHED, WHOLE TONE, DOM. SEVEN, DIM. WHOLE, PENTA. MAJ, PENTA. MIN, BLUES, CHROMATIC, CUSTOM<br />
|-<br />
|AX8<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|SMOOTH, STEPPED<br />
|-<br />
|AX8<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|OFF, POLY, MONO<br />
|-<br />
|AX8<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
|AX8<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|DUAL, BOTH, PING-PONG<br />
|-<br />
|AX8<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8<br />
|-<br />
|AX8<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, Infinite<br />
|-<br />
|AX8<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|AX8<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
|AX8<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|GLOBAL, LOCAL<br />
|-<br />
|AX8<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|MONO, STEREO<br />
|-<br />
|AX8<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|NULL, LOWPASS, BANDPASS, HIGHPASS, LOWSHELF, HIGHSHLF, PEAKING, NOTCH, TILT EQ, LOWSHELF2, HIGHSHLF2, PEAKING2<br />
|-<br />
|AX8<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|AX8<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|2nd, 4th<br />
|-<br />
|AX8<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|AX8<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|RAT DIST, PI FUZZ, TUBE DRV 3-KNOB, SUPER OD, TREBLE BOOST, MID BOOST, T808 OD, FAT RAT, T808 MOD, OCTAVE DIST, PLUS DIST, HARD FUZZ, FET BOOST, TAPE DIST, FULL OD, BLUES OD, SHRED DIST, M-ZONE DIST, BENDER FUZZ, BB PRE, MASTER FUZZ, FACE FUZZ, BIT CRUSHER, ETERNAL LOVE, ESOTERIC ACB, ESOTERIC RCB, ZEN MASTER, TUBE DRV 4-KNOB, FAS LED-DRIVE, SDD PREAMP, FET PREAMP, RUCKUS, MICRO BOOST, FAS BOOST, TIMOTHY, SHIMMER DRIVE<br />
|-<br />
|AX8<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
|AX8<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|LV TUBE, HARD, SOFT, GERMANIUM, FW RECT, HV TUBE, SILICON, 4558/DIODE, LED, FET, OP-AMP, VARIABLE, NULL<br />
|-<br />
|AX8<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|L+R, LEFT, RIGHT<br />
|-<br />
|AX8<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|MODERN, CLASSIC<br />
|-<br />
|AX8<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
|AX8<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|INPUT<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|INPUT<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|CLASSIC, INTELLIGENT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
|AX8<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|55<br />
|17<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|56<br />
|18<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|57<br />
|19<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|58<br />
|20<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|59<br />
|21<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|60<br />
|22<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|61<br />
|23<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|62<br />
|24<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|63<br />
|25<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|64<br />
|26<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|65<br />
|27<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|66<br />
|28<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|67<br />
|29<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|68<br />
|30<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|69<br />
|31<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|70<br />
|32<br />
|slider<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|74<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|75<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|76<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|77<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|78<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|79<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|80<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|81<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|82<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|83<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|84<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|85<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|86<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|87<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|88<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|89<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|90<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|91<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|92<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|93<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|94<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|95<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|96<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|97<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|98<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|99<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|100<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|101<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|102<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|103<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|104<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|105<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|106<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|CONTROLLERS<br />
|107<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|AX8<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|AX8<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|AX8<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|AX8<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|AX8<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
|AX8<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
|AX8<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2<br />
|-<br />
|AX8<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|AX8<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
|AX8<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
|AX8<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|MONO, STEREO, MONO UNDO, STEREO UNDO<br />
|-<br />
|AX8<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|OFF, QUARTER, EIGTH, SIXTEENTH<br />
|-<br />
|AX8<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
|AX8<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
|AX8<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|}<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43334
MIDI SysEx
2017-05-21T20:01:26Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|140<br />
|Output<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
<br />
=MIDI SysEx: Axe Fx II/XL/XL+ Parameter IDs=<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|HARD, SOFT, SOFTER, SOFTEST<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|RMS, PEAK, RMS+PEAK, FAST RMS<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2, BLOCK L, BLOCK R<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|STUDIO COMP, PEDAL COMP 1, PEDAL COMP 2, DYNAMICS, OPTICAL 1, OPTICAL 2<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|INSTRUMENT, LINE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|10 BAND CONST Q, 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 10 BAND VAR Q, 8 BAND VAR Q, 7 BAND VAR Q, 5 BAND VAR Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|59 BASSGUY, 65 BASSGUY NRML, VIBRATO VERB, DELUXE VERB VIB, DOUBLE VERB VIB, JR BLUES, CLASS-A 15W TB, CLASS-A 30W, CLASS-A 30W TB, BRIT JM45, PLEXI 50W NRML, PLEXI 50W HI 1, 1987X NORMAL, 1987X TREBLE, BRIT 800, BRIT SUPER, HIPOWER NORMAL, HIPOWER BRILLNT, USA CLEAN, USA PRE CLEAN, USA RHYTHM, USA IIC+, USA IIC+ BRIGHT, USA LEAD, USA LEAD BRT, RECTO2 ORG VNTG, RECTO2 ORG MDRN, RECTO2 RED VNTG, RECTO2 RED MDRN, EURO BLUE, EURO RED, SHIVER CLEAN, SHIVER LEAD, EURO UBER, SOLO 99 CLEAN, SOLO 100 RHY, SOLO 100 LEAD, FRIEDMAN BE V1, FRIEDMAN HBE V1, PVH 6160 BLOCK, MR Z MZ-38, CA3+ RHY, CA3+ LEAD, WRECKER ROCKET, CORNCOB M50, CA OD-2, FRYETTE D60 L, FRYETTE D60 M, BRIT BROWN, CITRUS RV50, JAZZ 120, ENERGYBALL, ODS-100 CLEAN, ODS-100 HRM, FAS RHYTHM, FAS LEAD 1, FAS LEAD 2, FAS MODERN, DAS METALL, BRIT PRE, BUTTERY, BOUTIQUE 1, BOUTIQUE 2, CAMERON CCV 1A, CAMERON CCV 2A, SV BASS, TUBE PRE, FAS BROWN, BIG HAIR, SOLO 99 LEAD, SUPERTWEED, TX STAR LEAD, FAS WRECK, BRIT JVM OD1 OR, BRIT JVM OD2 OR, FAS 6160, CALI LEGGY, USA LEAD +, USA LEAD BRT +, PRINCE TONE, BLANKNSHP LEEDS, 5153 100W GREEN, 5153 100W BLUE, 5153 100W RED, SOLO 88 RHYTHM, DIV/13 CJ, HERBIE CH2-, HERBIE CH2+, HERBIE CH3, DIRTY SHIRLEY 1, DIZZY V4 BLUE 2, DIZZY V4 BLUE 3, DIZZY V4 BLUE 4, SUHR BADGER 18, SUHR BADGER 30, PRINCE TONE NR, SUPREMO TREM, ATOMICA LOW, ATOMICA HIGH, DELUXE TWEED, SPAWN ROD OD2-1, SPAWN ROD OD2-2, SPAWN ROD OD2-3, BRIT SILVER, SPAWN NITROUS 2, FAS CRUNCH, TWO STONE J35 1, FOX ODS, HOT KITTY, BAND-COMMANDER, SUPER VERB VIB, VIBRA-KING, GIBTONE SCOUT, PVH 6160+ LD, SOLO 100 CLEAN, USA PRE LD2 GRN, USA PRE LD2 YLW, CA3+ CLEAN, FOX ODS DEEP, BRIT JVM OD1 GN, BRIT JVM OD2 GN, VIBRATO LUX, BRIT 800 MOD, NUCLEAR-TONE, BLUDOJAI CLEAN, BLUDOJAI LD PAB, PLEXI 100W HIGH, PLEXI 100W NRML, RUBY ROCKET, AC-20 EF86 B, PRINCE TONE REV, COMET CONCOURSE, FAS MODERN II, CA TRIPTIK MDRN, CA TRIPTIK CLSC, CA TRIPTIK CLN, THORDENDAL VINT, THORDENDAL MDRN, ODS-100 HRM MID, EURO BLUE MDRN, EURO RED MDRN, PLEXI 50W JUMP, AC-20 EF86 T, COMET 60, HIPOWER JUMPED, PLEXI 100W JUMP, BRIT JM45 JUMP, 1987X JUMP, RECTO1 ORG VNTG, RECTO1 RED, ODS-100 FORD 1, BOGFISH STRATO, BOGFISH BROWN, 5F1 TWEED, WRECKER EXPRESS, TWO STONE J35 2, ODS-100 FORD 2, MR Z MZ-8, CAR ROAMER, USA SUB BLUES, WRECKER LVRPOOL, CITRUS TERRIER, CITRUS A30 CLN, CITRUS A30 DRTY, DIV/13 FT37 LO, DIV/13 FT37 HI, MATCHBOX D-30, FAS CLASS-A, USA BASS 400 1, USA BASS 400 2, CITRUS BASS 200, FAS BASS, TREMOLO LUX, FAS BROOTALZ, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD2 RED, USA PRE LD1 RED, TX STAR CLEAN, AC-20 12AX7 T, VIBRATO VERB AA, VIBRATO VERB AB, CA TUCANA LEAD, JR BLUES FAT, SOLO 88 LEAD, BRIT AFS100 1, BRIT AFS100 2, CLASS-A 30W HOT, DIZZY V4 SLVR 2, DIZZY V4 SLVR 3, DIZZY V4 SLVR 4, 1959SLP NORMAL, 1959SLP TREBLE, 1959SLP JUMP, FAS MODERN III, ODS-100 FORD MD, MR Z HWY 66, 6G4 SUPER, 6G12 CONCERT, 65 BASSGUY BASS, VIBRA-KING FAT, SPAWN ROD OD1-1, SPAWN ROD OD1-2, SPAWN ROD OD1-3, CA TUCANA CLN, BRIT JVM OD1 RD, BRIT JVM OD2 RD, CAMERON CCV 1B, CAMERON CCV 2B, CAMERON CCV 2C, CAMERON CCV 2D, FRIEDMAN SM BOX, 5153 50W BLUE, DIV/13 CJ BOOST, USA IIC+ DEEP, USA IIC+ BRT/DP, 5F8 TWEED, DOUBLE VERB SF, VIBRATO VERB CS, JMPRE-1 OD1, JMPRE-1 OD2, JMPRE-1 OD1 BS, JMPRE-1 OD2 BS, DELUXE VERB NRM, DOUBLE VERB NRM, SUPER VERB NRM, BLUDOJAI LD 2, PLEXI 50W 6550, FAS HOT ROD, PVH 6160+ RHY B, PVH 6160+ RHY, SOLO 88 CLEAN, CLASS-A 30W BRT, PLEXI 50W HI 2, SPAWN NITROUS 1, RUBY ROCKET BRT, AC-20 12AX7 B, PLEXI 100W 1970, JS410 LEAD OR, JS410 LEAD RD, JS410 CRUNCH OR, JS410 CRUNCH RD, FRIEDMAN BE V2, FRIEDMAN HBE V2, DWEEZIL'S B-MAN, FRIEDMAN BE, FRIEDMAN HBE, USA IIC++, LEGATO 100, CAPT HOOK 2B, CAPT HOOK 3B, CAPT HOOK 2A, CAPT HOOK 3A, CAPT HOOK 1A, CAPT HOOK 1B, DIRTY SHIRLEY 2, BRIT 800 #34, 5F1 TWEED EC<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|PRE, POST, MID, END<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|ACTIVE, DEFAULT, BROWNFACE, BLACKFACE, BASSGUY, TOP BOOST, PLEXI, BOUTIQUE, HI POWER, USA NORMAL, USA FAT, RECTO1 ORG, RECTO1 RED, SKYLINE, GERMAN, JR BLUES, WRECKER 1, NEUTRAL, CA3+SE, FREYER D60, MR Z 38 SR, EURO UBER, PVH 6160, SOLO 100, CORNCOB, XTC, CAROLANN, CITRUS, BRIT JM45, USA RHY, RECTO2 ORG, RECTO2 RED, SHIVER CLN, CAMERON, BRIT JVM 0D1, BRIT JVM 0D2, 5153 GREEN, 5153 BLUE, 5153 RED, BRIT SUPER, DIV13 CJ, BADGER 18, ATOMICA, SPAWN, BADGER 30, BRIT SILVER, SUPER VERB, HOT KITTY, VIBRATO-KING, GIBTONE SCOUT, CA3+SE CLEAN, BF FIXED MID, GERMAN V4, VIBRATO-LUX, DIRTY SHIRLEY, PLEXI 100W, RUBY ROCKET BRT, CONCOURSE, TRIPTIK LD, TRIPTIK CLN, JAZZ 120, BOGFISH, WRECKER 2, SKYLINE DEEP, USA SUB BLUES, WRECKER LVRPOOL, CITRUS A30 CLN, CITRUS A30 DRT, CAR ROAMER, USA BASS, CITRUS BASS, STUDIO, BRIT 800, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD1 RED, RECTO ORG BRT, RECTO RED BRT, VIBROVERB AA, PVH 6160 II LD, RUMBLE HRM, MR Z HWY 66, SUPER 6G4, 65 BASSMAN BASS, FREIDMAN, BAND-COMMANDER, USA PRE CLEAN, TUCANA CLEAN, FRIEDMAN SM BOX, TX STAR, USA IIC+, THORDENDAL, SOLO 99, BLUDOJAI, HERBIE, PVH 6160 II RHY, SOLO 88 CLEAN, JS410, JS410 MIDSHIFT, RUBY ROCKET, USA IIC++, LEGATO 100, HOOK EDGE, HOOK NO EDGE, HOOK CLEAN 1, HOOK CLEAN 2, SOLO 88<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|PRE-PI, POST-PI, PRE-TRIODE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|OFF, AUTH, IDEAL<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|IDEAL TETRODE, IDEAL PENTODE, EL34/6CA7, EL84/6BQ5, 6L6/5881, 6V6, KT66, KT88, 6550, 6973, 6AQ5, 300B<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|12AX7A SYL, ECC83, 7025, 12AX7A JJ, ECC803S, EF86, 12AX7A RCA, 12AX7A, 12AX7B<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|AC, DC<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|8 BAND VAR Q, 7 BAND VAR Q, 5 BAND (MARK), 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|SHELVING, PEAKING, DYNAMIC<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|OUTPUT, FEEDBACK<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|POST P.A., PRE P.A.<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|AUTHENTIC, IDEAL<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|1<br />
|MIC<br />
|select<br />
|NONE, 57 DYN, 58 DYN, 421 DYN, 87A COND, U87 COND, E609 DYN, RE16 DYN, R121 RIB, D112 DYN, 67 COND, NULL, INVERT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|3<br />
|MIC R<br />
|select<br />
|NONE, 57 DYN, 58 DYN, 421 DYN, 87A COND, U87 COND, E609 DYN, RE16 DYN, R121 RIB, D112 DYN, 67 COND, NULL, INVERT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|HI-/ULTRA-RES, NORMAL RES, STEREO, STEREO ULTRARES<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|14<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|15<br />
|SATURATION<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|16<br />
|ROOM LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|17<br />
|ROOM SIZE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|18<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|21<br />
|SPEAKER SIZE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|23<br />
|AIR<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|24<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|25<br />
|AIR FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|26<br />
|DELAY L<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT, RIGHT, SUM L+R<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|31<br />
|PREAMP TYPE<br />
|select<br />
|NONE, TUBE, BIPOLAR, FET I, FET II, TRANSFORMER, TAPE 70us, TAPE 50us, TAPE 35us, VINTAGE, MODERN, EXCITER<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|32<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|33<br />
|MID<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|34<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|35<br />
|PREAMP MODE<br />
|select<br />
|ECONOMY, HIGH QUALITY<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|36<br />
|DEPHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CAB<br />
|38<br />
|MOTOR TIME CONSTANT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|SMALL ROOM, MEDIUM ROOM, LARGE ROOM, SMALL HALL, MEDIUM HALL, LARGE HALL, SMALL CHAMBER, MEDIUM CHAMBER, LARGE CHAMBER, SMALL PLATE, MEDIUM PLATE, LARGE PLATE, SMALL CATHEDRAL, MED. CATHEDRAL, LARGE CATHEDRAL, SMALL SPRING, MEDIUM SPRING, LARGE SPRING, CAVERN, STONE QUARRY, STUDIO, AMBIENCE, CONCERT HALL, LARGE DEEP HALL, REC STUDIO C, NORTH CHURCH, SOUTH CHURCH, LONDON PLATE, SUN PLATE, HUGE ROOM, DRUM ROOM, HALLWAY, TUNNEL, DEEP CHAMBER, LG WOODEN ROOM, GYMNASIUM, ASYLUM HALL, DEEP SPACE, REC STUDIO A, LG TILED ROOM, VOCAL PLATE, WIDE HALL, RICH HALL<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|NORMAL, HIGH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, MONO TAPE, STEREO TAPE, PING-PONG, DUAL DELAY, REVERSE DELAY, SWEEP DELAY, DUCKING DELAY, VINTAGE DIGITAL, 2290 W/ MOD, AMBIENT STEREO, DELUXE MIND GUY, MONO BBD, STEREO BBD, LO-FI TAPE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|MONO, STEREO, PING-PONG, DUAL, REVERSE, SWEEP, TAPE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT, 24 dB/OCT, 36 dB/OCT, 48 dB/OCT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|LOW, HIGH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|QUAD-TAP, PLEX DELAY, PLEX DETUNE, PLEX SHIFT, BAND DELAY, QUAD-SERIES, TEN-TAP DLY, RHYTHM TAP, DIFFUSOR, QUAD TAPE DLY<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|FORWARD, REVERSE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|MONO, STEREO<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, JAPAN CE-2, WARM STEREO, 80'S STYLE, TRIANGLE CHORUS, 8-VOICE STEREO, VINTAGE TAPE, DIMENSION 1, DIMENSION 2, 4-VOICE ANALOG<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, HIGH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, THRU-ZERO, STEREO JET, ZERO FLANGER, POP FLANGER<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, SCRIPT 45, SCRIPT 90, BLOCK 90, CLASSIC VIBE, STEREO 8-STAGE, BARBERPOLE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|2, 4, 6, 8, 10, 12<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|NORMAL, VIBE, BARBERPOLE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|UP, DOWN<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|OFF, 0 DEG, 90 DEG, 180 DEG, 270 DEG<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|FAS STANDARD, CLYDE, CRY BABE, VX846, COLOR-TONE, FUNK, MORTAL, VX845<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT ONLY, RIGHT ONLY<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|TREMOLO, PANNER<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DETUNE, FIXED HARM, INTEL HARM, CL. WHAMMY, OCTAVE DIV, CRYSTALS, AD. WHAMMY, ARPEGGIATOR, CUST. SHIFT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|UP 1 OCT, DOWN 1 OCT, UP 2 OCT, DOWN 2 OCT, UP|DN 1 OCT, UP|DN 2 OCT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|A , Bb, B , C , Db, D , Eb, E , F , Gb, G , Ab<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|IONIAN MAJ, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, AEOLIAN MIN, LOCRIAN, MEL. MINOR, HARM. MINOR, DIMINISHED, WHOLE TONE, DOM. SEVEN, DIM. WHOLE, PENTA. MAJ, PENTA. MIN, BLUES, CHROMATIC, CUSTOM<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|SMOOTH, STEPPED<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|OFF, POLY, MONO<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|DUAL, BOTH, PING-PONG<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, Infinite<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|GLOBAL, LOCAL<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|MONO, STEREO<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|NULL, LOWPASS, BANDPASS, HIGHPASS, LOWSHELF, HIGHSHLF, PEAKING, NOTCH, TILT EQ, LOWSHELF2, HIGHSHLF2, PEAKING2<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|2nd, 4th<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|RAT DIST, PI FUZZ, TUBE DRV 3-KNOB, SUPER OD, TREBLE BOOST, MID BOOST, T808 OD, FAT RAT, T808 MOD, OCTAVE DIST, PLUS DIST, HARD FUZZ, FET BOOST, TAPE DIST, FULL OD, BLUES OD, SHRED DIST, M-ZONE DIST, BENDER FUZZ, BB PRE, MASTER FUZZ, FACE FUZZ, BIT CRUSHER, ETERNAL LOVE, ESOTERIC ACB, ESOTERIC RCB, ZEN MASTER, TUBE DRV 4-KNOB, FAS LED-DRIVE, SDD PREAMP, FET PREAMP, RUCKUS, MICRO BOOST, FAS BOOST, TIMOTHY, SHIMMER DRIVE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|LV TUBE, HARD, SOFT, GERMANIUM, FW RECT, HV TUBE, SILICON, 4558/DIODE, LED, FET, OP-AMP, VARIABLE, NULL<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|L+R, LEFT, RIGHT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|MODERN, CLASSIC<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|INPUT<br />
|4<br />
|INPUT Z<br />
|select<br />
|AUTO: , 1M, 1M+CAP, 230K, 230K+CAP, 90K, 90K+CAP, 70K, 70K+CAP, 32K, 32K+CAP, 22K, 22K+CAP<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|INPUT<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|INPUT<br />
|7<br />
|EFFECT TYPE<br />
|select<br />
|CLASSIC, INTELLIGENT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|55<br />
|A<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|56<br />
|B<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|57<br />
|C<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|58<br />
|D<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|59<br />
|17<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|60<br />
|18<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|61<br />
|19<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|62<br />
|20<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|63<br />
|21<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|64<br />
|22<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|65<br />
|23<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|66<br />
|24<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|67<br />
|25<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|68<br />
|26<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|69<br />
|27<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|70<br />
|28<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|71<br />
|29<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|72<br />
|30<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|73<br />
|31<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|74<br />
|32<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|77<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|78<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|79<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|80<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|81<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|82<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|83<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|84<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|85<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|86<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|87<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|88<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|89<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|90<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|91<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|92<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|93<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|94<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|CONTROLLERS<br />
|95<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|MONO, STEREO, MONO UNDO, STEREO UNDO<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|OFF, QUARTER, EIGTH, SIXTEENTH<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SND<br />
|0<br />
|SEND LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|SND<br />
|1<br />
|OUT LEVEL<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RTN<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RTN<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RTN<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RTN<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RTN<br />
|4<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|0<br />
|Gain 1<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|1<br />
|Gain 2<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|2<br />
|Gain 3<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|3<br />
|Gain 4<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|4<br />
|Balance 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|5<br />
|Balance 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|6<br />
|Balance 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|7<br />
|Balance 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|8<br />
|MASTER<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MIX<br />
|9<br />
|OUT MODE<br />
|select<br />
|STEREO, MONO<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|2<br />
|Threshold 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|3<br />
|Ratio 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|4<br />
|Attack 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|5<br />
|Release 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|6<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|7<br />
|Detect 1<br />
|select<br />
|RMS, PEAK, FAST RMS<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|8<br />
|Mute 1<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|9<br />
|Threshold 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|10<br />
|Ratio 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|11<br />
|Attack 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|12<br />
|Release 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|13<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|14<br />
|Detect 2<br />
|select<br />
|RMS, PEAK, FAST RMS<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|15<br />
|Mute 2<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|16<br />
|Threshold 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|17<br />
|Ratio 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|18<br />
|Attack 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|19<br />
|Release 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|20<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|21<br />
|Detect 3<br />
|select<br />
|RMS, PEAK, FAST RMS<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|22<br />
|Mute 3<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|24<br />
|Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|25<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MBC<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|0<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|1<br />
|Freq Multi.<br />
|select<br />
|X 1, X 10<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|2<br />
|Lo Level L<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|3<br />
|Hi Level L<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|4<br />
|Lo Level R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|5<br />
|Hi Level R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|6<br />
|Lo Pan L<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|7<br />
|Hi Pan L<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|8<br />
|Lo Pan R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|9<br />
|Hi Pan R<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|11<br />
|Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|12<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|XVR<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|0<br />
|In Gain<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|2<br />
|Time<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|3<br />
|Number of Taps<br />
|rangeKnob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|4<br />
|Time Shape<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|5<br />
|Time Alpha<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|6<br />
|Amplitude Shape<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|7<br />
|Alplitude Alpha<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|8<br />
|Pan Shape<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|9<br />
|Pan Alpha<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|10<br />
|Time Randomize<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|11<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|12<br />
|Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|13<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|14<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|MGT<br />
|15<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|0<br />
|Master Time<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|1<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|2<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|3<br />
|Master Rate<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|4<br />
|Master Depth<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|5<br />
|Feedback<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|6<br />
|Time 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|7<br />
|Time 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|8<br />
|Time 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|9<br />
|Time 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|10<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|11<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|12<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|13<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|14<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|15<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|16<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|17<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|18<br />
|Depth 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|19<br />
|Depth 2<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|20<br />
|Depth 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|21<br />
|Depth 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|22<br />
|Morph 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|23<br />
|Morph 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|24<br />
|Morph 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|25<br />
|Morph 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|26<br />
|LFO1 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|27<br />
|LFO2 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|28<br />
|LFO3 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|29<br />
|LFO4 Type<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|30<br />
|LFO1 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|31<br />
|LFO2 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|32<br />
|LFO3 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|33<br />
|LFO4 Rate Multiplier<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|34<br />
|M. Depth (LFO4>All)<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|35<br />
|Input Mode<br />
|select<br />
|MONO, STEREO<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|36<br />
|LFO1 Master<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|37<br />
|Wide Mode<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|38<br />
|M. Phase (LFO4)<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|39<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|40<br />
|Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|41<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|42<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|43<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|QCH<br />
|45<br />
|Hi Cut Frequency<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|0<br />
|Mode<br />
|select<br />
|OFFLINE, LIVE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|1<br />
|Amount<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|2<br />
|Smoothing<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|3<br />
|Reference<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|4<br />
|Local<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|6<br />
|Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|7<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|8<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|10<br />
|Ref Source<br />
|select<br />
|ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2, BLK IN, USB<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|11<br />
|Avg. Time<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|12<br />
|Ref Channel<br />
|select<br />
|SUM L+R, LEFT, RIGHT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|13<br />
|Local Channel<br />
|select<br />
|SUM L+R, LEFT, RIGHT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|14<br />
|Ref Solo<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|TMA<br />
|15<br />
|Resolution<br />
|select<br />
|LOW, HIGH<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|0<br />
|Input Select<br />
|select<br />
|LEFT, RIGHT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|1<br />
|Bands<br />
|select<br />
|4, 8, 12, 16<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|2<br />
|Frequency Min<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|3<br />
|Frequency Max<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|4<br />
|Shift<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|5<br />
|Freeze<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|6<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|7<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|8<br />
|Resonance<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|9<br />
|Attack<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|10<br />
|Release<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|11<br />
|Highpass Mix In<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|12<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|13<br />
|Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|14<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|15<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|16<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|17<br />
|Level 1<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|18<br />
|Level 2<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|19<br />
|Level 3<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|20<br />
|Level 4<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|21<br />
|Level 5<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|22<br />
|Level 6<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|23<br />
|Level 7<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|24<br />
|Level 8<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|25<br />
|Level 9<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|26<br />
|Level 10<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|27<br />
|Level 11<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|28<br />
|Level 12<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|29<br />
|Level 13<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|30<br />
|Level 14<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|31<br />
|Level 15<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|32<br />
|Level 16<br />
|slider<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|33<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|34<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|35<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|36<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|37<br />
|Pan 5<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|38<br />
|Pan 6<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|39<br />
|Pan 7<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|40<br />
|Pan 8<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|41<br />
|Pan 9<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|42<br />
|Pan 10<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|43<br />
|Pan 11<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|44<br />
|Pan 12<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|45<br />
|Pan 13<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|46<br />
|Pan 14<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|47<br />
|Pan 15<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|VOC<br />
|48<br />
|Pan 16<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|MANUAL, CHORDAL<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|1<br />
|Chord Type<br />
|select<br />
|MAJOR, MAJOR 6, DOM. 7, MAJOR 7, MINOR, MINOR 6, MINOR 7, DIMIN., AUGMEN.<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|2<br />
|Input Gain<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|3<br />
|Freq<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|4<br />
|Master Freq<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|5<br />
|Master Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|6<br />
|Master Pan<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|7<br />
|Master Feedback<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|8<br />
|Master Q<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|9<br />
|Freq 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|10<br />
|Freq 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|11<br />
|Freq 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|12<br />
|Freq 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|13<br />
|FB 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|14<br />
|FB 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|15<br />
|FB 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|16<br />
|FB 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|17<br />
|Filter Loc 1<br />
|select<br />
|PRE, POST<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|18<br />
|Filter Loc 2<br />
|select<br />
|PRE, POST<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|19<br />
|Filter Loc 3<br />
|select<br />
|PRE, POST<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|20<br />
|Filter Loc 4<br />
|select<br />
|PRE, POST<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|21<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|22<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|23<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|24<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|25<br />
|Level 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|26<br />
|Level 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|27<br />
|Level 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|28<br />
|Level 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|29<br />
|Pan 1<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|30<br />
|Pan 2<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|31<br />
|Pan 3<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|32<br />
|Pan 4<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|33<br />
|Mix<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|34<br />
|Level<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|35<br />
|Balance<br />
|knob<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|36<br />
|Bypass Mode<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|37<br />
|Global Mix<br />
|switch<br />
| <br />
|-<br />
Axe-Fx II/XL/XL+<br />
|RES<br />
|39<br />
|Input Mode<br />
|select<br />
|MONO, STEREO<br />
|}<br />
<br />
<br />
=MIDI SysEx: AX8 Parameter IDs=<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CPR<br />
|0<br />
|TRESHOLD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|2<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|5<br />
|KNEE<br />
|select<br />
|HARD, SOFT, SOFTER, SOFTEST<br />
|-<br />
AX8<br />
|CPR<br />
|6<br />
|MAKEUP<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|7<br />
|DETECT<br />
|select<br />
|RMS, PEAK, RMS+PEAK, FAST RMS<br />
|-<br />
AX8<br />
|CPR<br />
|8<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|10<br />
|SIDECHAIN<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2, BLOCK L, BLOCK R<br />
|-<br />
AX8<br />
|CPR<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|STUDIO COMP, PEDAL COMP 1, PEDAL COMP 2, DYNAMICS, OPTICAL 1, OPTICAL 2<br />
|-<br />
AX8<br />
|CPR<br />
|13<br />
|COMP<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
AX8<br />
|CPR<br />
|15<br />
|LOOK AHEAD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|16<br />
|AUTO<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|17<br />
|EMPHASIS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|18<br />
|DYNAMICS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CPR<br />
|19<br />
|INPUT LEVEL<br />
|select<br />
|INSTRUMENT, LINE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|GEQ<br />
|0<br />
|31<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|1<br />
|63<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|2<br />
|125<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|3<br />
|250<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|4<br />
|500<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|5<br />
|1K<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|6<br />
|2K<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|7<br />
|4K<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|8<br />
|8K<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|9<br />
|16K<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GEQ<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
AX8<br />
|GEQ<br />
|15<br />
|EFFECT TYPE<br />
|select<br />
|10 BAND CONST Q, 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 10 BAND VAR Q, 8 BAND VAR Q, 7 BAND VAR Q, 5 BAND VAR Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
AX8<br />
|GEQ<br />
|16<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|PEQ<br />
|0<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|1<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|2<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|3<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|4<br />
|FREQ 5<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|5<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|6<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|7<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|8<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|9<br />
|Q 5<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|10<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|11<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|12<br />
|GAIN 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|13<br />
|GAIN 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|14<br />
|GAIN 5<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|15<br />
|FREQ TYPE 1<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
AX8<br />
|PEQ<br />
|16<br />
|FREQ TYPE 5<br />
|select<br />
|SHELVING, PEAKING, BLOCKING, SHELVING2<br />
|-<br />
AX8<br />
|PEQ<br />
|17<br />
|FREQ TYPE 2<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
AX8<br />
|PEQ<br />
|18<br />
|FREQ TYPE 4<br />
|select<br />
|PEAKING, SHELVING, SHELVING2<br />
|-<br />
AX8<br />
|PEQ<br />
|19<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|PEQ<br />
|20<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PEQ<br />
|21<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|AMP<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|59 BASSGUY, 65 BASSGUY NRML, VIBRATO VERB, DELUXE VERB VIB, DOUBLE VERB VIB, JR BLUES, CLASS-A 15W TB, CLASS-A 30W, CLASS-A 30W TB, BRIT JM45, PLEXI 50W NRML, PLEXI 50W HI 1, 1987X NORMAL, 1987X TREBLE, BRIT 800, BRIT SUPER, HIPOWER NORMAL, HIPOWER BRILLNT, USA CLEAN, USA PRE CLEAN, USA RHYTHM, USA IIC+, USA IIC+ BRIGHT, USA LEAD, USA LEAD BRT, RECTO2 ORG VNTG, RECTO2 ORG MDRN, RECTO2 RED VNTG, RECTO2 RED MDRN, EURO BLUE, EURO RED, SHIVER CLEAN, SHIVER LEAD, EURO UBER, SOLO 99 CLEAN, SOLO 100 RHY, SOLO 100 LEAD, FRIEDMAN BE V1, FRIEDMAN HBE V1, PVH 6160 BLOCK, MR Z MZ-38, CA3+ RHY, CA3+ LEAD, WRECKER ROCKET, CORNCOB M50, CA OD-2, FRYETTE D60 L, FRYETTE D60 M, BRIT BROWN, CITRUS RV50, JAZZ 120, ENERGYBALL, ODS-100 CLEAN, ODS-100 HRM, FAS RHYTHM, FAS LEAD 1, FAS LEAD 2, FAS MODERN, DAS METALL, BRIT PRE, BUTTERY, BOUTIQUE 1, BOUTIQUE 2, CAMERON CCV 1A, CAMERON CCV 2A, SV BASS, TUBE PRE, FAS BROWN, BIG HAIR, SOLO 99 LEAD, SUPERTWEED, TX STAR LEAD, FAS WRECK, BRIT JVM OD1 OR, BRIT JVM OD2 OR, FAS 6160, CALI LEGGY, USA LEAD +, USA LEAD BRT +, PRINCE TONE, BLANKNSHP LEEDS, 5153 100W GREEN, 5153 100W BLUE, 5153 100W RED, SOLO 88 RHYTHM, DIV/13 CJ, HERBIE CH2-, HERBIE CH2+, HERBIE CH3, DIRTY SHIRLEY 1, DIZZY V4 BLUE 2, DIZZY V4 BLUE 3, DIZZY V4 BLUE 4, SUHR BADGER 18, SUHR BADGER 30, PRINCE TONE NR, SUPREMO TREM, ATOMICA LOW, ATOMICA HIGH, DELUXE TWEED, SPAWN ROD OD2-1, SPAWN ROD OD2-2, SPAWN ROD OD2-3, BRIT SILVER, SPAWN NITROUS 2, FAS CRUNCH, TWO STONE J35 1, FOX ODS, HOT KITTY, BAND-COMMANDER, SUPER VERB VIB, VIBRA-KING, GIBTONE SCOUT, PVH 6160+ LD, SOLO 100 CLEAN, USA PRE LD2 GRN, USA PRE LD2 YLW, CA3+ CLEAN, FOX ODS DEEP, BRIT JVM OD1 GN, BRIT JVM OD2 GN, VIBRATO LUX, BRIT 800 MOD, NUCLEAR-TONE, BLUDOJAI CLEAN, BLUDOJAI LD PAB, PLEXI 100W HIGH, PLEXI 100W NRML, RUBY ROCKET, AC-20 EF86 B, PRINCE TONE REV, COMET CONCOURSE, FAS MODERN II, CA TRIPTIK MDRN, CA TRIPTIK CLSC, CA TRIPTIK CLN, THORDENDAL VINT, THORDENDAL MDRN, ODS-100 HRM MID, EURO BLUE MDRN, EURO RED MDRN, PLEXI 50W JUMP, AC-20 EF86 T, COMET 60, HIPOWER JUMPED, PLEXI 100W JUMP, BRIT JM45 JUMP, 1987X JUMP, RECTO1 ORG VNTG, RECTO1 RED, ODS-100 FORD 1, BOGFISH STRATO, BOGFISH BROWN, 5F1 TWEED, WRECKER EXPRESS, TWO STONE J35 2, ODS-100 FORD 2, MR Z MZ-8, CAR ROAMER, USA SUB BLUES, WRECKER LVRPOOL, CITRUS TERRIER, CITRUS A30 CLN, CITRUS A30 DRTY, DIV/13 FT37 LO, DIV/13 FT37 HI, MATCHBOX D-30, FAS CLASS-A, USA BASS 400 1, USA BASS 400 2, CITRUS BASS 200, FAS BASS, TREMOLO LUX, FAS BROOTALZ, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD2 RED, USA PRE LD1 RED, TX STAR CLEAN, AC-20 12AX7 T, VIBRATO VERB AA, VIBRATO VERB AB, CA TUCANA LEAD, JR BLUES FAT, SOLO 88 LEAD, BRIT AFS100 1, BRIT AFS100 2, CLASS-A 30W HOT, DIZZY V4 SLVR 2, DIZZY V4 SLVR 3, DIZZY V4 SLVR 4, 1959SLP NORMAL, 1959SLP TREBLE, 1959SLP JUMP, FAS MODERN III, ODS-100 FORD MD, MR Z HWY 66, 6G4 SUPER, 6G12 CONCERT, 65 BASSGUY BASS, VIBRA-KING FAT, SPAWN ROD OD1-1, SPAWN ROD OD1-2, SPAWN ROD OD1-3, CA TUCANA CLN, BRIT JVM OD1 RD, BRIT JVM OD2 RD, CAMERON CCV 1B, CAMERON CCV 2B, CAMERON CCV 2C, CAMERON CCV 2D, FRIEDMAN SM BOX, 5153 50W BLUE, DIV/13 CJ BOOST, USA IIC+ DEEP, USA IIC+ BRT/DP, 5F8 TWEED, DOUBLE VERB SF, VIBRATO VERB CS, JMPRE-1 OD1, JMPRE-1 OD2, JMPRE-1 OD1 BS, JMPRE-1 OD2 BS, DELUXE VERB NRM, DOUBLE VERB NRM, SUPER VERB NRM, BLUDOJAI LD 2, PLEXI 50W 6550, FAS HOT ROD, PVH 6160+ RHY B, PVH 6160+ RHY, SOLO 88 CLEAN, CLASS-A 30W BRT, PLEXI 50W HI 2, SPAWN NITROUS 1, RUBY ROCKET BRT, AC-20 12AX7 B, PLEXI 100W 1970, JS410 LEAD OR, JS410 LEAD RD, JS410 CRUNCH OR, JS410 CRUNCH RD, FRIEDMAN BE V2, FRIEDMAN HBE V2, DWEEZIL'S B-MAN, FRIEDMAN BE, FRIEDMAN HBE, USA IIC++, LEGATO 100, CAPT HOOK 2B, CAPT HOOK 3B, CAPT HOOK 2A, CAPT HOOK 3A, CAPT HOOK 1A, CAPT HOOK 1B, DIRTY SHIRLEY 2, BRIT 800 #34, 5F1 TWEED EC<br />
|-<br />
AX8<br />
|AMP<br />
|1<br />
|INPUT DRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|2<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|3<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|4<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|5<br />
|MASTER VOLUME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|6<br />
|PREAMP LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|7<br />
|HIGH CUT FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|8<br />
|TONE FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|9<br />
|XFORMER GRIND<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|10<br />
|BRIGHT CAP<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|12<br />
|XFORMER LOW FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|13<br />
|XFORMER HI FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|14<br />
|TONE LOCATION<br />
|select<br />
|PRE, POST, MID, END<br />
|-<br />
AX8<br />
|AMP<br />
|15<br />
|INPUT SELECT<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
AX8<br />
|AMP<br />
|16<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|19<br />
|SUPPLY SAG<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|20<br />
|PRESENCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|21<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|22<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|AMP<br />
|23<br />
|BYPASS MODE<br />
|select<br />
|LEFT, RIGHT, SUM L+R<br />
|-<br />
AX8<br />
|AMP<br />
|24<br />
|NEG FEEDBACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|25<br />
|PRESENCE FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|26<br />
|LOW RES FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|27<br />
|LOW RES<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|29<br />
|DEPTH FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|31<br />
|MV CAP<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|33<br />
|HARMONICS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|34<br />
|TONE STACK<br />
|select<br />
|ACTIVE, DEFAULT, BROWNFACE, BLACKFACE, BASSGUY, TOP BOOST, PLEXI, BOUTIQUE, HI POWER, USA NORMAL, USA FAT, RECTO1 ORG, RECTO1 RED, SKYLINE, GERMAN, JR BLUES, WRECKER 1, NEUTRAL, CA3+SE, FREYER D60, MR Z 38 SR, EURO UBER, PVH 6160, SOLO 100, CORNCOB, XTC, CAROLANN, CITRUS, BRIT JM45, USA RHY, RECTO2 ORG, RECTO2 RED, SHIVER CLN, CAMERON, BRIT JVM 0D1, BRIT JVM 0D2, 5153 GREEN, 5153 BLUE, 5153 RED, BRIT SUPER, DIV13 CJ, BADGER 18, ATOMICA, SPAWN, BADGER 30, BRIT SILVER, SUPER VERB, HOT KITTY, VIBRATO-KING, GIBTONE SCOUT, CA3+SE CLEAN, BF FIXED MID, GERMAN V4, VIBRATO-LUX, DIRTY SHIRLEY, PLEXI 100W, RUBY ROCKET BRT, CONCOURSE, TRIPTIK LD, TRIPTIK CLN, JAZZ 120, BOGFISH, WRECKER 2, SKYLINE DEEP, USA SUB BLUES, WRECKER LVRPOOL, CITRUS A30 CLN, CITRUS A30 DRT, CAR ROAMER, USA BASS, CITRUS BASS, STUDIO, BRIT 800, RECTO1 ORG MDRN, ANGLE SEVERE 1, ANGLE SEVERE 2, USA PRE LD1 RED, RECTO ORG BRT, RECTO RED BRT, VIBROVERB AA, PVH 6160 II LD, RUMBLE HRM, MR Z HWY 66, SUPER 6G4, 65 BASSMAN BASS, FREIDMAN, BAND-COMMANDER, USA PRE CLEAN, TUCANA CLEAN, FRIEDMAN SM BOX, TX STAR, USA IIC+, THORDENDAL, SOLO 99, BLUDOJAI, HERBIE, PVH 6160 II RHY, SOLO 88 CLEAN, JS410, JS410 MIDSHIFT, RUBY ROCKET, USA IIC++, LEGATO 100, HOOK EDGE, HOOK NO EDGE, HOOK CLEAN 1, HOOK CLEAN 2, SOLO 88<br />
|-<br />
AX8<br />
|AMP<br />
|35<br />
|B+ TIME CONST<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|36<br />
|TUBE GRID BIAS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|39<br />
|BRIGHT SWITCH<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|40<br />
|BOOST<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|41<br />
|LOW RES Q<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|42<br />
|PREAMP BIAS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|43<br />
|HI FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|44<br />
|HI RESONANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|45<br />
|CUT<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|46<br />
|XFORMER DRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|47<br />
|INPUT TRIM<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|AMP<br />
|48<br />
|PREAMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|49<br />
|MV LOCATION<br />
|select<br />
|PRE-PI, POST-PI, PRE-TRIODE<br />
|-<br />
AX8<br />
|AMP<br />
|50<br />
|SPEAKER DRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|51<br />
|XFORMER MATCH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|54<br />
|SAT SWITCH<br />
|select<br />
|OFF, AUTH, IDEAL<br />
|-<br />
AX8<br />
|AMP<br />
|55<br />
|GEQ BAND 1<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|56<br />
|GEQ BAND 2<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|57<br />
|GEQ BAND 3<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|58<br />
|GEQ BAND 4<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|59<br />
|GEQ BAND 5<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|60<br />
|GEQ BAND 6<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|61<br />
|GEQ BAND 7<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|62<br />
|GEQ BAND 8<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|63<br />
|BIAS EXCURSION<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|66<br />
|TRIODE 2 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|67<br />
|TRIODE 1 PLATE FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|68<br />
|PWR AMP TUBE<br />
|select<br />
|IDEAL TETRODE, IDEAL PENTODE, EL34/6CA7, EL84/6BQ5, 6L6/5881, 6V6, KT66, KT88, 6550, 6973, 6AQ5, 300B<br />
|-<br />
AX8<br />
|AMP<br />
|69<br />
|PREAMP TUBES<br />
|select<br />
|12AX7A SYL, ECC83, 7025, 12AX7A JJ, ECC803S, EF86, 12AX7A RCA, 12AX7A, 12AX7B<br />
|-<br />
AX8<br />
|AMP<br />
|70<br />
|OUT COMP CLARITY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|71<br />
|CHARACTER Q<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|AMP<br />
|72<br />
|CHARACTER FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|73<br />
|CHARACTER AMT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|74<br />
|OVERDRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|75<br />
|OUT COMP AMOUNT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|76<br />
|OUT COMP THRESHOLD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|77<br />
|MASTER TRIM<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|78<br />
|FAT<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|79<br />
|DEFINITION<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|80<br />
|PREAMP CF COMPRESS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|81<br />
|PREAMP CF TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|84<br />
|DYNAMIC PRESENCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|85<br />
|DYNAMIC DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|86<br />
|POWER TYPE<br />
|select<br />
|AC, DC<br />
|-<br />
AX8<br />
|AMP<br />
|87<br />
|AC LINE FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|88<br />
|PWR AMP HARDNESS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|91<br />
|PREAMP CF RATIO<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|92<br />
|EQ TYPE<br />
|select<br />
|8 BAND VAR Q, 7 BAND VAR Q, 5 BAND (MARK), 8 BAND CONST Q, 7 BAND CONST Q, 5 BAND CONST Q, 5 BAND PASSIVE, 4 BAND PASSIVE, 3 BAND PASSIVE, 3 BAND CONSOLE<br />
|-<br />
AX8<br />
|AMP<br />
|93<br />
|CATHODE RESIST<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|96<br />
|PREAMP SAG<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|97<br />
|BRIGHT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|AMP<br />
|98<br />
|PWR AMP BIAS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|99<br />
|PREAMP DYNAMICS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|100<br />
|HI FREQ SLOPE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|101<br />
|VARIAC<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|102<br />
|CHAR TYPE<br />
|select<br />
|SHELVING, PEAKING, DYNAMIC<br />
|-<br />
AX8<br />
|AMP<br />
|104<br />
|PRESENCE SHIFT<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|105<br />
|SATURATION DRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|106<br />
|CRUNCH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|109<br />
|OUT COMP TYPE<br />
|select<br />
|OUTPUT, FEEDBACK<br />
|-<br />
AX8<br />
|AMP<br />
|110<br />
|EQ LOCATION<br />
|select<br />
|POST P.A., PRE P.A.<br />
|-<br />
AX8<br />
|AMP<br />
|111<br />
|CF COMP TYPE<br />
|select<br />
|AUTHENTIC, IDEAL<br />
|-<br />
AX8<br />
|AMP<br />
|113<br />
|PREAMP CF HARDNESS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|114<br />
|PI BIAS SHIFT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|115<br />
|MOTOR DRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|AMP<br />
|116<br />
|MOTOR TIME CONST<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CAB<br />
|0<br />
|CAB<br />
|select<br />
|<br />
|-<br />
AX8<br />
|CAB<br />
|1<br />
|PROX. EFFECT<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|2<br />
|CAB R<br />
|select<br />
|<br />
|-<br />
AX8<br />
|CAB<br />
|3<br />
|PROX. EFFECT R<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|4<br />
|LINK<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|5<br />
|LEVEL L<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|6<br />
|LEVEL R<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|7<br />
|PAN L<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|8<br />
|PAN R<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
AX8<br />
|CAB<br />
|12<br />
|EFFECT TYPE<br />
|select<br />
|HI-/ULTRA-RES, NORMAL RES, STEREO, STEREO ULTRARES<br />
|-<br />
AX8<br />
|CAB<br />
|19<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|20<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|22<br />
|PROXIMITY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|26<br />
|DELAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|27<br />
|DELAY R<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|28<br />
|PROXIMITY R<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CAB<br />
|29<br />
|PROX. FREQ.<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CAB<br />
|30<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT, RIGHT, SUM L+R<br />
|-<br />
AX8<br />
|CAB<br />
|37<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|REV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|SMALL ROOM, MEDIUM ROOM, LARGE ROOM, SMALL HALL, MEDIUM HALL, LARGE HALL, SMALL CHAMBER, MEDIUM CHAMBER, LARGE CHAMBER, SMALL PLATE, MEDIUM PLATE, LARGE PLATE, SMALL CATHEDRAL, MED. CATHEDRAL, LARGE CATHEDRAL, SMALL SPRING, MEDIUM SPRING, LARGE SPRING, CAVERN, STONE QUARRY, STUDIO, AMBIENCE, CONCERT HALL, LARGE DEEP HALL, REC STUDIO C, NORTH CHURCH, SOUTH CHURCH, LONDON PLATE, SUN PLATE, HUGE ROOM, DRUM ROOM, HALLWAY, TUNNEL, DEEP CHAMBER, LG WOODEN ROOM, GYMNASIUM, ASYLUM HALL, DEEP SPACE, REC STUDIO A, LG TILED ROOM, VOCAL PLATE, WIDE HALL, RICH HALL<br />
|-<br />
AX8<br />
|REV<br />
|1<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|2<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|3<br />
|HF TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|4<br />
|WALL DIFFUSION<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|5<br />
|SIZE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|7<br />
|EARLY LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|8<br />
|LATE LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|9<br />
|PREDELAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|11<br />
|MOD DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|12<br />
|MOD RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|13<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|14<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|15<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|16<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
AX8<br />
|REV<br />
|17<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|18<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|19<br />
|ECHO DENSITY<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|20<br />
|LATE DIFFUSION<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|REV<br />
|21<br />
|LATE DIFF TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|23<br />
|SPRING NUMBER<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|24<br />
|SPRING TONE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|25<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|26<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|27<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|28<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|29<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|30<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|31<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|32<br />
|SPRING DRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|33<br />
|LF TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|34<br />
|LF CROSSOVER<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|35<br />
|STEREO WIDTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|36<br />
|ATTEN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|37<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|38<br />
|RELEASE TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|39<br />
|EARLY DIFFUSION<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|40<br />
|EARLY DIFF TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|REV<br />
|41<br />
|EARLY DECAY<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|REV<br />
|43<br />
|QUALITY<br />
|select<br />
|NORMAL, HIGH<br />
|-<br />
AX8<br />
|REV<br />
|44<br />
|HOLD<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|DLY<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, MONO TAPE, STEREO TAPE, PING-PONG, DUAL DELAY, REVERSE DELAY, SWEEP DELAY, DUCKING DELAY, VINTAGE DIGITAL, 2290 W/ MOD, AMBIENT STEREO, DELUXE MIND GUY, MONO BBD, STEREO BBD, LO-FI TAPE<br />
|-<br />
AX8<br />
|DLY<br />
|1<br />
|CONFIG<br />
|select<br />
|MONO, STEREO, PING-PONG, DUAL, REVERSE, SWEEP, TAPE<br />
|-<br />
AX8<br />
|DLY<br />
|2<br />
|TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|3<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|6<br />
|FEEDBACK R<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|7<br />
|ECHO PAN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|8<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|9<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|DLY<br />
|10<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|11<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|12<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|13<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|14<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|15<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|16<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|17<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|18<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|19<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|20<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|DLY<br />
|21<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|23<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|24<br />
|LFO1 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
AX8<br />
|DLY<br />
|25<br />
|LFO2 TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
AX8<br />
|DLY<br />
|26<br />
|TIME R<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|27<br />
|REPEAT HOLD<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|28<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|29<br />
|TEMPO R<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|DLY<br />
|30<br />
|FEEDBACK L>R<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|31<br />
|FEEDBACK R>L<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|32<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|33<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|34<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|35<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|36<br />
|LFO1 PHASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|37<br />
|LFO2 PHASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|38<br />
|X FADE TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|39<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|40<br />
|TRIGGER RESTART<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|41<br />
|FILTER SLOPE<br />
|select<br />
|6 dB/OCT, 12 dB/OCT, 24 dB/OCT, 36 dB/OCT, 48 dB/OCT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|DLY<br />
|42<br />
|DUCK ATTN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|43<br />
|DUCK THRES<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|44<br />
|DUCK RELEASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|45<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|46<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|47<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
AX8<br />
|DLY<br />
|48<br />
|LFO1 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
AX8<br />
|DLY<br />
|49<br />
|LFO2 TARGET<br />
|select<br />
|BOTH, LEFT, RIGHT<br />
|-<br />
AX8<br />
|DLY<br />
|50<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|DLY<br />
|51<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|DLY<br />
|52<br />
|SWEEP RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|53<br />
|SWEEP TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
AX8<br />
|DLY<br />
|54<br />
|SWEEP PHASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|55<br />
|SWEEP TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|DLY<br />
|56<br />
|START FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|57<br />
|STOP FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|58<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|59<br />
|Q<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|60<br />
|BIT REDUCTION<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|61<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|DLY<br />
|62<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|63<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|64<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|65<br />
|GAIN 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|66<br />
|GAIN 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|67<br />
|LFO1 DEPTH RANGE<br />
|select<br />
|LOW, HIGH<br />
|-<br />
AX8<br />
|DLY<br />
|68<br />
|MOTOR SPEED<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DLY<br />
|69<br />
|RIGHT POST DELAY<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|MTD<br />
|0<br />
|TIME 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|1<br />
|TIME 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|2<br />
|TIME 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|3<br />
|TIME 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|4<br />
|TEMPO 1<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|MTD<br />
|5<br />
|TEMPO 2<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|MTD<br />
|6<br />
|TEMPO 3<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|MTD<br />
|7<br />
|TEMPO 4<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|MTD<br />
|8<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|9<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|10<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|11<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|12<br />
|FEEDBACK 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|13<br />
|FEEDBACK 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|14<br />
|FEEDBACK 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|15<br />
|FEEDBACK 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|16<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|17<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|18<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|19<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|MTD<br />
|20<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|21<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|22<br />
|LFO3 RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|23<br />
|LFO4 RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|24<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|MTD<br />
|25<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|MTD<br />
|26<br />
|LFO3 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|MTD<br />
|27<br />
|LFO4 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|MTD<br />
|28<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|29<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|30<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|31<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
AX8<br />
|MTD<br />
|32<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|33<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|35<br />
|EFFECT TYPE<br />
|select<br />
|QUAD-TAP, PLEX DELAY, PLEX DETUNE, PLEX SHIFT, BAND DELAY, QUAD-SERIES, TEN-TAP DLY, RHYTHM TAP, DIFFUSOR, QUAD TAPE DLY<br />
|-<br />
AX8<br />
|MTD<br />
|36<br />
|DECAY TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|37<br />
|DIFFUSION<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|38<br />
|INPUT DIFF<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|39<br />
|DIFF TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|40<br />
|DUCKER THRES<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|MTD<br />
|41<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|42<br />
|MASTER TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|43<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|44<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|45<br />
|MASTER FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|46<br />
|MASTER Q<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|47<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|48<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|49<br />
|MASTER DETUNE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|50<br />
|DETUNE 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|51<br />
|DETUNE 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|52<br />
|DETUNE 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|53<br />
|DETUNE 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|54<br />
|SHIFT 1<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|55<br />
|SHIFT 2<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|56<br />
|SHIFT 3<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|57<br />
|SHIFT 4<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|58<br />
|FREQ 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|59<br />
|FREQ 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|60<br />
|FREQ 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|MTD<br />
|61<br />
|FREQ 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|62<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|63<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|64<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|65<br />
|Q 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|66<br />
|MASTER RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|67<br />
|DUCKER ATTEN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|68<br />
|MASTER DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|69<br />
|DIRECTION<br />
|select<br />
|FORWARD, REVERSE<br />
|-<br />
AX8<br />
|MTD<br />
|70<br />
|TAPE SPEED<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|71<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|72<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|73<br />
|LFO3 DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|74<br />
|LFO4 DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|75<br />
|LFO1 MASTER<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|76<br />
|FB SEND<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
AX8<br />
|MTD<br />
|77<br />
|FB RETURN<br />
|select<br />
|1, 2, 3, 4<br />
|-<br />
AX8<br />
|MTD<br />
|78<br />
|MONO/STEREO<br />
|select<br />
|MONO, STEREO<br />
|-<br />
AX8<br />
|MTD<br />
|79<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|81<br />
|QUANTIZE<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|MTD<br />
|82<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|84<br />
|NUMBER OF TAPS<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|85<br />
|SHUFFLE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|86<br />
|DELAY TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|MTD<br />
|87<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|88<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
AX8<br />
|MTD<br />
|89<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|90<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|91<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|92<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|93<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|94<br />
|TAP 1 TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|95<br />
|TAP 2 TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|96<br />
|TAP 3 TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|97<br />
|TAP 4 TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|98<br />
|TAP 5 TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|99<br />
|TAP 6 TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|100<br />
|TAP 7 TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|101<br />
|TAP 8 TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|102<br />
|TAP 9 TIME<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|MTD<br />
|103<br />
|TAP 10 TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|104<br />
|TAP 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|105<br />
|TAP 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|106<br />
|TAP 3 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|107<br />
|TAP 4 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|108<br />
|TAP 5 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|109<br />
|TAP 6 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|110<br />
|TAP 7 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|111<br />
|TAP 8 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|112<br />
|TAP 9 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|113<br />
|TAP 10 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|116<br />
|DUCKER RELEASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|MTD<br />
|117<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CHO<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, JAPAN CE-2, WARM STEREO, 80'S STYLE, TRIANGLE CHORUS, 8-VOICE STEREO, VINTAGE TAPE, DIMENSION 1, DIMENSION 2, 4-VOICE ANALOG<br />
|-<br />
AX8<br />
|CHO<br />
|1<br />
|VOICES<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|3<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|CHO<br />
|4<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|5<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|6<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
AX8<br />
|CHO<br />
|9<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, HIGH<br />
|-<br />
AX8<br />
|CHO<br />
|10<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|11<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|12<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|13<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
AX8<br />
|CHO<br />
|14<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|16<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
AX8<br />
|CHO<br />
|17<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|18<br />
|LFO 2 RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|19<br />
|LFO 2 DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CHO<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CHO<br />
|23<br />
|DIMENSION<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|FLG<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, ANALOG MONO, ANALOG STEREO, THRU-ZERO, STEREO JET, ZERO FLANGER, POP FLANGER<br />
|-<br />
AX8<br />
|FLG<br />
|1<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|2<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|FLG<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|4<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|5<br />
|DELAY TIME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|6<br />
|DRY DELAY SHIFT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|7<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|8<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
AX8<br />
|FLG<br />
|9<br />
|LFO HIGHCUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|10<br />
|AUTO DEPTH<br />
|select<br />
|OFF, LOW, MED, HIGH<br />
|-<br />
AX8<br />
|FLG<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
AX8<br />
|FLG<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|17<br />
|PHASE REVERSE<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
AX8<br />
|FLG<br />
|18<br />
|THRU ZERO<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|19<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|20<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|FLG<br />
|21<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FLG<br />
|22<br />
|SPREAD<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|ROT<br />
|0<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|1<br />
|LOW DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|2<br />
|HI DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|3<br />
|HI LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|ROT<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
AX8<br />
|ROT<br />
|10<br />
|ROTOR LENGTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|12<br />
|MIC SPACING<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|13<br />
|LOW RATE MULT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|14<br />
|LOW TIME CONST<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|15<br />
|HI TIME CONST<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|16<br />
|STEREO SPREAD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|17<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ROT<br />
|18<br />
|MIC DISTANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|PHA<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DIGITAL MONO, DIGITAL STEREO, SCRIPT 45, SCRIPT 90, BLOCK 90, CLASSIC VIBE, STEREO 8-STAGE, BARBERPOLE<br />
|-<br />
AX8<br />
|PHA<br />
|1<br />
|ORDER<br />
|select<br />
|2, 4, 6, 8, 10, 12<br />
|-<br />
AX8<br />
|PHA<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|3<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
AX8<br />
|PHA<br />
|4<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|PHA<br />
|5<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|6<br />
|FEEDBACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|7<br />
|FREQ. START<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|8<br />
|FREQ. SPAN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|9<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|10<br />
|BULB BIAS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|11<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|12<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|13<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|14<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
AX8<br />
|PHA<br />
|15<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|17<br />
|MODE<br />
|select<br />
|NORMAL, VIBE, BARBERPOLE<br />
|-<br />
AX8<br />
|PHA<br />
|18<br />
|FEEDBACK TAP<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|19<br />
|TONE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|20<br />
|DIRECTION<br />
|select<br />
|UP, DOWN<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|PHA<br />
|21<br />
|FILTER Q<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PHA<br />
|22<br />
|LFO BYPASS RESET<br />
|select<br />
|OFF, 0 DEG, 90 DEG, 180 DEG, 270 DEG<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|WAH<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|FAS STANDARD, CLYDE, CRY BABE, VX846, COLOR-TONE, FUNK, MORTAL, VX845<br />
|-<br />
AX8<br />
|WAH<br />
|1<br />
|FREQ MIN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|2<br />
|FREQ MAX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|4<br />
|TRACKING<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|5<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
AX8<br />
|WAH<br />
|9<br />
|FAT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|10<br />
|DRIVE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|11<br />
|TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
AX8<br />
|WAH<br />
|13<br />
|COIL BIAS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|WAH<br />
|14<br />
|LOW CUT FREQ<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|FRM<br />
|0<br />
|START<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
AX8<br />
|FRM<br />
|1<br />
|MID<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
AX8<br />
|FRM<br />
|2<br />
|END<br />
|select<br />
|AAA, EEE, III, OHH, OOO, EHH, AHH, AWW, UHH, ERR<br />
|-<br />
AX8<br />
|FRM<br />
|3<br />
|RESONANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FRM<br />
|4<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FRM<br />
|5<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FRM<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FRM<br />
|7<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FRM<br />
|8<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
AX8<br />
|FRM<br />
|9<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|VOL<br />
|0<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|VOL<br />
|1<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|VOL<br />
|2<br />
|VOLUME TAPER<br />
|select<br />
|LINEAR, LOG 30A, LOG 20A, LOG 15A, LOG 10A, LOG 5A<br />
|-<br />
AX8<br />
|VOL<br />
|4<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|VOL<br />
|5<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|VOL<br />
|6<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|VOL<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
AX8<br />
|VOL<br />
|8<br />
|INPUT SELECT<br />
|select<br />
|STEREO, LEFT ONLY, RIGHT ONLY<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|TRM<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|TREMOLO, PANNER<br />
|-<br />
AX8<br />
|TRM<br />
|1<br />
|LFO TYPE<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
AX8<br />
|TRM<br />
|2<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|TRM<br />
|3<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|TRM<br />
|4<br />
|DUTY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|TRM<br />
|5<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|TRM<br />
|7<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|TRM<br />
|8<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|TRM<br />
|9<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
AX8<br />
|TRM<br />
|11<br />
|LFO PHASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|TRM<br />
|12<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|TRM<br />
|13<br />
|PAN CENTER<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|TRM<br />
|15<br />
|START PHASE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|PIT<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|DETUNE, FIXED HARM, INTEL HARM, CL. WHAMMY, OCTAVE DIV, CRYSTALS, AD. WHAMMY, ARPEGGIATOR, CUST. SHIFT<br />
|-<br />
AX8<br />
|PIT<br />
|1<br />
|MODE<br />
|select<br />
|UP 1 OCT, DOWN 1 OCT, UP 2 OCT, DOWN 2 OCT, UP|DN 1 OCT, UP|DN 2 OCT<br />
|-<br />
AX8<br />
|PIT<br />
|2<br />
|MASTER PITCH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|3<br />
|CONTROL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|4<br />
|VOICE 1 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|5<br />
|VOICE 2 HARMONY<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|6<br />
|KEY<br />
|select<br />
|A , Bb, B , C , Db, D , Eb, E , F , Gb, G , Ab<br />
|-<br />
AX8<br />
|PIT<br />
|7<br />
|SCALE<br />
|select<br />
|IONIAN MAJ, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, AEOLIAN MIN, LOCRIAN, MEL. MINOR, HARM. MINOR, DIMINISHED, WHOLE TONE, DOM. SEVEN, DIM. WHOLE, PENTA. MAJ, PENTA. MIN, BLUES, CHROMATIC, CUSTOM<br />
|-<br />
AX8<br />
|PIT<br />
|8<br />
|TRACK MODE<br />
|select<br />
|SMOOTH, STEPPED<br />
|-<br />
AX8<br />
|PIT<br />
|9<br />
|VOICE 1 DETUNE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|10<br />
|VOICE 2 DETUNE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|11<br />
|VOICE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|12<br />
|VOICE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|13<br />
|VOICE 1 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|14<br />
|VOICE 2 LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|15<br />
|VOICE 1 PAN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|16<br />
|VOICE 2 PAN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|17<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|18<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|19<br />
|VOICE 1 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|PIT<br />
|20<br />
|VOICE 2 FEEDBACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|21<br />
|PITCH TRACK<br />
|select<br />
|OFF, POLY, MONO<br />
|-<br />
AX8<br />
|PIT<br />
|22<br />
|TRACK ADJUST<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT, MUTE FX IN, MUTE IN<br />
|-<br />
AX8<br />
|PIT<br />
|27<br />
|GLOBAL<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|28<br />
|INPUT GAIN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|30<br />
|CROSSFADE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|31<br />
|VOICE 1 SPLICE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|32<br />
|VOICE 2 SPLICE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|33<br />
|VOICE 1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|PIT<br />
|34<br />
|VOICE 2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|PIT<br />
|35<br />
|SPLC1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|PIT<br />
|36<br />
|SPLC2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|PIT<br />
|37<br />
|FEEDBACK TYPE<br />
|select<br />
|DUAL, BOTH, PING-PONG<br />
|-<br />
AX8<br />
|PIT<br />
|38<br />
|REVERSE<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|39<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|40<br />
|GLIDE TIME<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|PIT<br />
|41<br />
|MASTER DELAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|42<br />
|MASTER FEEDBACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|43<br />
|MASTER PAN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|44<br />
|MASTER LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|45<br />
|Notes<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8<br />
|-<br />
AX8<br />
|PIT<br />
|53<br />
|VOICE 1 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|54<br />
|VOICE 2 SCALE<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|55<br />
|STAGES<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|56<br />
|REPEATS<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, Infinite<br />
|-<br />
AX8<br />
|PIT<br />
|57<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|58<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|PIT<br />
|59<br />
|STAGE 1 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|60<br />
|STAGE 2 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|61<br />
|STAGE 3 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|62<br />
|STAGE 4 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|63<br />
|STAGE 5 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|64<br />
|STAGE 6 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|65<br />
|STAGE 7 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|66<br />
|STAGE 8 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|67<br />
|STAGE 9 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|PIT<br />
|68<br />
|STAGE 10 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|69<br />
|STAGE 11 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|70<br />
|STAGE 12 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|71<br />
|STAGE 13 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|72<br />
|STAGE 14 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|73<br />
|STAGE 15 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|74<br />
|STAGE 16 SHIFT<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|75<br />
|AMPLITUBE SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
AX8<br />
|PIT<br />
|76<br />
|AMPLITUBE ALPHA<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|77<br />
|PAN SHAPE<br />
|select<br />
|CONSTANT, INCREASING, DECREASING, UP / DOWN, DOWN / UP, SINE<br />
|-<br />
AX8<br />
|PIT<br />
|78<br />
|PAN ALPHA<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|79<br />
|VOICE 1 DELAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|80<br />
|VOICE 2 DELAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|81<br />
|PITCH SOURCE<br />
|select<br />
|GLOBAL, LOCAL<br />
|-<br />
AX8<br />
|PIT<br />
|82<br />
|INPUT MODE<br />
|select<br />
|MONO, STEREO<br />
|-<br />
AX8<br />
|PIT<br />
|83<br />
|LEARN<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|84<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|PIT<br />
|85<br />
|ECONOMY<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|FIL<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|NULL, LOWPASS, BANDPASS, HIGHPASS, LOWSHELF, HIGHSHLF, PEAKING, NOTCH, TILT EQ, LOWSHELF2, HIGHSHLF2, PEAKING2<br />
|-<br />
AX8<br />
|FIL<br />
|1<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FIL<br />
|2<br />
|Q<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FIL<br />
|3<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FIL<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FIL<br />
|5<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FIL<br />
|6<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
AX8<br />
|FIL<br />
|7<br />
|ORDER<br />
|select<br />
|2nd, 4th<br />
|-<br />
AX8<br />
|FIL<br />
|9<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FIL<br />
|10<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FIL<br />
|11<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
AX8<br />
|FIL<br />
|12<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FIL<br />
|13<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|DRV<br />
|0<br />
|EFFECT TYPE<br />
|select<br />
|RAT DIST, PI FUZZ, TUBE DRV 3-KNOB, SUPER OD, TREBLE BOOST, MID BOOST, T808 OD, FAT RAT, T808 MOD, OCTAVE DIST, PLUS DIST, HARD FUZZ, FET BOOST, TAPE DIST, FULL OD, BLUES OD, SHRED DIST, M-ZONE DIST, BENDER FUZZ, BB PRE, MASTER FUZZ, FACE FUZZ, BIT CRUSHER, ETERNAL LOVE, ESOTERIC ACB, ESOTERIC RCB, ZEN MASTER, TUBE DRV 4-KNOB, FAS LED-DRIVE, SDD PREAMP, FET PREAMP, RUCKUS, MICRO BOOST, FAS BOOST, TIMOTHY, SHIMMER DRIVE<br />
|-<br />
AX8<br />
|DRV<br />
|1<br />
|DISTORTION<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|2<br />
|FILTER<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|3<br />
|VOLUME<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|5<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
AX8<br />
|DRV<br />
|6<br />
|SLEW LIMIT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|8<br />
|LO CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|9<br />
|HI CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|10<br />
|CLIP TYPE<br />
|select<br />
|LV TUBE, HARD, SOFT, GERMANIUM, FW RECT, HV TUBE, SILICON, 4558/DIODE, LED, FET, OP-AMP, VARIABLE, NULL<br />
|-<br />
AX8<br />
|DRV<br />
|11<br />
|BIAS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|12<br />
|BASS<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|13<br />
|MIDDLE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|14<br />
|MID FREQ<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|15<br />
|TREBLE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|16<br />
|BIT REDUCE<br />
|rangeKnob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|17<br />
|INPUT<br />
|select<br />
|L+R, LEFT, RIGHT<br />
|-<br />
AX8<br />
|DRV<br />
|18<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|DRV<br />
|19<br />
|SAMPLE RATE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|ENH<br />
|0<br />
|WIDTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ENH<br />
|1<br />
|DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ENH<br />
|2<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ENH<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ENH<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ENH<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|MODERN, CLASSIC<br />
|-<br />
AX8<br />
|ENH<br />
|7<br />
|INVERT<br />
|select<br />
|NONE, RIGHT, LEFT, BOTH<br />
|-<br />
AX8<br />
|ENH<br />
|8<br />
|PAN LEFT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ENH<br />
|9<br />
|PAN RIGHT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|ENH<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|FXL<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|4<br />
|PAN 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|5<br />
|PAN 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|6<br />
|PAN 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|7<br />
|PAN 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|8<br />
|SCENE 1<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|9<br />
|SCENE 2<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|10<br />
|SCENE 3<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|11<br />
|SCENE 4<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|12<br />
|SCENE 5<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|13<br />
|SCENE 6<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|14<br />
|SCENE 7<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|15<br />
|SCENE 8<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|17<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|FXL<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|INPUT<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|INPUT<br />
|1<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|INPUT<br />
|2<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|INPUT<br />
|3<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|INPUT<br />
|4<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|INPUT<br />
|6<br />
|EFFECT TYPE<br />
|select<br />
|CLASSIC, INTELLIGENT<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|OUTPUT<br />
|0<br />
|LEVEL 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|1<br />
|LEVEL 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|2<br />
|LEVEL 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|3<br />
|LEVEL 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|4<br />
|BALANCE 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|5<br />
|BALANCE 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|6<br />
|BALANCE 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|7<br />
|BALANCE 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|8<br />
|SCENE 1 MAIN<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|9<br />
|SCENE 2 MAIN<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|10<br />
|SCENE 3 MAIN<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|11<br />
|SCENE 4 MAIN<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|12<br />
|SCENE 5 MAIN<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|13<br />
|SCENE 6 MAIN<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|14<br />
|SCENE 7 MAIN<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|15<br />
|SCENE 8 MAIN<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|16<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|17<br />
|PAN<br />
|KNOB<br />
| <br />
|-<br />
AX8<br />
|OUTPUT<br />
|18<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|0<br />
|LFO1 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|1<br />
|LFO1 RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|2<br />
|LFO1 DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|3<br />
|LFO1 DUTY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|4<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|5<br />
|LFO1 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|6<br />
|LFO2 TYPE [RUN]<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAW UP, SAW DOWN, RANDOM, LOG, EXP, TRAPEZOID<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|7<br />
|LFO2 RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|8<br />
|LFO2 DEPTH<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|9<br />
|LFO2 DUTY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|10<br />
|OUTPUT B PHASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|11<br />
|LFO2 TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|12<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|13<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|14<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|15<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|16<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|17<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|18<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|19<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|20<br />
|MODE<br />
|select<br />
|ONCE, LOOP, SUST<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|21<br />
|RETRIG<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|22<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|23<br />
|DECAY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|24<br />
|SUSTAIN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|25<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|26<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|27<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|28<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|29<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|30<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|31<br />
|GAIN<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|34<br />
|RATE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|35<br />
|TEMPO<br />
|select<br />
|NONE , 1/64 TRIP, 1/64, 1/64 DOT, 1/32 TRIP, 1/32, 1/32 DOT, 1/16 TRIP, 1/16, 1/16 DOT, 1/8 TRIP, 1/8, 1/8 DOT, 1/4 TRIP, 1/4, 1/4 DOT, 1/2 TRIP, 1/2, 1/2 DOT, 1 TRIP, 1, 1 DOT, 2, 3, 4, 4/3, 5/4, 5/64, 7/64, 9/64, 10/64 (5/32), 11/64, 13/64, 14/64 (7/32), 15/64, 17/64, 18/64 (9/32), 19/64, 20/64 (5/16), 21/64, 22/64 (11/32), 23/64, 25/64, 26/64 (13/32), 27/64, 28/64 (7/16), 29/64, 30/64 (15/32), 31/64, 33/64, 34/64 (17/32), 35/64, 36/64 (9/16), 37/64, 38/64 (19/32), 39/64, 40/64 (5/8), 41/64, 42/64 (21/32), 43/64, 44/64 (11/16), 45/64, 46/64 (23/32), 47/64, 49/64, 50/64 (25/32), 51/64, 52/64 (13/16), 53/64, 54/64 (27/32), 55/64, 56/64 (7/8), 57/64, 58/64 (29/32), 59/64, 60/64 (15/16), 61/64, 62/64 (31/32), 63/64<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|36<br />
|STAGES<br />
|select<br />
|0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|37<br />
|1<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|38<br />
|2<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|39<br />
|3<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|40<br />
|4<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|41<br />
|5<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|42<br />
|6<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|43<br />
|7<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|44<br />
|8<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|45<br />
|9<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|46<br />
|10<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|47<br />
|11<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|48<br />
|12<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|49<br />
|13<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|50<br />
|14<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|51<br />
|15<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|52<br />
|16<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|54<br />
|RUN<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|55<br />
|17<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|56<br />
|18<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|57<br />
|19<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|58<br />
|20<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|59<br />
|21<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|60<br />
|22<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|61<br />
|23<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|62<br />
|24<br />
|slider<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|63<br />
|25<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|64<br />
|26<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|65<br />
|27<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|66<br />
|28<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|67<br />
|29<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|68<br />
|30<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|69<br />
|31<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|70<br />
|32<br />
|slider<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|74<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|75<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|76<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|77<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|78<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|79<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|80<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|81<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|82<br />
|SCENE 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|83<br />
|SCENE 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|84<br />
|SCENE 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|85<br />
|SCENE 4<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|86<br />
|SCENE 5<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|87<br />
|SCENE 6<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|88<br />
|SCENE 7<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|89<br />
|SCENE 8<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|90<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|91<br />
|QUANTIZE<br />
|select<br />
|, OFF, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|92<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|93<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|94<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|95<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|96<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|97<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|98<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|99<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|100<br />
|SCENE 1<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|101<br />
|SCENE 2<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|102<br />
|SCENE 3<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|103<br />
|SCENE 4<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|104<br />
|SCENE 5<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|105<br />
|SCENE 6<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|106<br />
|SCENE 7<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|CONTROLLERS<br />
|107<br />
|SCENE 8<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|SYN<br />
|0<br />
|TYPE 1<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
AX8<br />
|SYN<br />
|1<br />
|FREQUENCY 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|2<br />
|TRACK 1<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
AX8<br />
|SYN<br />
|3<br />
|SHIFT 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|4<br />
|TUNE 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|5<br />
|DUTY 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|6<br />
|VOICE LEVEL 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|7<br />
|VOICE PAN 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|8<br />
|ATTACK 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|9<br />
|FILTER 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|10<br />
|Q 1<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|11<br />
|TYPE 2<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
AX8<br />
|SYN<br />
|12<br />
|FREQUENCY 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|13<br />
|TRACK 2<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
AX8<br />
|SYN<br />
|14<br />
|SHIFT 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|15<br />
|TUNE 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|16<br />
|DUTY 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|17<br />
|VOICE LEVEL 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|18<br />
|VOICE PAN 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|19<br />
|ATTACK 2<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|SYN<br />
|20<br />
|FILTER 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|21<br />
|Q 2<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|23<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|24<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|25<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|26<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
AX8<br />
|SYN<br />
|27<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|29<br />
|TYPE 3<br />
|select<br />
|SINE, TRIANGLE, SQUARE, SAWTOOTH, RANDOM, WHT NOISE, PINK NOISE, OFF<br />
|-<br />
AX8<br />
|SYN<br />
|30<br />
|FREQUENCY 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|31<br />
|TRACK 3<br />
|select<br />
|OFF, ENV ONLY, PITCH+ENV, QUANTIZE<br />
|-<br />
AX8<br />
|SYN<br />
|32<br />
|SHIFT 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|33<br />
|TUNE 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|34<br />
|DUTY 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|35<br />
|VOICE LEVEL 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|36<br />
|VOICE PAN 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|37<br />
|ATTACK 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|38<br />
|FILTER 3<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|SYN<br />
|39<br />
|Q 3<br />
|knob<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|GTE<br />
|0<br />
|THRESHOLD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GTE<br />
|1<br />
|ATTACK<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GTE<br />
|2<br />
|HOLD<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GTE<br />
|3<br />
|RELEASE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GTE<br />
|4<br />
|RATIO<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GTE<br />
|5<br />
|SIDECHAIN SELECT<br />
|select<br />
|BLOCK L+R, ROW 1, ROW 2, ROW 3, ROW 4, INPUT 1, INPUT 2<br />
|-<br />
AX8<br />
|GTE<br />
|6<br />
|LOW CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GTE<br />
|7<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GTE<br />
|9<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GTE<br />
|10<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|GTE<br />
|11<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE<br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|RNG<br />
|0<br />
|FREQUENCY<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|RNG<br />
|1<br />
|F. MULTIPLIER<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|RNG<br />
|2<br />
|TRACK<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|RNG<br />
|3<br />
|HIGH CUT<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|RNG<br />
|4<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|RNG<br />
|5<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|RNG<br />
|6<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|RNG<br />
|7<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
AX8<br />
|RNG<br />
|8<br />
|GLOBAL MIX<br />
|switch<br />
| <br />
|-<br />
! Device<br />
! Block<br />
! ID<br />
! Name<br />
! Type<br />
! Options<br />
|-<br />
AX8<br />
|LPR<br />
|0<br />
|MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|LPR<br />
|1<br />
|LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|LPR<br />
|2<br />
|BALANCE<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|LPR<br />
|3<br />
|BYPASS MODE<br />
|select<br />
|THRU, MUTE FX OUT, MUTE OUT<br />
|-<br />
AX8<br />
|LPR<br />
|5<br />
|DUB MIX<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|LPR<br />
|6<br />
|THRESHOLD<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|LPR<br />
|7<br />
|THRES LEVEL<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|LPR<br />
|8<br />
|MODE<br />
|select<br />
|MONO, STEREO, MONO UNDO, STEREO UNDO<br />
|-<br />
AX8<br />
|LPR<br />
|9<br />
|QUANTIZE<br />
|select<br />
|OFF, QUARTER, EIGTH, SIXTEENTH<br />
|-<br />
AX8<br />
|LPR<br />
|10<br />
|TRIM STOP<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|LPR<br />
|11<br />
|TRIM START<br />
|knob<br />
| <br />
|-<br />
AX8<br />
|LPR<br />
|12<br />
|IMMEDIATE PLAY<br />
|switch<br />
| <br />
|-<br />
AX8<br />
|LPR<br />
|13<br />
|RECORD BEATS<br />
|rangeKnob<br />
| <br />
|}<br />
<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43333
MIDI SysEx
2017-05-21T19:34:36Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with [[#BATCH_LIST_REQUEST_START|0x32 BATCH_LIST_REQUEST_START]] confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with [[#BATCH_LIST_REQUEST_COMPLETE|0x33 BATCH_LIST_REQUEST_COMPLETE]] confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|140<br />
|Output<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL/XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43332
MIDI SysEx
2017-05-21T19:31:41Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This function will respond with [[#MULTIPURPOSE_RESPONSE|0x64 MULTIPURPOSE_RESPONSE]]<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd Block/Shunt ID bits 6-0<br />
::0xdd Block/Shunt ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
About Shunts: Each shunt has a unique ID just like blocks, there are 36 shunts, on the Axe-Fx II the Shunt IDs start at 200 up to 235, on the AX8 they start at 300 to 335.<br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL X/Y<br />
! Axe-Fx II XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL X/Y<br />
! Axe-Fx II XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL X/Y<br />
! Axe-Fx II XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|140<br />
|Output<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL X/Y<br />
! Axe-Fx II XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43331
MIDI SysEx
2017-05-21T19:24:44Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL X/Y<br />
! Axe-Fx II XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL X/Y<br />
! Axe-Fx II XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL X/Y<br />
! Axe-Fx II XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|138<br />
|Mixer 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|140<br />
|Output<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL X/Y<br />
! Axe-Fx II XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43330
MIDI SysEx
2017-05-21T19:19:46Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
{| class="wikitable" style="text-align: center;"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
! Axe-Fx II X/Y<br />
! Axe-Fx II XL X/Y<br />
! Axe-Fx II XL+ X/Y<br />
! AX8 X/Y<br />
|-<br />
|100<br />
|Compressor 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|106<br />
|Amp 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|108<br />
|Cab 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|110<br />
|Reverb 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|112<br />
|Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|116<br />
|Chorus 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|118<br />
|Flanger 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|122<br />
|Phaser 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|124<br />
|Wah 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|126<br />
|Formant<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|130<br />
|Pitch 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|136<br />
|FX Loop<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|137<br />
|Mixer<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|140<br />
|Output<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|141<br />
|Controllers<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|142<br />
|Feedback Send<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|145<br />
|Synth 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|Yes<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|152<br />
|Ring Modulator<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|153<br />
|Pitch 2<br />
|Yes<br />
|No<br />
|Yes<br />
|Yes<br />
|Yes<br />
|Yes<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|Yes<br />
|No<br />
|No<br />
|Yes<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|165<br />
|Filter 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|Yes<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|Yes<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|-<br />
|170<br />
|Tone Match<br />
|Yes<br />
|No<br />
|No<br />
|No<br />
|No<br />
|No<br />
|}<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43329
MIDI SysEx
2017-05-21T19:16:55Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
{| class="wikitable"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on AX8<br />
|-<br />
|100<br />
|Compressor 1<br />
|true<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|true<br />
|No<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|true<br />
|Yes<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|true<br />
|Yes<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|true<br />
|Yes<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|true<br />
|Yes<br />
|-<br />
|106<br />
|Amp 1<br />
|true<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|true<br />
|No<br />
|-<br />
|108<br />
|Cab 1<br />
|true<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|true<br />
|No<br />
|-<br />
|110<br />
|Reverb 1<br />
|true<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|true<br />
|No<br />
|-<br />
|112<br />
|Delay 1<br />
|true<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|true<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|true<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|true<br />
|No<br />
|-<br />
|116<br />
|Chorus 1<br />
|true<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|true<br />
|No<br />
|-<br />
|118<br />
|Flanger 1<br />
|true<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|true<br />
|No<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|true<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|true<br />
|No<br />
|-<br />
|122<br />
|Phaser 1<br />
|true<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|true<br />
|No<br />
|-<br />
|124<br />
|Wah 1<br />
|true<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|true<br />
|No<br />
|-<br />
|126<br />
|Formant<br />
|true<br />
|Yes<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|true<br />
|Yes<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|true<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|true<br />
|No<br />
|-<br />
|130<br />
|Pitch 1<br />
|true<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|true<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|true<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|true<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|true<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|true<br />
|Yes<br />
|-<br />
|136<br />
|FX Loop<br />
|true<br />
|Yes<br />
|-<br />
|137<br />
|Mixer<br />
|false<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|true<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|true<br />
|Yes<br />
|-<br />
|140<br />
|Output<br />
|true<br />
|Yes<br />
|-<br />
|141<br />
|Controllers<br />
|true<br />
|Yes<br />
|-<br />
|142<br />
|Feedback Send<br />
|false<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|false<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|true<br />
|Yes<br />
|-<br />
|145<br />
|Synth 2<br />
|true<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|true<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|true<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|true<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|true<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|true<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|true<br />
|No<br />
|-<br />
|152<br />
|Ring Modulator<br />
|true<br />
|Yes<br />
|-<br />
|153<br />
|Pitch 2<br />
|true<br />
|No<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|true<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|true<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|true<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|true<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|true<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|true<br />
|No<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|true<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|true<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|true<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|true<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|true<br />
|No<br />
|-<br />
|165<br />
|Filter 4<br />
|true<br />
|No<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|true<br />
|Yes<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|true<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|true<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|true<br />
|Yes<br />
|-<br />
|170<br />
|Tone Match<br />
|true<br />
|No<br />
|}<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43328
MIDI SysEx
2017-05-21T19:16:08Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
{| class="wikitable"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Available on Axe-Fx II/XL/XL+<br />
! Available on AX8<br />
|-<br />
|100<br />
|Compressor 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|101<br />
|Compressor 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|106<br />
|Amp 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|107<br />
|Amp 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|108<br />
|Cab 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|109<br />
|Cab 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|110<br />
|Reverb 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|111<br />
|Reverb 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|112<br />
|Delay 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|113<br />
|Delay 2<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|116<br />
|Chorus 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|117<br />
|Chorus 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|118<br />
|Flanger 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|119<br />
|Flanger 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|122<br />
|Phaser 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|123<br />
|Phaser 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|124<br />
|Wah 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|125<br />
|Wah 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|126<br />
|Formant<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|130<br />
|Pitch 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|131<br />
|Filter 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|132<br />
|Filter 2<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|133<br />
|Drive 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|134<br />
|Drive 2<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|135<br />
|Enhancer<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|136<br />
|FX Loop<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|137<br />
|Mixer<br />
|false<br />
|Yes<br />
|No<br />
|-<br />
|138<br />
|Mixer 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|140<br />
|Output<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|141<br />
|Controllers<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|142<br />
|Feedback Send<br />
|false<br />
|Yes<br />
|No<br />
|-<br />
|143<br />
|Feedback Return<br />
|false<br />
|Yes<br />
|No<br />
|-<br />
|144<br />
|Synth 1<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|145<br />
|Synth 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|146<br />
|Vocoder<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|147<br />
|Megatap Delay<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|148<br />
|Crossover 1<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|149<br />
|Crossover 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|150<br />
|Gate Expander<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|152<br />
|Ring Modulator<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|153<br />
|Pitch 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|158<br />
|Resonator 1<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|159<br />
|Resonator 2<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|164<br />
|Filter 3<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|165<br />
|Filter 4<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|true<br />
|Yes<br />
|No<br />
|-<br />
|169<br />
|Looper<br />
|true<br />
|Yes<br />
|Yes<br />
|-<br />
|170<br />
|Tone Match<br />
|true<br />
|Yes<br />
|No<br />
|}<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43327
MIDI SysEx
2017-05-21T19:12:38Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
{| class="wikitable"<br />
|-<br />
! ID<br />
! Block Name<br />
! Can Bypass<br />
! Axe-Fx II<br />
! Axe-Fx II XL<br />
! Axe-Fx II XL +<br />
! AX8<br />
|-<br />
|100<br />
|Compressor 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|101<br />
|Compressor 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|102<br />
|Graphic EQ 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|103<br />
|Graphic EQ 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|104<br />
|Parametric EQ 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|105<br />
|Parametric EQ 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|106<br />
|Amp 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|107<br />
|Amp 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|108<br />
|Cab 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|109<br />
|Cab 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|110<br />
|Reverb 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|111<br />
|Reverb 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|112<br />
|Delay 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|113<br />
|Delay 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|114<br />
|Multi Delay 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|115<br />
|Multi Delay 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|116<br />
|Chorus 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|117<br />
|Chorus 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|118<br />
|Flanger 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|119<br />
|Flanger 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|120<br />
|Rotary Speaker 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|121<br />
|Rotary Speaker 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|122<br />
|Phaser 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|123<br />
|Phaser 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|124<br />
|Wah 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|125<br />
|Wah 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|126<br />
|Formant<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|127<br />
|Volume/Pan 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|128<br />
|Tremolo/Panner 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|129<br />
|Tremolo/Panner 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|130<br />
|Pitch 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|131<br />
|Filter 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|132<br />
|Filter 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|133<br />
|Drive 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|134<br />
|Drive 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|135<br />
|Enhancer<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|136<br />
|FX Loop<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|137<br />
|Mixer<br />
|false<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|138<br />
|Mixer 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|139<br />
|Input Noise Gate<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|140<br />
|Output<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|141<br />
|Controllers<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|142<br />
|Feedback Send<br />
|false<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|143<br />
|Feedback Return<br />
|false<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|144<br />
|Synth 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|145<br />
|Synth 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|146<br />
|Vocoder<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|147<br />
|Megatap Delay<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|148<br />
|Crossover 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|149<br />
|Crossover 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|150<br />
|Gate Expander<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|151<br />
|Gate Expander 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|152<br />
|Ring Modulator<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|153<br />
|Pitch 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|154<br />
|Multiband Compressor 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|155<br />
|Multiband Compressor 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|156<br />
|Quad Chorus 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|157<br />
|Quad Chorus 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|158<br />
|Resonator 1<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|159<br />
|Resonator 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|160<br />
|Graphic EQ 3<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|161<br />
|Graphic EQ 4<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|162<br />
|Parametric EQ 3<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|163<br />
|Parametric EQ 4<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|164<br />
|Filter 3<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|165<br />
|Filter 4<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|166<br />
|Volume/Pan 2<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|167<br />
|Volume/Pan 3<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|168<br />
|Volume/Pan 4<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|-<br />
|169<br />
|Looper<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Available<br />
|-<br />
|170<br />
|Tone Match<br />
|true<br />
|Available<br />
|Available<br />
|Available<br />
|Unavailable<br />
|}<br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43326
MIDI SysEx
2017-05-21T18:56:29Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x07 Function ID (0x07)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (0x02)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x08 Function ID (0x08)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43325
MIDI SysEx
2017-05-21T18:53:31Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
The numbers below are the Model #<br />
<br />
* 0 Axe FX Standard<br />
* 1 Axe FX Ultra<br />
* 2 MFC101<br />
* 3 Axe FX II<br />
* 4 MFC101 mk3<br />
* 5 FX8<br />
* 6 Axe FX II XL<br />
* 7 Axe FX II XL+<br />
* 8 AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
The messages documented here are compatible between Axe-Fx II, Axe-Fx II XL, Axe-Fx II XL+ and AX8, FX8 messages are not documented at the moment<br />
<br />
Note, many examples on this page are using 3 for the Model #.<br />
<br />
All messages you send must be sent with checksums, but not all response messages will have a checksum, those documented here will specify if a checksum is not included.<br />
<br />
All Axe-Fx II/AX8 SysEx messages have the same HEADER as follows:<BR><br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model # <br />
</tt><br />
<br />
The byte after the Model # will always be the Function ID.<br />
<br />
The last byte of each message will be 0xF7, the checksum is the byte before 0xF7<br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#GET_GRID_LAYOUT_AND_ROUTING|GET_GRID_LAYOUT_AND_ROUTING]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#SET_SCENE_NUMBER|SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:[[#MIDI_SysEx:_Axe-Fx_II|HEADER BYTES]]<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==GET_GRID_LAYOUT_AND_ROUTING==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43324
MIDI SysEx
2017-05-21T18:28:23Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE|GET_CPU_USAGE]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter with it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameters of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many messages will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will be 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a response to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C).<br />
The next byte is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested is valid.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Response Function ID<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = get value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CPU % (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel (preset has changes that need to be saved) is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43323
MIDI SysEx
2017-05-21T18:18:59Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE_NUMBER|GET_CPU_USAGE_NUMBER]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, each parameter and it's value is returned in a separate message.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
This message will respond with a BATCH_LIST_REQUEST_START (function 0x32) confirming that the batch of messages will be sent and how many will be sent.<br />
<br />
After that message you will receive messages with function ID 0x01, these messages are identical to function 0x02 with the exception of the function ID being 0x01<br />
<br />
Once complete it will respond with BATCH_LIST_REQUEST_COMPLETE (function 0x33) confirming that they were all sent.<br />
<br />
Message 0x01 response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameteres of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many items will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a reponse to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C), the second byte after the 0x64 is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested has been complete.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Function being ackknowledged<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = query value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE_NUMBER==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CURRENT CPU USAGE (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43322
MIDI SysEx
2017-05-21T18:09:29Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_START|BATCH_LIST_REQUEST_START]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE_NUMBER|GET_CPU_USAGE_NUMBER]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, this message responds in 3 parts<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responses<br />
<br />
Part #1, when the hardware receives this message it will respond with message 0x32 confirming that it's about to send you a numbered set of messages,<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32 BATCH_LIST_REQUEST_START) <br />
:0xdd ID of function that it's replying to (in this case 0x01)<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Part # 2, after you receive message 0x32 you will receive a batch of messages with function ID 0x01 (the quantity of messages is determined by the "Response Length" bytes), each message represents a parameter for that block, the format of each one is identical to message 0x02 except for the Function ID.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
The string bytes after the parameter value bits is the label that is displayed for the knob, as you should know by now all parameter values range from 0 to 65534, the Axe FX II and AX8 editors don't display that instead they display labels like for example for rate of a modulation "345 ms", the string on this message is that label.<br />
<br />
Part # 3, once all the 0x01 messages have been sent by the hardware, you will receive another message (0x33) which confirms that all parameters available for editing where sent to you.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33 BATCH_LIST_REQUEST_COMPLETE)<br />
:0xdd ID of function that it's replying to (in this case it will be 0x02 even tho you sent function 0x01)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_START==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameteres of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many items will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x01 (on the AX8 the function ID will 0x02 even tho the request was for 0x01).<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a reponse to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C), the second byte after the 0x64 is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested has been complete.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Function being ackknowledged<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = query value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE_NUMBER==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CURRENT CPU USAGE (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43319
MIDI SysEx
2017-05-20T19:32:50Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x3C<br />
|[[#SET_PRESET_NUMBER|SET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_STARTING|BATCH_LIST_REQUEST_STARTING]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE_NUMBER|GET_CPU_USAGE_NUMBER]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will respond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, this message responds in 3 parts<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responses<br />
<br />
Part #1, when the hardware receives this message it will respond with message 0x32 confirming that it's about to send you a numbered set of messages,<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32 BATCH_LIST_REQUEST_STARTING) <br />
:0xdd ID of function that it's replying to (in this case 0x01)<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Part # 2, after you receive message 0x32 you will receive a batch of messages with function ID 0x01 (the quantity of messages is determined by the "Response Length" bytes), each message represents a parameter for that block, the format of each one is identical to message 0x02 except for the Function ID.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
The string bytes after the parameter value bits is the label that is displayed for the knob, as you should know by now all parameter values range from 0 to 65534, the Axe FX II and AX8 editors don't display that instead they display labels like for example for rate of a modulation "345 ms", the string on this message is that label.<br />
<br />
Part # 3, once all the 0x01 messages have been sent by the hardware, you will receive another message (0x33) which confirms that all parameters available for editing where sent to you.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33 BATCH_LIST_REQUEST_COMPLETE)<br />
:0xdd ID of function that it's replying to (in this case it will be 0x02 even tho you sent function 0x01)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_STARTING==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameteres of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many items will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x02.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a reponse to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C), the second byte after the 0x64 is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested has been complete.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Function being ackknowledged<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = query value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE_NUMBER==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CURRENT CPU USAGE (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43318
MIDI SysEx
2017-05-20T19:30:47Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#GET_PRESET_NAME|GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#GET_PRESET_NUMBER|GET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_STARTING|BATCH_LIST_REQUEST_STARTING]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE_NUMBER|GET_CPU_USAGE_NUMBER]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|-<br />
|0x3C<br />
|[[#MIDI_SET_PRESET_NUMBER|MIDI_SET_PRESET_NUMBER]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, this message responds in 3 parts<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responses<br />
<br />
Part #1, when the hardware receives this message it will respond with message 0x32 confirming that it's about to send you a numbered set of messages,<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32 BATCH_LIST_REQUEST_STARTING) <br />
:0xdd ID of function that it's replying to (in this case 0x01)<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Part # 2, after you receive message 0x32 you will receive a batch of messages with function ID 0x01 (the quantity of messages is determined by the "Response Length" bytes), each message represents a parameter for that block, the format of each one is identical to message 0x02 except for the Function ID.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
The string bytes after the parameter value bits is the label that is displayed for the knob, as you should know by now all parameter values range from 0 to 65534, the Axe FX II and AX8 editors don't display that instead they display labels like for example for rate of a modulation "345 ms", the string on this message is that label.<br />
<br />
Part # 3, once all the 0x01 messages have been sent by the hardware, you will receive another message (0x33) which confirms that all parameters available for editing where sent to you.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33 BATCH_LIST_REQUEST_COMPLETE)<br />
:0xdd ID of function that it's replying to (in this case it will be 0x02 even tho you sent function 0x01)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_STARTING==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameteres of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many items will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x02.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a reponse to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C), the second byte after the 0x64 is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested has been complete.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Function being ackknowledged<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = query value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE_NUMBER==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CURRENT CPU USAGE (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will repond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43317
MIDI SysEx
2017-05-20T19:29:21Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#MIDI_GET_PRESET_NAME|MIDI_GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#MIDI_GET_PRESET_NUMBER|MIDI_GET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_STARTING|BATCH_LIST_REQUEST_STARTING]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE_NUMBER|GET_CPU_USAGE_NUMBER]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|-<br />
|0x3C<br />
|[[#MIDI_SET_PRESET_NUMBER|MIDI_SET_PRESET_NUMBER]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==MIDI_GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, this message responds in 3 parts<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responses<br />
<br />
Part #1, when the hardware receives this message it will respond with message 0x32 confirming that it's about to send you a numbered set of messages,<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32 BATCH_LIST_REQUEST_STARTING) <br />
:0xdd ID of function that it's replying to (in this case 0x01)<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Part # 2, after you receive message 0x32 you will receive a batch of messages with function ID 0x01 (the quantity of messages is determined by the "Response Length" bytes), each message represents a parameter for that block, the format of each one is identical to message 0x02 except for the Function ID.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
The string bytes after the parameter value bits is the label that is displayed for the knob, as you should know by now all parameter values range from 0 to 65534, the Axe FX II and AX8 editors don't display that instead they display labels like for example for rate of a modulation "345 ms", the string on this message is that label.<br />
<br />
Part # 3, once all the 0x01 messages have been sent by the hardware, you will receive another message (0x33) which confirms that all parameters available for editing where sent to you.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33 BATCH_LIST_REQUEST_COMPLETE)<br />
:0xdd ID of function that it's replying to (in this case it will be 0x02 even tho you sent function 0x01)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_STARTING==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameteres of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many items will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x02.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a reponse to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C), the second byte after the 0x64 is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested has been complete.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Function being ackknowledged<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = query value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE_NUMBER==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CURRENT CPU USAGE (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will repond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43316
MIDI SysEx
2017-05-20T19:27:52Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_CONTROLLER|DISCONNECT_FROM_CONTROLLER]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#MIDI_GET_PRESET_NAME|MIDI_GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#MIDI_GET_PRESET_NUMBER|MIDI_GET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_STARTING|BATCH_LIST_REQUEST_STARTING]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE_NUMBER|GET_CPU_USAGE_NUMBER]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|-<br />
|0x3C<br />
|[[#MIDI_SET_PRESET_NUMBER|MIDI_SET_PRESET_NUMBER]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_CONTROLLER)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
==DISCONNECT_FROM_CONTROLLER==<br />
This message should be sent when you quit an app connected to the Axe Fx if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==MIDI_GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, this message responds in 3 parts<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responses<br />
<br />
Part #1, when the hardware receives this message it will respond with message 0x32 confirming that it's about to send you a numbered set of messages,<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32 BATCH_LIST_REQUEST_STARTING) <br />
:0xdd ID of function that it's replying to (in this case 0x01)<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Part # 2, after you receive message 0x32 you will receive a batch of messages with function ID 0x01 (the quantity of messages is determined by the "Response Length" bytes), each message represents a parameter for that block, the format of each one is identical to message 0x02 except for the Function ID.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
The string bytes after the parameter value bits is the label that is displayed for the knob, as you should know by now all parameter values range from 0 to 65534, the Axe FX II and AX8 editors don't display that instead they display labels like for example for rate of a modulation "345 ms", the string on this message is that label.<br />
<br />
Part # 3, once all the 0x01 messages have been sent by the hardware, you will receive another message (0x33) which confirms that all parameters available for editing where sent to you.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33 BATCH_LIST_REQUEST_COMPLETE)<br />
:0xdd ID of function that it's replying to (in this case it will be 0x02 even tho you sent function 0x01)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_STARTING==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameteres of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many items will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x02.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a reponse to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C), the second byte after the 0x64 is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested has been complete.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Function being ackknowledged<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = query value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE_NUMBER==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CURRENT CPU USAGE (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will repond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43315
MIDI SysEx
2017-05-20T19:23:59Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#GET_FIRMWARE_VERSION|GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#MIDI_GET_PRESET_NAME|MIDI_GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#MIDI_GET_PRESET_NUMBER|MIDI_GET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_STARTING|BATCH_LIST_REQUEST_STARTING]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_APP|DISCONNECT_FROM_APP]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE_NUMBER|GET_CPU_USAGE_NUMBER]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|-<br />
|0x3C<br />
|[[#MIDI_SET_PRESET_NUMBER|MIDI_SET_PRESET_NUMBER]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_APP)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==MIDI_GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, this message responds in 3 parts<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responses<br />
<br />
Part #1, when the hardware receives this message it will respond with message 0x32 confirming that it's about to send you a numbered set of messages,<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32 BATCH_LIST_REQUEST_STARTING) <br />
:0xdd ID of function that it's replying to (in this case 0x01)<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Part # 2, after you receive message 0x32 you will receive a batch of messages with function ID 0x01 (the quantity of messages is determined by the "Response Length" bytes), each message represents a parameter for that block, the format of each one is identical to message 0x02 except for the Function ID.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
The string bytes after the parameter value bits is the label that is displayed for the knob, as you should know by now all parameter values range from 0 to 65534, the Axe FX II and AX8 editors don't display that instead they display labels like for example for rate of a modulation "345 ms", the string on this message is that label.<br />
<br />
Part # 3, once all the 0x01 messages have been sent by the hardware, you will receive another message (0x33) which confirms that all parameters available for editing where sent to you.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33 BATCH_LIST_REQUEST_COMPLETE)<br />
:0xdd ID of function that it's replying to (in this case it will be 0x02 even tho you sent function 0x01)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_STARTING==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameteres of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many items will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x02.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a reponse to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C), the second byte after the 0x64 is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested has been complete.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Function being ackknowledged<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_APP==<br />
This message should be sent when you quit an app connected to the Hardware if your app sent the GET_FIRMWARE_VERSION message, see the GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = query value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE_NUMBER==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CURRENT CPU USAGE (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will repond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43314
MIDI SysEx
2017-05-20T19:23:15Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#GET_MODIFIER_VALUE, SET_MODIFIER_VALUE|GET_MODIFIER_VALUE, SET_MODIFIER_VALUE]]<br />
|-<br />
|0x08<br />
|[[#MIDI_GET_FIRMWARE_VERSION|MIDI_GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#MIDI_GET_PRESET_NAME|MIDI_GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#MIDI_GET_PRESET_NUMBER|MIDI_GET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_STARTING|BATCH_LIST_REQUEST_STARTING]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_APP|DISCONNECT_FROM_APP]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE_NUMBER|GET_CPU_USAGE_NUMBER]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|-<br />
|0x3C<br />
|[[#MIDI_SET_PRESET_NUMBER|MIDI_SET_PRESET_NUMBER]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MODIFIER_VALUE, SET_MODIFIER_VALUE==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==MIDI_GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_APP)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==MIDI_GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, this message responds in 3 parts<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responses<br />
<br />
Part #1, when the hardware receives this message it will respond with message 0x32 confirming that it's about to send you a numbered set of messages,<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32 BATCH_LIST_REQUEST_STARTING) <br />
:0xdd ID of function that it's replying to (in this case 0x01)<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Part # 2, after you receive message 0x32 you will receive a batch of messages with function ID 0x01 (the quantity of messages is determined by the "Response Length" bytes), each message represents a parameter for that block, the format of each one is identical to message 0x02 except for the Function ID.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
The string bytes after the parameter value bits is the label that is displayed for the knob, as you should know by now all parameter values range from 0 to 65534, the Axe FX II and AX8 editors don't display that instead they display labels like for example for rate of a modulation "345 ms", the string on this message is that label.<br />
<br />
Part # 3, once all the 0x01 messages have been sent by the hardware, you will receive another message (0x33) which confirms that all parameters available for editing where sent to you.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33 BATCH_LIST_REQUEST_COMPLETE)<br />
:0xdd ID of function that it's replying to (in this case it will be 0x02 even tho you sent function 0x01)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_STARTING==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameteres of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many items will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x02.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a reponse to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C), the second byte after the 0x64 is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested has been complete.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Function being ackknowledged<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: MIDI_GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_APP==<br />
This message should be sent when you quit an app connected to the Hardware if your app sent the MIDI_GET_FIRMWARE_VERSION message, see the MIDI_GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = query value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE_NUMBER==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CURRENT CPU USAGE (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will repond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx
https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx&diff=43313
MIDI SysEx
2017-05-20T19:20:50Z
<p>Neroroxxx: </p>
<hr />
<div>''The information on this page supplements the official manuals.''<br />
<br />
[[image:MIDI.png|link=]]<br />
__TOC__<br />
=MIDI SysEx: System Exclusive messages=<br />
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II. <br />
<br />
To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI read this article]. To learn more about SysEx, [http://electronicmusic.wikia.com/wiki/System_exclusive read this article].<br />
<br />
Fractal Audio's SysEx implementation is discussed [http://forum.fractalaudio.com/threads/sysex-0x02-GET_BLOCK_PARAMETER_VALUE.123480/ here].<br />
<br />
=MIDI SysEx: Standard/Ultra=<br />
Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: [http://www.gmarts.org/html/axefx_ultra_sysex_1005.html here].<br />
<br />
Information about SysEx commands for retrieving Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html here].<br />
<br />
=MIDI SysEx: SysEx Model number per device=<br />
* 0x00 (0) Axe FX Standard<br />
* 0x01 (1) Axe FX Ultra<br />
* 0x02 (2) MFC101<br />
* 0x03 (3) Axe FX II<br />
* 0x04 (4) MFC101 mk3<br />
* 0x05 (5) FX8<br />
* 0x06 (6) Axe FX II XL<br />
* 0x07 (7) Axe FX II XL+<br />
* 0x08 (8) AX8<br />
<br />
=MIDI SysEx: Axe-Fx II=<br />
Many Axe-Fx II SysEx messages are similar to Standard/Ultra messages documented [http://wiki.fractalaudio.com/index.php?title=Axe-Fx_SysEx_Documentation here].<br />
<br />
Model ID is 3. XL+ Model ID is 7. Note, examples on this page are using 3 for the ID.<br />
<br />
All messages must be sent with checksums.<br />
<br />
Responses for some key messages are different. Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here].<br />
<br />
All Axe-Fx II SysEx messages have the same header as follows:<BR><br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model # (Axe-Fx II = 0x03, Axe-Fx II XL+ = 0x07)<br />
:0xdd Function ID<br />
</tt><br />
<br />
{| border="1" cellpadding="20" cellspacing="0" width="500"<br />
|+ align="bottom" style="color:#e76700;" |''Function IDs''<br />
|-<br />
! Function ID<br />
! Function Name<br />
|-<br />
|0x02<br />
|[[#GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE|GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE]]<br />
|-<br />
|0x07<br />
|[[#MIDI_GET_MODIFIER, MIDI_SET_MODIFIER|MIDI_GET_MODIFIER, MIDI_SET_MODIFIER]]<br />
|-<br />
|0x08<br />
|[[#MIDI_GET_FIRMWARE_VERSION|MIDI_GET_FIRMWARE_VERSION]]<br />
|-<br />
|0x0D<br />
|[[#TUNER_INFO|TUNER_INFO]]<br />
|-<br />
|0x0E<br />
|[[#GET_PRESET_BLOCKS_FLAGS|GET_PRESET_BLOCKS_FLAGS]]<br />
|-<br />
|0x0F<br />
|[[#MIDI_GET_PRESET_NAME|MIDI_GET_PRESET_NAME]]<br />
|-<br />
|0x10<br />
|[[#MIDI_TEMPO_BEAT|MIDI_TEMPO_BEAT]]<br />
|-<br />
|0x14<br />
|[[#MIDI_GET_PRESET_NUMBER|MIDI_GET_PRESET_NUMBER]]<br />
|-<br />
|0x20<br />
|[[#MIDI_GET_ROUTING_GRID_LAYOUT|MIDI_GET_ROUTING_GRID_LAYOUT]]<br />
|-<br />
|0x23<br />
|[[#MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS|MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS]]<br />
|-<br />
|0x29<br />
|[[#MIDI_SET_SCENE_NUMBER|MIDI_SET_SCENE_NUMBER]]<br />
|-<br />
|0x01<br />
|[[#GET_BLOCK_PARAMETERS_LIST|GET_BLOCK_PARAMETERS_LIST]]<br />
|-<br />
|0x32<br />
|[[#BATCH_LIST_REQUEST_STARTING|BATCH_LIST_REQUEST_STARTING]]<br />
|-<br />
|0x33<br />
|[[#BATCH_LIST_REQUEST_COMPLETE|BATCH_LIST_REQUEST_COMPLETE]]<br />
|-<br />
|0x64<br />
|[[#MULTIPURPOSE_RESPONSE|MULTIPURPOSE_RESPONSE]]<br />
|-<br />
|0x21<br />
|[[#FRONT_PANEL_CHANGE_DETECTED|FRONT_PANEL_CHANGE_DETECTED]]<br />
|-<br />
|0x42<br />
|[[#DISCONNECT_FROM_APP|DISCONNECT_FROM_APP]]<br />
|-<br />
|0x11<br />
|[[#GET_BLOCK_XY, SET_BLOCK_XY|GET_BLOCK_XY, SET_BLOCK_XY]]<br />
|-<br />
|0x17<br />
|[[#GET_MIDI_CHANNEL|GET_MIDI_CHANNEL]]<br />
|-<br />
|0x13<br />
|[[#GET_CPU_USAGE_NUMBER|GET_CPU_USAGE_NUMBER]]<br />
|-<br />
|0x2A<br />
|[[#GET_PRESET_EDITED_STATUS|GET_PRESET_EDITED_STATUS]]<br />
|-<br />
|0x3C<br />
|[[#MIDI_SET_PRESET_NUMBER|MIDI_SET_PRESET_NUMBER]]<br />
|}<br />
<br />
==GET_BLOCK_PARAMETER_VALUE, SET_BLOCK_PARAMETER_VALUE==<br />
<br />
This message will get or set the value of the specified block parameter, this value ranges from 0 to 65534, the response message will contain a string which is the label displayed by the Axe Fx II and it's editor, for example the Bass parameter of the AMP block may have a value of 32767 but the label will be "5.00", the value may be 65534 but the label will be "10.00".<br />
<br />
Also many parameters have a low/high limit and step, for example the "Voices" parameter of the CHORUS block will have a low limit: 2, high limit: 8 and step: 2 that means you can send values of 2,4,6,8, if you send a value lower than 2 it will set the parameter to 2, if it's higher than 8 it will set the value to 8.<br />
<br />
The Effect Type selector is also a parameter, for example on the AMP block the effect type is parameter 0, most blocks with an effect type use parameter 0 as the effect type but not all, you should monitor the MIDI messages between the Axe FX II and Axe-Edit to make sure which parameter is which.<br />
<br />
Bypassing/Engaging a Block is also done with this function with parameter 255, send value 0 to Engage, 1 to Bypass.<br />
<br />
When you are getting a parameter value you still have to inclue a parameter value with your message but this value can be 0.<br />
<br />
See the bottom of this page for Block IDs and functions to convert these bytes to decimal and vice-versa.<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd <br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_MODIFIER, MIDI_SET_MODIFIER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x07 Function ID (7)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0x00 0=query value, 1=set value <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x02 Function ID (2)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd modifier parameter selector ID bits 6-0<br />
:0xdd 0<br />
:0xdd modifier value bits 6-0<br />
:0xdd modifier value bits 13-7<br />
:0xdd modifier value bits 15-14<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Modifier Parameter Selector IDs:<br />
<tt><br />
:0x0 modifier source<br />
:0x1 min<br />
:0x2 max<br />
:0x3 start<br />
:0x4 mid<br />
:0x5 end<br />
:0x6 slope<br />
:0x7 damping<br />
:0x8 ?<br />
:0x9 ?<br />
:0xA auto engage<br />
:0xB pc reset<br />
:0xC off val<br />
:0xD scale<br />
:0xE offset<br />
</tt><br />
<br />
==MIDI_GET_FIRMWARE_VERSION==<br />
This message responds with the firmware version, also this acts as a "Greeting" message, only after the Axe FX II has received a firmware version request it will start sending message 0x21 (FRONT_PANEL_CHANGE_DETECTED), if you're writing an app or foot controller that will need to be in sync then the first thing you want to do is request the firmware version so that message 0x21 is sent when changes happen on the front panel. Keep in mind, if you do this you will need to "Disconnect" from the hardware when your app closes by sending message 0x42 (DISCONNECT_FROM_APP)<br />
<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x08 Function ID (8)<br />
:0xdd Firmware Version major number <br />
:0xdd Firmware Version minor number <br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==TUNER_INFO==<br />
This message is broadcast when the Tuner is engaged. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0D Function ID (0x0D)<br />
:0xdd Note (0=A; 1=Bb; 2=B; etc.)<br />
:0xdd String number (0=high E string; 5=low E string)<br />
:0xdd Tuner data (value of 63 indicates 'perfectly in tune')<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_BLOCKS_FLAGS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format: (response does not contain a checksum)<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0E Function ID (0x0E)<br />
:Information about each effect block in preset follows, using 5 bytes for each effect block in the preset<br />
:0xdd Flags Byte (byte 1 of five-byte chunk)<br />
::Bit 0: 0=Bypassed, 1=Engaged<br />
::Bit 1: 0=Y, 1=X <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:0xdd IA CC Number LSB (byte 2 of five-byte chunk)<br />
::Bit 0:<br />
::Bit 1: IA_CC_Number Bit 0 <br />
::Bit 2: IA_CC_Number Bit 1 <br />
::Bit 3: IA_CC_Number Bit 2 <br />
::Bit 4: IA_CC_Number Bit 3 <br />
::Bit 5: IA_CC_Number Bit 4 <br />
::Bit 6: IA_CC_Number Bit 5 <br />
:0xdd IA CC Number MSB (byte 3 of five-byte chunck)<br />
::Bit 0: IA_CC_Number Bit 6<br />
::Bit 1: IA_CC_Number Bit 7 <br />
::Bit 2: <br />
::Bit 3: <br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6:<br />
:0xdd Effect ID LSB (byte 4 of five-byte chunk)<br />
::Bit 0: <br />
::Bit 1: <br />
::Bit 2: <br />
::Bit 3: Effect_ID Bit 0<br />
::Bit 4: Effect_ID Bit 1<br />
::Bit 5: Effect_ID Bit 2<br />
::Bit 6: Effect_ID Bit 3<br />
:0xdd Effect ID MSB (byte 5 of five-byte chunck)<br />
::Bit 0: Effect_ID Bit 4<br />
::Bit 1: Effect_ID Bit 5 <br />
::Bit 2: Effect_ID Bit 6<br />
::Bit 3: Effect_ID Bit 7<br />
::Bit 4: <br />
::Bit 5: <br />
::Bit 6: <br />
:... (Additional 5-byte chunks, one for each block in the preset)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
<br />
The following C++ code will iterate thru the sysex message array, take each five-byte chunk and determine the state flags, cc and block id.<br />
<tt><br />
<pre><br />
// "message" is the entire sysex array, "lengthOfMessage" is the length of that array<br />
<br />
for(int i = 6; i < lengthOfMessage-1 ; i += 5){<br />
byte isBypassed = (message[i] == 3 || message[i] == 1) ? false : true;<br />
byte isX = (message[i] == 3 || message[i] == 2) ? true : false;<br />
byte cc = ((message[i+1] & 0x7E) >> 1) + ((message[i+2] & 3) << 6);<br />
byte id = ((message[i+3] & 0x78) >> 3) + ((message[i+4] & 0x0F) << 4);<br />
// Run the rest of your code here<br />
}<br />
</pre><br />
</tt><br />
<br />
<br />
==MIDI_GET_PRESET_NAME==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x0F Function ID (0x0F)<br />
:0xdd null-terminated string byte0 <br />
:0xdd byte1 <br />
:...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_TEMPO_BEAT==<br />
Tempo beat or 'pulse' message sent by Axe-FX II. Note that the Axe-FX II does not include the checksum byte in this message:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x10 Function ID (0x10)<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_PRESET_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x14 Function ID (0x14)<br />
:0xdd Preset Number bits 6-0 <br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_GET_ROUTING_GRID_LAYOUT==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x20 Function ID (0x20)<br />
:Information about each grid location follows. The first 4-byte chunk corresponds to the top-left grid location (column 1, row 1). The next four-byte chunk corresponds to the grid location at column 1, row 2. Following this pattern, each of the 48 grid locations are described.<br />
::0xdd effect ID bits 6-0<br />
::0xdd effect ID bits 13-7<br />
::0xdd routing flags<br />
:::Bit 0: connect row 1 to effect input<br />
:::Bit 1: connect row 2 to effect input<br />
:::Bit 2: connect row 3 to effect input<br />
:::Bit 3: connect row 4 to effect input<br />
:::Bit 4: <br />
:::Bit 5: <br />
:::Bit 6: <br />
::0xdd (unused?)<br />
:... (47 additional four-byte chunks)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_LOOPER_STATUS_ENABLE, MIDI_LOOPER_STATUS==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd 0=Disable looper status messages, 1=Enable looper status messages<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x23 Function ID (0x23)<br />
:0xdd Looper Status Bits<br />
::Bit 0: Record<br />
::Bit 1: Play <br />
::Bit 2: Once<br />
::Bit 3: Overdub<br />
::Bit 4: Reverse<br />
::Bit 5: Half<br />
::Bit 6: Undo <br />
:0xdd Looper Position (range: 0 to 99)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_SCENE_NUMBER==<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
Response format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0x03 Model #<br />
:0x29 Function ID (0x29)<br />
:0xdd Scene Number (range: 0 to 7) <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET==<br />
:Function number: 14<br />
:Example: F0 0 1 74 3 14 0 1 13 0 FF --> to set the current preset (edit buffer) to preset 0 (1 if DISPLAY OFFSET activated)<br />
:F0 0 1 74 3 14 1 0 13 0 FF --> to set the current preset (edit buffer) to preset 128 (129 if DISPLAY OFFSET activated)<br />
:Send from AXE-FX to AXE-EDIT and MFC-101<br />
<br />
==GET_BLOCK_PARAMETERS_LIST==<br />
This function will get you a list of all the parameters values of a specified block, this message responds in 3 parts<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Responses<br />
<br />
Part #1, when the hardware receives this message it will respond with message 0x32 confirming that it's about to send you a numbered set of messages,<br />
Message format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32 BATCH_LIST_REQUEST_STARTING) <br />
:0xdd ID of function that it's replying to (in this case 0x01)<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Part # 2, after you receive message 0x32 you will receive a batch of messages with function ID 0x01 (the quantity of messages is determined by the "Response Length" bytes), each message represents a parameter for that block, the format of each one is identical to message 0x02 except for the Function ID.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x01 Function ID (0x01)<br />
:0xdd block ID bits 6-0<br />
:0xdd block ID bits 13-7<br />
:0xdd parameter ID bits 6-0<br />
:0xdd parameter ID bits 13-7<br />
:0xdd parameter value bits 6-0<br />
:0xdd parameter value bits 13-7<br />
:0xdd parameter value bits 15-14<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd<br />
:0xdd null-terminated string byte0<br />
:0xdd byte1<br />
...<br />
:0x00 null character<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
The string bytes after the parameter value bits is the label that is displayed for the knob, as you should know by now all parameter values range from 0 to 65534, the Axe FX II and AX8 editors don't display that instead they display labels like for example for rate of a modulation "345 ms", the string on this message is that label.<br />
<br />
Part # 3, once all the 0x01 messages have been sent by the hardware, you will receive another message (0x33) which confirms that all parameters available for editing where sent to you.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33 BATCH_LIST_REQUEST_COMPLETE)<br />
:0xdd ID of function that it's replying to (in this case it will be 0x02 even tho you sent function 0x01)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_STARTING==<br />
This message is sent to you when you request a list of certain items, this includes when you request a list of parameteres of a block (GET_BLOCK_PARAMETERS_LIST) or when you request a list of factory/user cab names, you can treat this message as confirmation that those parameters are about to be sent to you. The "Response Length" below represents how many items will be sent as part of that batch.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x32 Function ID (0x32)<br />
:0xdd ID of function that it's replying to<br />
:0xdd Response Length bits 6-0<br />
:0xdd Response Length bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==BATCH_LIST_REQUEST_COMPLETE==<br />
This message is sent to you after a batch of messages you requested was sent to you and it's complete. For Example if you request GET_BLOCK_PARAMETERS_LIST, this message will reply confirming that the request has been complete.<br />
<br />
The "ID of function that it's replying to" is the ID of the function that requested the list, in the case of GET_BLOCK_PARAMETERS_LIST which is function 0x01 it will show this byte as 0x02.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x33 Function ID (0x33)<br />
:0xdd ID of function that it's replying to<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MULTIPURPOSE_RESPONSE==<br />
This message is sent by the hardware as a reponse to certain requests, the first byte after the function id is the requested function id (for example if you change the preset using function id 0x3C the first byte after 0x64 will be 0x3C), the second byte after the 0x64 is a response code for the requested function, this code can mean different things, it could mean that the message you first sent had an error, usually if the response code is 0 it means that the task you requested has been complete.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x64 Function ID (0x64)<br />
:0xdd Function being ackknowledged<br />
:0xdd Response Code<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==FRONT_PANEL_CHANGE_DETECTED==<br />
This message is sent when to notify you that something may have changed on the Hardware, this is the message that causes Axe-Edit/AX8-Edit to "Pause Communication". This message is sent to notify the editor that something has changed and that it should reload the data for that preset, hence why you get the PAUSE overlay on the editor, when you click that overlay the Editor will re-request all the preset data it needs to keep the editor in sync with the hardware.<br />
<br />
For example if you select a block on the Axe FX II say the Filter block and you change the gain, then Axe FX will then send this message.<br />
<br />
This message is sent about 400ms after the action was complete.<br />
<br />
Another example, on the AX8 if you use the Amp Controls on the front panel to change the Gain then you will receive this message. This message is also sent if you press a footswitch that changes a scene/preset/block bypass/XY.<br />
<br />
This message is only sent by the hardware if you requested the Firmware version, Read more about this on the "MIDI SysEx: MIDI_GET_FIRMWARE_VERSION" section<br />
<br />
Message format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x21 Function ID (0x21)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==DISCONNECT_FROM_APP==<br />
This message should be sent when you quit an app connected to the Hardware if your app sent the MIDI_GET_FIRMWARE_VERSION message, see the MIDI_GET_FIRMWARE_VERSION section for more info<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x42 Function ID (0x42)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_BLOCK_XY, SET_BLOCK_XY==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = set to X, 1 = set to Y<br />
:0xdd 0 = query value, 1 = set value<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<tt><br />
<br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x11 Function ID (0x11)<br />
:0xdd effect ID bits 6-0<br />
:0xdd effect ID bits 13-7<br />
:0xdd 0 = effect is X, 1 = effect is Y<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_MIDI_CHANNEL==<br />
This message message replies with the midi channel set under SETUP > I/O > MIDI > MIDI CHANNEL<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x17 Function ID (0x17)<br />
:0xdd Midi Channel (single byte)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_CPU_USAGE_NUMBER==<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x13 Function ID (0x13)<br />
:0xdd CURRENT CPU USAGE (single byte from 0 to 100)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==GET_PRESET_EDITED_STATUS==<br />
The Axe FX and AX8 both have an LED on the front panel labeled EDITED, this LED goes on whenever you make any changes to your preset that have not been saved. This message will request that status. It will reply with 1 if the LED on the front panel is on and 0 if it's off<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
Response format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x2A Function ID (0x2A)<br />
:0xdd 0 = NO, 1 = YES<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
==MIDI_SET_PRESET_NUMBER==<br />
This message sets a preset number of your choice, it will repond with message 0x64 to confirm.<br />
<br />
Message format:<br />
<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 Manf. ID byte0<br />
:0x01 Manf. ID byte1<br />
:0x74 Manf. ID byte2<br />
:0xdd Model #<br />
:0x3C Function ID (0x3C)<br />
:0xdd Preset Number bits 6-0<br />
:0xdd Preset Number bits 13-7<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
On the Axe FX the first byte for the preset number is the bank (with an index of 0) and the second byte is the preset number in that bank from 0 to 127. for example if you are on bank A the first byte is 0, bank B then first byte is 1 and so on. if you are on preset 10 then the preset byte is 9, etc<br />
If you are on Bank C preset 50 then you want your first byte to be 2 and the second one to be 49 or in Hex 0x02, 0x31<br />
<br />
=MIDI SysEx: calculating the SysEx checksum=<br />
As mentioned above, the Axe-FX II units require a checksum to be added to the end of the SysEx string that is sent to it (before the terminating F7 byte) as a verification step.<br />
<br />
In order to calculate the checksum, you basically have to XOR every byte from the start of the SysEx message, up to the character BEFORE the terminating F7 byte. For example, to send the following SysEx message (to fetch a preset name):<br />
<br />
<tt>F0 00 01 74 03 0F F7</tt><br />
<br />
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:<br />
<br />
<tt>0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''</tt><br />
<br />
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):<br />
<br />
<tt>0x89 & 0x7F = '''0x09'''</tt><br />
<br />
And, we add this byte (actually, a septet now) to the end of the SysEx string, BEFORE the terminating F7:<br />
<br />
<tt>F0 00 01 74 03 0F '''09''' F7</tt><br />
<br />
Obviously, in a 'static' SysEx message like above, you do not have to recalculate the checksum each time as it will always be '09' as the rest of the message does not change, but if you are sending a SysEx string to change a parameter value etc. then you will have to calculate the checksum on the fly as byte values towards the end of the SysEx string will be different each time.<br />
<br />
=MIDI SysEx: obtaining parameter values=<br />
<br />
The old Standard/Ultra devices used to store the parameter values on *most* knobs as 0-254. This was split into two bytes, XX YY where XX was the lowest 4 bits of the value, and YY was the highest 4 bits. Pretty simple.<br />
<br />
The new Axe-II now has more granular control over *most* knobs, with the values going from 0-65534. This requires a full 16 bits to store. The problem is that the MIDI specifications means you can only transmit values using 7 bits as the highest bit of each byte must be a zero.<br />
<br />
To get around this, the Axe-II uses THREE bytes to transmit the values XX YY ZZ where XX is the lowest 7 bits of the data, YY is the 8th to the 14th bit of the data, and ZZ is the remaining top two bits of the data.<br />
<br />
So, if you had the value 52421 on a knob, then this would be represented by the 16 bits: 1100110011000101<br />
<br />
If you split this into segments of length 2/7/7 to store in ZZ/YY/XX: 11 0011001 1000101<br />
<br />
So XX gets the last segment: 01000101<br />
And YY gets the middle segment: 00011001<br />
And ZZ gets the first segment: 00000011<br />
<br />
You will also have to back-calculate the respective knob values to the 16 bit values. For example, a knob that goes from 0 - 10, 0 would of course be 0, but 10 would be 65534. From there, you would work out that 5 is 32767 and 7 would be about 45871 etc.<br />
<br />
=MIDI SysEx: loading IRs=<br />
<br />
The information below was provided by former forum member LMO.<br />
<br />
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:<br />
<br />
'''MIDI_START_IR_DOWNLOAD'''<br />
<br />
Prepare the Axe-Fx II to receive impulse response data<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7A function ID<br />
:0x20 <br />
:0x00<br />
:0x10<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_G2_IR_DATA'''<br />
<br />
There are 64 SysEx messages, each containing 32 chunks of data. Each chunk consists of five<br />
bytes and can hold either four text characters or one 32-bit IR data sample.<br />
<br />
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and <br />
24 chunks of IR data. The subsequent 63 data messages each contain 32 data samples for a <br />
total of 2040 samples.<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7B function ID<br />
:0x20 <br />
:0x00 <br />
:0xdd data chunk byte 0<br />
:0xdd data chunk byte 1<br />
:0xdd data chunk byte 2<br />
:0xdd data chunk byte 3<br />
:0xdd data chunk byte 4<br />
:--- 31 additional five byte data chunks ---<br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''MIDI_CLOSE_IR_DOWNLOAD'''<br />
<br />
Terminate the IR download sequence<br />
<br />
Message Format:<br />
<tt><br />
:0xF0 sysex start<br />
:0x00 manufacturing ID byte 0<br />
:0x01 manufacturing ID byte 1<br />
:0x74 manufacturing ID byte 2<br />
:0x03 model number<br />
:0x7C function ID<br />
:0xdd encoded checksum byte 0 for IR data <br />
:0xdd encoded checksum byte 1 for IR data <br />
:0xdd encoded checksum byte 2 for IR data <br />
:0xdd encoded checksum byte 3 for IR data <br />
:0xdd encoded checksum byte 4 for IR data <br />
:0xdd checksum<br />
:0xF7 sysex end<br />
</tt><br />
<br />
'''Data Chunk Encoding Scheme'''<br />
<br />
The data encoding scheme translates four octets into five septets. Each septet occupies the <br />
lower seven bits of a byte, with the most significant bit set to 0. <br />
<br />
:* octet is one byte containing 8 bits of data<br />
:* septet is one byte containing 7 bits of data<br />
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8 (data[3] & 0xFF;<br />
:* convert four octets to five septets<br />
:septet[0] = byte_chunk & 0xFF;<br />
:septet[1] = byte_chunk >> 7 & 0xFF;<br />
:septet[2] = byte_chunk >> 14 & 0xFF;<br />
:septet[3] = byte_chunk >> 21 & 0xFF;<br />
:septet[4] = byte_chunk >> 28 & 0xFF;<br />
<br />
=MIDI Sysex: converting bytes to decimal and vise versa and more=<br />
<br />
All functions below written in C++<br />
<br />
The following are for each 5 byte chunk of message 0x0E (GET_PRESET_BLOCKS_FLAGS)<br />
<br />
This function returns true if the block is in X state or false if the block is in Y state<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockX(byte x){<br />
if(x==0x03||x==0x02){<br />
return true;<br />
}<br />
return false;<br />
}<br />
</pre><br />
<br />
This function returns true if the block is bypassed, false if it's not<br />
x is the first byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
bool isBlockBypassed(byte x){<br />
if(x==0x03||x==0x01){<br />
return false;<br />
}<br />
return true;<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's bypass CC (IA CC Number LSB/MSB) into a decimal number<br />
LSB is the second byte and MSB is the third byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int toBlockCC(byte LSB, byte MSB){<br />
return ((LSB & 0x7E) >> 1) + ((MSB & 3) << 6);<br />
}<br />
</pre><br />
<br />
This function converts the 2 bytes for the block's ID (Effect ID LSB/MSB) into a decimal number<br />
LSB is the fourth byte and MSB is the fifth byte of each 5 byte chunk of message 0x0E<BR><br />
<pre><br />
int blockID(byte LSB, byte MSB){<br />
return ((LSB & 0x78) >> 3) + ((MSB & 0x0F) << 4);<br />
}<br />
</pre><br />
<br />
This function converts the effect ID bytes OR the parameter ID bytes into a decimal number<BR><br />
<pre><br />
int bytesToInt(byte byte1, byte byte2){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7);<br />
}<br />
<pre><br />
<br />
The reverse of the above to turn a decimal number into 2 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = (x & 0x7F);<br />
<br />
byte byte2 = ((x >> 7) & 0x7F);<br />
</pre><br />
<br />
This function converts the 3 parameter value bytes on message (0x02) into a decimal number<BR><br />
<pre><br />
int parameterValueBytesToInt(byte byte1, byte byte2, byte byte3){<br />
return (byte1 & 0x7F) | ((byte2 & 0x7F)<<7) | ((byte3 & 0x7F)<<14);<br />
}<br />
</pre><br />
<br />
The reverse of the above to turn a decimal number into 3 bytes where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x & 0x7F;<br />
<br />
byte byte2 = (x >> 7) & 0x7F;<br />
<br />
byte byte3 = (x >> 14) & 0x7F);<br />
</pre><br />
<br />
To convert a decimal number into the 2 bytes for a preset change, where x is the decimal number<BR><br />
<pre><br />
byte byte1 = x >> 7;<br />
<br />
byte byte2 = x & 0x7F;<br />
</pre><br />
<br />
To convert the 2 bytes received from a preset change to a decimal number:<br />
<br />
Axe FX II<br />
<pre><br />
int x = (byte1 & 0x7F) << 7 | byte2;<br />
</pre><br />
<br />
AX8<br />
<pre><br />
int x = (byte1 & 0x7F) | ((byte2 & 0x7F) << 7);<br />
</pre><br />
<br />
To convert the decimal preset number into a Bank/Preset set. This number ranges from 0 to 383 on the Axe FX II, 0 to 767 on the XL/+ and 0 to 511 on the AX8<br />
<br />
Axe FX II or later, where x is the decimal number from 0 to 383/767<BR><br />
<pre><br />
byte bankNumber = floor(x / 128); // banks are labeled A,B,C,D,E,F where bank A is 0 and bank F is 5<br />
<br />
byte presetNumber = x - (bankNumber*128); // preset number with index of 0, to display offset it to 1 just add 1 to this number when displayed<br />
</pre><br />
<br />
AX8 where x is the decimal number from 0 to 511<BR><br />
<pre><br />
byte bankNumber = floor(x / 8); // banks are labeled from 1 to 64, this functions will return a number from 0 to 63, add 1 when you display it<br />
<br />
byte presetNumber = x - (bank * 8);<br />
</pre><br />
<br />
=MIDI SysEx: Effect IDs=<br />
<tt><br />
: 100 Comp 1<br />
: 101 Comp 2<br />
: 102 GEQ 1<br />
: 103 GEQ 2<br />
: 104 PEQ 1<br />
: 105 PEQ 2<br />
: 106 Amp 1<br />
: 107 Amp 2<br />
: 108 Cab 1<br />
: 109 Cab 2<br />
: 110 Reverb 1<br />
: 111 Reverb 2<br />
: 112 Delay 1<br />
: 113 Delay 2<br />
: 114 Multi Delay 1<br />
: 115 Multi Delay 2<br />
: 116 Chorus 1<br />
: 117 Chorus 2<br />
: 118 Flanger 1<br />
: 119 Flanger 2<br />
: 120 Rotary 1<br />
: 121 Rotary 2<br />
: 122 Phaser 1<br />
: 123 Phaser 2<br />
: 124 Wah 1<br />
: 125 Wah 2<br />
: 126 Formant<br />
: 127 Vol 1<br />
: 128 Pan Trem 1<br />
: 129 Pan Trem 2<br />
: 130 Pitch 1<br />
: 131 Filter 1<br />
: 132 Filter 2<br />
: 133 Drive 1<br />
: 134 Drive 2<br />
: 135 Enhancer 1<br />
: 136 Effects Loop<br />
: 137 Mixer 1<br />
: 138 Mixer 2<br />
: 139 Noise Gate<br />
: 140 Output<br />
: 141 Controllers<br />
: 142 FB Send<br />
: 143 FB Return<br />
: 144 Synth 1<br />
: 145 Synth 2<br />
: 146 Vocoder<br />
: 147 Megatap Dly<br />
: 148 Crossover 1<br />
: 149 Crossover 2<br />
: 150 Gate Exp 1<br />
: 151 Gate Exp 2<br />
: 152 Ring Mod<br />
: 153 Pitch 2<br />
: 154 MB Comp 1<br />
: 155 MB Comp 2<br />
: 156 Quad Cho 1<br />
: 157 Quad Cho 2<br />
: 158 Resonator 1<br />
: 159 Resonator 2<br />
: 160 GEQ 3<br />
: 161 GEQ 4<br />
: 162 PEQ 3<br />
: 163 PEQ 4<br />
: 164 Filter 3<br />
: 165 Filter 4<br />
: 166 Vol 2<br />
: 167 Vol 3<br />
: 168 Vol 4<br />
: 169 Looper<br />
: 170 Tone Match<br />
</tt><br />
<br />
[[category:MIDI]]</div>
Neroroxxx