Profiler Midi Parameter Documentation
Profiler Midi Parameter Documentation
List of Tables
Table 1: MIDI commands......................................................................................................................... 4
Table 2: Example communication for performance mode Preselection ................................................ 5
Table 3: NRPN controller assignments .................................................................................................... 6
Table 4: structure of a Kemper Profiler SYSEX message ....................................................................... 13
Table 5: function codes for Kemper Profiler SYSEX messages .............................................................. 13
Table 6: message part for single parameter change ............................................................................. 13
Table 7: message part for a multi parameter change ........................................................................... 14
Table 8: message part for a string parameter change .......................................................................... 14
Table 9: message part for a BLOB parameter ....................................................................................... 15
Table 10: message part for a single parameter request ....................................................................... 16
Table 11: message part for a multi parameter request ........................................................................ 16
Table 12: message part for a string parameter request........................................................................ 17
Table 13: message part for a string render request .............................................................................. 17
Table 14: ASCII characters allowed in tags ............................................................................................ 18
Revision 145 Page 3
Introduction
This document reflects the state of the Profiler firmware version 4.2.1 or higher.
The Kemper Profiler features more than 800 parameters. Of course, you cant address them all with a
standard MIDI controller message, where only 128 parameters can be reached.
Therefore, the Kemper Profiler supports the NRPN (Non-Registered Parameter Numbers) protocol
additionally to the proprietary SYSEX protocol.
Though, there are also MIDI commands at the standard controller range for commonly used
functionality.
MIDI Commands
The Kemper Profiler supports several simple MIDI commands that can be sent from 3rd-Party MIDI-
Devices that control effects of the current Rig and performance mode.
CC Value Remarks
16 Any Toggles all Stomps between On and Off setting.
Select Type Empty to disable a slot completely.
17 Any Toggles Stomp A between On and Off setting.
18 Any Toggles Stomp B between On and Off setting.
19 Any Toggles Stomp C between On and Off setting.
20 Any Toggles Stomp D between On and Off setting.
22 Any Toggles Stomp X between On and Off setting.
24 Any Toggles Stomp MOD between On and Off setting.
26 Any Toggles Stomp DELAY between On and Off setting.
27 Any Toggles Stomp DELAY between On and Off setting with tail.
28 Any Toggles Reverb between On and Off setting.
29 Any Toggles Reverb between On and Off setting with tail.
30 1/0 Sets Tempo Tap
If your floorboard supports separate events on pressing and
releasing a button, send 1 when pressed and 0 when released. If
the floorboard can only send one event, use value 0.
When value 1 has been sent and no value 0 for 3 seconds, the Beat
Scanner1 is being activated.
31 1/0 1: Show Tuner
0: Hide Tuner
33 0/1 0: Rotary Speaker slow
1: Rotary Speaker fast
342 0/1 0: Delay Feedback Infinity off
1: Delay Feedback infinity on
353 0/1 0: Delay Hold off
1: Delay Hold on
47 [0,124] (Performance Mode only)
Preselected performance index4. Can be set directly or scrolled via
CC48/CC49. The performance will be loaded when a slot selection is
1
Available in firmware 2.3.0 or later
2
Available in firmware 3.3.0 or later
3
Available in firmware 3.3.0 or later
4
Available in firmware 2.3.0 or later
Revision 145 Page 4
Responses
With firmware 2.3.0, the profiler, if in performance mode, will send back the current performance
number via CC47 and the appropriate slot selection. Example:
NRPN Definition
NRPN supports 128 x 128 different parameters (which rounds up to an impressive total of 16384
parameters.) NRPN also supports a parameter resolution of 16384 values (14-bit) compared to only
128 values (7-bit) with regular controller messages.
NRPN messages consist of a set of four controllers being sent in a sequence. These four controllers
are:
Decimal Hex Remark
99 $63 MSB* of the parameter number (address page)
98 $62 LSB* of the parameter number (address number)
06 $06 MSB* of the parameter value
38 $26 LSB* of the parameter value
*MSB: most significant byte, the upper 7-bit of the 14-bit number
*LSB: least significant byte, the lower 7-bit of the 14-bit number
Table 3: NRPN controller assignments
The MIDI specification requests that a manufacturer decides if the devices understand 7-bit or 14-bit
values. All NRPN controllers in the Kemper Profiler are by definition 14-bit value controllers, so youll
need to send both MSB Control Change (or CC) 06 and CC38 in that order to apply a change. The
actual value gets set after reception of CC38. The Kemper Profiler keeps the address selection
present. So, if a pair of CC98+CC99 has been transmitted, it does not need to be sent again for a
further value change on the same parameter.
To support generic, programmable floorboards/controllers that only support 7-bit values, Kemper
Profiler Firmware version 2.0.0 introduces CC119 ($77) to send a simple 7-bit value change instead of
CC06 and CC38 combo. In this case, the values are mapped internally to the correspondent 14-bit
value (e.g. value 127 is internally 16383, 64 is internally 8192).
Examples
Reverb/Mix is at NRPN #9603, so MSB (address page) is 75 ($4B) and LSB (address number) is
3 ($03).
To send a 7-bit low resolution value (64 = $40), so the parameter is actually set at 8192*:
$B0 $63 $4B
$B0 $62 $03
$B0 $77 $40
$B0 is the MIDI start byte for controllers at MIDI channel 1. You may use running status
transmissions.
The Kemper Profiler will listen to the MIDI channel that is set as the MIDI Global Channel in the
System Menu. The standard setting is OMNI, saying it responds to every channel5.
Parameter Types
There are two types of parameters in the Kemper Profiler and their properties:
Parameter List
Rig (Address Page 4)
0 Rig Tempo
1 Rig Volume
2 Rig Tempo Enable
5
When set to OMNI, make sure the floorboard only sends on one channel. Some floorboards send 16 program
changes (one to each channel) which causes 16 real rig switches then which might lag the Kemper Profiler a bit.
Revision 145 Page 8
2 On/Off
4 Gain
6 Definition
7 Clarity
8 Power Sagging
9 Pick
10 Compressor
11 Tube Shape
12 Tube Bias
15 Direct Mix
2 On/Off
4 Bass
5 Middle
6 Treble
7 Presence
2 On/Off
3 Volume
4 High Shift
5 Low Shift
6 Character
7 Pure Cabinet (Rig)
0 Type
3 On/Off
4 Mix
6 Volume
7 Stereo
8 Wah Manual
9 Wah Peak
10 Wah Range
12 Wah Pedal Mode
13 Wah Touch Attack
14 Wah Touch Release
15 Wah Touch Boost
16 Distortion/Shaper Drive
17 Distortion/Booster Tone
18 Compressor/Gate Intensity
19 Compressor Attack
Revision 145 Page 9
20 Modulation Rate
21 Modulation Depth
22 Modulation Feedback
23 Modulation Crossover
24 Modulation HyperChorus Amount
25 Modulation Manual
26 Modulation Phaser Peak Spread
27 Modulation Phaser Stages
33 Compressor Squash
34 Graphic EQ Band 1
35 Graphic EQ Band 2
36 Graphic EQ Band 3
37 Graphic EQ Band 4
38 Graphic EQ Band 5
39 Graphic EQ Band 6
40 Graphic EQ Band 7
41 Graphic EQ Band 8
55 Voice Mix
56 Voice 1 Pitch
57 Voice 2 Pitch
58 Detune
60 Smooth Chords
61 Pure Tuning
64 Key
65 Freeze Formants
66 Formant Offset
67 Low Cut
68 High Cut
69 Delay Mix
Revision 145 Page 10
0 Type
2 On/Off (cuts tail)
3 Mix
4 Volume
5 Time
6 Ratio
7 Clock Left
8 Clock Right
9 Feedback
10 Bandwidth
11 Center Frequency
12 Modulation
13 On/off (keeps tail)
14 Ducking
0 Type
2 On/off (cuts tail)
3 Mix
4 Volume
5 Del/Rev Balance
6 Time
7 Damping
8 Bandwidth
9 Center Frequency
10 Pre-delay
11 On/off (keeps tail)
12 Ducking
52 Looper Volume
53 Looper Location
Revision 145 Page 13
SYSEX Definition
The message itself starts with a function code plus additional bytes depending on the given function
code.
Function Functionality
Code
$01 Single Parameter Change
$02 Multi Parameter Change
$03 String Parameter
$04 BLOB
$05 *reserved*
$06 Extended Parameter Change
$07 Extended String Parameter Change
$41 Request Single Parameter Value
$42 Request Multi Parameter Values
$43 Request String Parameter
$47 Request Extended String Parameter
$7C Request Parameter Value as Rendered String
$7E *reserved*
$7F *reserved*
Table 5: function codes for Kemper Profiler SYSEX messages
Function Code Instance Controller MSB Controller LSB Value MSB Value LSB
The function Addresses the The upper 7-bit The lower 7-bit The upper 7- The lower 7-
code for a instance of the of the 14-bit of the 14-bit bit of the 14- bit of the 14-
single parameter. The NRPN address. NRPN address. bit value. bit value.
parameter Kemper
change is $01 Profiler only
supports one
instance which
is always 0.
Table 6: message part for single parameter change
Example: To set the value of Delay Volume to 50% the controller $4a04 (9476) needs to be set to a
value of $4000 (8192):
F0 00 20 33 02 7f 01 00 4A 04 40 00 F7
Revision 145 Page 14
Function Instance Controller Controller Value MSB Value LSB Value Value
Code MSB LSB MSB* LSB*
The Addresses The upper The lower The upper The lower The upper The lower
function the 7-bit of the 7-bit of the 7-bit of 7-bit of 7-bit of 7-bit of
code for a instance of 14-bit 14-bit the 14-bit the 14-bit the 14-bit the 14-bit
single the NRPN NRPN value. value. value of value of
parameter parameter. address. address. the next the next
change is The NRPN NRPN
$02 Kemper address. address.
Profiler
only Repeat with Value
supports MSB/LSB for more
one values (up to 64 values)
instance
which is
always 0.
Table 7: message part for a multi parameter change
Example: To set the values for all (numeric) Reverb parameters (starting with $4B00) send:
F0 00 20 33 02 7f 02 00 4B 00 00 03 00 01 00 01 4C 04 .. .. F7
The string controllers can be encoded using function code $03 and character bytes using ASCII
encoding:
Example: To set the string Hello as current rig name (string #0001) send:
F0 00 20 33 02 7f 03 00 00 01 48 65 6C 6C 6F 00 F7
The content of a BLOB is per definition off hands and should not be altered.
Currently, only a start offset of 0 (null) is supported. If the content size is not matching the
announced size, the message will be ignored.
MSB LSB
7 6 5 4 3 2 1 0
Byte 0: _ _ _ _ 7 6 5 4
Byte 1: _ 3 2 1 0 7 6 5
Byte 2: _ 4 3 2 1 0 7 6
Byte 3: _ 5 4 3 2 1 0 7
Byte 4: _ 6 5 4 3 2 1 0
Figure 2: 32 bit numbers encoded to 5 MIDI data bytes
F0 00 20 33 02 7f 41 00 4A 04 F7
If a parameter is being request that does not exist, the request is being ignored and nothing is being
sent back.
Example: Request the current values for the Delay effect (starting with controller 94726).
F0 00 20 33 02 7f 42 00 4A 00 F7
In case the controller does not exist or the request does not address the first controller number in a
unit, the request is being ignored. No data is being sent back.
6
The Kemper Profiler only responds to requests that encode the first controller number of a parameter block.
Others might be ignored or the result might cover the whole block. You cannot request snippets of a unit.
Revision 145 Page 17
Example: Request the current values for the current Rig name:
F0 00 20 33 02 7f 43 00 00 01 F7
Function Code Flags Controller MSB Controller LSB Value MSB Value LSB
The function *reserved* The upper 7-bit The lower 7-bit The upper 7- The lower 7-
code $7C of the 14-bit of the 14-bit bit of the 14- bit of the 14-
NRPN address. NRPN address. bit value. bit value.
Table 13: message part for a string render request
Example: To request the character string for a value of 8192 for Delay Volume, send:
F0 00 20 33 02 7F 7C 00 4A 04 40 00 F7
F0 00 20 33 02 7F 3C 00 4A 04 40 00 3C 30 2E 30 3E 00 F7
< 0 . 0 >
Function code of the response is $3C, after the flags, the controller MSB/LSB and value MSB/LSB the
actual string is being available, terminated by a zero-byte. In this case, the rendered string is <0.0>.
7
If the encoded controller number is lower than 16384 (the range of 14-bit) the response might use function
code $03.
Revision 145 Page 18