October 2024: Fractal Audio's VP4 Virtual Pedalboard has been added to the wiki.

MIDI SysEx

From Fractal Audio Wiki
Revision as of 16:34, 2 January 2012 by Sean Echevarria (talk | contribs) (more sysex)
Jump to navigation Jump to search

About MIDI System Exclusive (SysEx) messages

If you're a MIDI expert, you can use SysEx messages (MIDI System Exclusive) to control the Axe-Fx II.

SysEx messages for Ultra

  • Ultra-specific SysEx information has been accurately acquired and organized by forum member GM Arts: here.
  • Information about SysEx commands for retrieving Preset/Effect bypass states is here.

SysEx messages for Axe Fx II

  • Many Axe Fx II sysex messages are similar to Standard/Ultra messages. Model ID is 3. All messages must be sent with checksums.
  • Information about SysEx commands for retrieving Preset names and Preset/Effect bypass states is here.

Axe Fx II SysEx Information for loading IRs

The information below was provided by forum member LMO.

The Axe Fx II supports 2040-point impulse responses that are packaged for download in a series of 66 MIDI SysEx messages, as follows:

MIDI_START_IR_DOWNLOAD

Prepare the Axe-Fx II to receive impulse response data

Message Format:

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

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:

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

MIDI_CLOSE_IR_DOWNLOAD

Terminate the IR download sequence

Message Format:

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

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.

  • 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;