Read the Owners Manual first!

Difference between revisions of "MIDI SysEx"

From Fractal Audio Wiki
Jump to navigation Jump to search
m
(Moved Axe Fx II / AX8 SysEx to a new page linked here)
Tag: Replaced
 
(225 intermediate revisions by 12 users not shown)
Line 1: Line 1:
=About MIDI System Exclusive (SysEx) messages=
+
__TOC__
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II.
+
=System Exclusive messages=
  
*To learn more about MIDI, [http://en.wikipedia.org/wiki/MIDI see the article in Wikipedia]
+
If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control Fractal Audio devices.
*To learn more about SysEx [http://electronicmusic.wikia.com/wiki/System_exclusive see this article in the Electronic Music Wiki].
 
  
= SysEx messages for Ultra=
+
[http://electronicmusic.wikia.com/wiki/System_exclusive Learn more about SysEx]
  
* 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.]
+
[http://forum.fractalaudio.com/threads/sysex-0x02-midi_get_parameter.123480/ Discussion about Fractal Audio's SysEx implementation]
* 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.]
 
  
= SysEx messages for Axe Fx II=
+
Firmware Ares and later provides MIDI support for 3rd-party devices to set and/or get scene, channel, bypass, scene names, preset names, tuner data, tempo data, via System Exclusive messages.
  
* 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]. 
+
Read this: [http://www.fractalaudio.com/downloads/misc/Axe-Fx%20III%20MIDI%20for%203rd%20Party%20Devices.pdf Axe-Fx III MIDI for Third-Party Devices]
* Model ID is 3. 
 
* All messages must be sent with checksums.
 
* 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.]
 
  
=Calculating the SYSEX checksum for the Axe-FX II=
+
[[image:MIDI.png|link=]]
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.
 
  
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):
+
=Axe-Fx Standard and Axe-Fx Ultra=
  
