October 2024: Fractal Audio's VP4 Virtual Pedalboard has been added to the wiki.
Difference between revisions of "MIDI SysEx"
(more sysex) |
|||
Line 8: | Line 8: | ||
* 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.] | * 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.] | ||
− | * Information about SysEx commands for retrieving | + | * 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= | ||
+ | |||
+ | * 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 [http://forum.fractalaudio.com/other-midi-controllers/44824-what-sysex-message-get_preset_name-axe2.html here.] | ||
=Axe Fx II SysEx Information for loading IRs= | =Axe Fx II SysEx Information for loading IRs= |
Revision as of 16:34, 2 January 2012
Contents
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.
- To learn more about MIDI, see the article in Wikipedia
- To learn more about SysEx see this article in the Electronic Music Wiki.
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;