8,720
edits
Changes
m
→MIDI SysEx
The SysEx common format is:
# 0xF0 - 1 byte for SysEx Start(<code>0xF0</code>)# 3 bytes for Manufacturer ID (<code>0x002033 </code> for Kemper)# 1 byte for product type (<code>0x02 </code> for Kemper Profiling Amp)# 1 byte for device ID (<code>0x7F </code> for Omni)
# x bytes for the message (this is the device-specific part)
# 0xF7 - 1 byte for SysEx End(<code>0xF7</code>)
Example: <code>F0-00-20-33-02-7F-...-F7</code>, where ... is variable.
The Kemper MIDI SysEx protocol gets pretty intense, and I'll leave it to those interested to refer to the [http://www.kemper-amps.com/page/render/lang/en/p/170/id/27/cat/30/do/Kemper_Profiling_Amplifier___Downloads.html Kemper MIDI documentation]. For most users, SysEx will never be necessary. Where this really comes in handy is for software programs that want to communicate with KPA via MIDI. The big items that SysEx offer beyond NRPN above are string manipulation and requesting parameter values from the KPA. These would allow a program to act as an editor, or an advanced floorboard to maintain two-way communication with the KPA, displaying the KPA's current values and keeping on/off states in sync.
The x bytes above have a common scheme for Kemper SysEx messages, where the first byte is the function code. This is followed by an instance code, which is always <code>0x00</code>. This is followed by the address, then the data.
Depending on the function code, the address may be 2 bytes or 4 bytes, and the data can be variable length. '''The 2 byte addresses use the NRPN addresses above.''' I am not sure what the extended addresses referenced below are - the MIDI documentation does not list any. Similarly, '''all 2 byte values use integer values of 0 - 16,384 for min to max''', although this may correspond to different display values on the KPA (for instance, a value of 0 might be "-5.0", 8,192 might be "<0.0>", and 16,384 would be "+5.0" - this depends on what the parameter actually is). '''Strings use single byte characters encoded using [http://www.asciitable.com/ ASCII].'''