* F0 00 01 74 03 0F F7
+
[http://www.gmarts.org/html/axefx_ultra_sysex_1005.html Ultra-specific SysEx information from forum member GM Arts]
  
We would have to XOR all the byte values from the starting 'F0' to the '0F' which is the second last byte:
+
[http://forum.fractalaudio.com/other-midi-controllers/39161-using-sysex-recall-present-effect-bypass-status-info-available.html SysEx commands for retrieving Preset/Effect bypass states]
  
* 0xF0 ^ 0x00 ^ 0x01 ^ 0x74 ^ 0x03 ^ 0x0F = '''0x89'''
+
=Axe-Fx II and AX8=
  
Then, we would need to strip the leftmost bit from the result (by ANDing it to 0x7F):
+
SysEx commands for control of the Axe-Fx II (all models) and AX8 are documented in this page: [https://wiki.fractalaudio.com/wiki/index.php?title=MIDI_SysEx_Functions_AxeFxII MIDI SysEx Functions for Axe-Fx II]
  
* 0x89 && 0x7F = '''0x09'''
+
=Axe-Fx III, FM9 and FM3=
  
And, we add this byte (actually, a septet now) to the end of the SYSEX string, BEFORE the terminating F7:
+
SysEx commands for control of the Axe-Fx III, FM9 and FM3 through third-party MIDI devices are documented in this guide: [http://www.fractalaudio.com/downloads/misc/Axe-Fx%20III%20MIDI%20for%203rd%20Party%20Devices.pdf Axe-Fx III MIDI for Third-Party Devices]
  
* F0 00 01 74 03 0F '''09''' F7
+
=SysEx Model number per device=
 +
The numbers below refer to the processors.
  
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.
+
* 0x00 Axe-Fx Standard
 +
* 0x01 Axe-Fx Ultra
 +
* 0x02 MFC-101
 +
* 0x03 Axe-Fx II
 +
* 0x04 MFC-101 mk3
 +
* 0x05 FX8
 +
* 0x06 Axe-Fx II XL
 +
* 0x07 Axe-Fx II XL+
 +
* 0x08 AX8
 +
* 0x0A FX8 mk2
 +
* 0x10 Axe-Fx III
 +
* 0x11 FM3
 +
* 0x12 FM9
  
 
+
[[category:Axe-Fx2]]
=Axe Fx II SysEx Information for loading IRs=
+
[[category:FM3]]
The information below was provided by forum member LMO.
+
[[category:FM9]]
 
+
[[category:Axe-Fx3]]
The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:
+
[[category:AX8]]
 
+
[[category:FX8]]
'''MIDI_START_IR_DOWNLOAD'''
+
[[category:Remote]]
 
+
[[category:All]]
Prepare the Axe-Fx II to receive impulse response data
 
 
 
Message Format:
 
<tt>
 
:0xF0 sysex start
 
:0x00 manufacturing ID byte 0
 
:0x01 manufacturing ID byte 1
 
:0x74 manufacturing ID byte 2
 
:0x03 model number
 
:0x7A function ID
 
:0x20
 
:0x00
 
:0x10
 
:0xdd checksum
 
:0xF7 sysex end
 
</tt>
 
 
 
'''MIDI_G2_IR_DATA'''
 
 
 
There are 64 sysex messages, each containing 32 chunks of data.  Each chunk consists of five
 
bytes and can hold either four text characters or one 32-bit IR data sample.
 
 
 
The first data message sent includes 8 chunks of text that specify the 32-character IR name, and
 
24 chunks of IR data.  The subsequent 63 data messages each contain 32 data samples for a
 
total of 2040 samples.
 
 
 
Message Format:
 
<tt>
 
:0xF0 sysex start
 
:0x00 manufacturing ID byte 0
 
:0x01 manufacturing ID byte 1
 
:0x74 manufacturing ID byte 2
 
:0x03 model number
 
:0x7B function ID
 
:0x20
 
:0x00
 
:0xdd data chunk byte 0
 
:0xdd data chunk byte 1
 
:0xdd data chunk byte 2
 
:0xdd data chunk byte 3
 
:0xdd data chunk byte 4
 
:--- 31 additional five byte data chunks ---
 
:0xdd checksum
 
:0xF7 sysex end
 
</tt>
 
 
 
'''MIDI_CLOSE_IR_DOWNLOAD'''
 
 
 
Terminate the IR download sequence
 
 
 
Message Format:
 
<tt>
 
:0xF0 sysex start
 
:0x00 manufacturing ID byte 0
 
:0x01 manufacturing ID byte 1
 
:0x74 manufacturing ID byte 2
 
:0x03 model number
 
:0x7C function ID
 
:0xdd encoded checksum byte 0 for IR data
 
:0xdd encoded checksum byte 1 for IR data
 
:0xdd encoded checksum byte 2 for IR data
 
:0xdd encoded checksum byte 3 for IR data
 
:0xdd encoded checksum byte 4 for IR data
 
:0xdd checksum
 
:0xF7 sysex end
 
</tt>
 
 
 
'''Data Chunk Encoding Scheme'''
 
 
 
The data encoding scheme translates four octets into five septets.  Each septet occupies the
 
lower seven bits of a byte, with the most significant bit set to 0. 
 
 
<tt>
 
:* octet is one byte containing 8 bits of data
 
:* septet  is one byte containing 7 bits of data
 
:byte_chunk = (data[0] & 0xFF )<< 24 | (data[1] & 0xFF )<< 16 | (data[2] & 0xFF )<< 8  (data[3] & 0xFF;
 
:* convert four octets to five septets
 
:septet[0] = byte_chunk & 0xFF;
 
:septet[1] = byte_chunk >> 7 & 0xFF;
 
:septet[2] = byte_chunk >> 14 & 0xFF;
 
:septet[3] = byte_chunk >> 21 & 0xFF;
 
:septet[4] = byte_chunk >> 28 & 0xFF;
 
</tt>
 
 
 
[[Category:System and firmware]]
 

Latest revision as of 04:30, 28 December 2024

System Exclusive messages

If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control Fractal Audio devices.

Learn more about SysEx

Discussion about Fractal Audio's SysEx implementation

Firmware Ares and later provides MIDI support for 3rd-party devices to set and/or get scene, channel, bypass, scene names, preset names, tuner data, tempo data, via System Exclusive messages.

Read this: Axe-Fx III MIDI for Third-Party Devices

MIDI.png

Axe-Fx Standard and Axe-Fx Ultra

Ultra-specific SysEx information from forum member GM Arts

SysEx commands for retrieving Preset/Effect bypass states

Axe-Fx II and AX8

SysEx commands for control of the Axe-Fx II (all models) and AX8 are documented in this page: MIDI SysEx Functions for Axe-Fx II

Axe-Fx III, FM9 and FM3

SysEx commands for control of the Axe-Fx III, FM9 and FM3 through third-party MIDI devices are documented in this guide: Axe-Fx III MIDI for Third-Party Devices

SysEx Model number per device

The numbers below refer to the processors.

  • 0x00 Axe-Fx Standard
  • 0x01 Axe-Fx Ultra
  • 0x02 MFC-101
  • 0x03 Axe-Fx II
  • 0x04 MFC-101 mk3
  • 0x05 FX8
  • 0x06 Axe-Fx II XL
  • 0x07 Axe-Fx II XL+
  • 0x08 AX8
  • 0x0A FX8 mk2
  • 0x10 Axe-Fx III
  • 0x11 FM3
  • 0x12 FM9