Kemper Profiler and NRPN

  • Hi guys,
    I've tried my best to find the answer to my question but without any luck so far.
    I'm programming my midi controller so I can change the FX in the blocks. So, I can change the compressor in stomp A to a fuzz and back without switching presets. This is possible using NRPN. The only thing I'm missing is the type addresses for the delays and reverbs. Anybody knows those?

    This is the code to set block B to a fuzz:

    F0 00 20 33 02 7F 01 00 33 00 00 26 F7

    The last 2 before the F7 are the address for the fuzz (00 26). Now, I'm hoping someone knows the addresses to the delays and verbs.

  • With UI to MIDI enabled you can monitor which messages are generated for most of the editing you can do on the kemper.

    I've done it for the new delays and reverbs a while ago, for a similarish use case.

    In my implementation I have not been able to dynamically setup reverbs without leaving an audible gap.

    My approach was to first set the stomp type, toggle it on and finally set the needed effect parameters.

    I think morphing would be better if the limitations fit your use case.

  • Thnx Sumsar for your help.

    Maybe you know what I'm doing wrong:

    F0 00 20 33 02 7F 01 00 3C 00 00 25 F7 loads a Mouse into the Delay block, so the address seems right.

    F0 00 20 33 02 7F 01 00 3C 00 00 91 F7 doesn't load a legacy delay into that block. Am I doing something wrong?

    I know there in an audible gap, but I think/hope I've splitted the FX across the buttons in a way that I don't have to swap FX blocks during a song. I'm hoping to set it up in a way that I'm faster in finding the right FX in the studio, and in a live situation to 'setup' the pedalboard before the song starts.

  • In the MIDI protocol the top bit (the 8th bit) is reserved as a special marker. So the kemper uses an encoding for 14-bit NPRNs to ensure that the top bit of each byte is cleared.


    F0 00 20 33 02 7F 01 00 3C 00 00 91 F7

    Because 0x91 is bigger than 0x7F (the maximum 7-bit value). The overflowing bit has to be shifted into the preceding 7-bit byte.

    So for 0x91 the byte values would have to be:

    0x91 >> 7)= 0x01 bitwise shifting the value right by 7 bits leaves the upper 7 bits.

    0x91 & 0x7F = 0x11 bitwise anding by the maximum 7-bit value leaves the lower 7 bits

    Which gives:

    F0 00 20 33 02 7F 01 00 3C 00 01 11 F7

  • Hi Sumsar,
    Maybe you know the answer to this problem/question too.

    I've been sending sysex NRPN like you know from the post above and on the Delay and Reverb blocks the Kemper is acting weird.

    Especialy with the mix button setting. On a preset I send a delay preset through NRPN and I set the mix to 90% but the sound is like the mix is on 40%. The display says it's on 90%. When I turn the button to 89% and back to 90% it's fine. But when I resend my preset through NRPN the sound if not what the display says again. Any idea's?

  • Linear parameter values have to be scaled into a range of 0-16383.

    The mix parameter has two 100% ranges, the first is dry and the second is wet.

    Assuming you mean 90% dry, the scaling would be: 16383 * 90 / (100+100) = 7372

    For non-linear parameter values you either have to interpolate between known values or create a lookup table.

    The Request Parameter Value as Rendered String function can be used to build lookup tables for some parameters, but it doesnt return the right value for others.

  • Hi Sumsar,
    Thnx. But I think I had that correctly. I've sent 39 50 to set it to 90%. The display says it's on 90% but the sound isn't. Turning the mix knob to 89 and back to 90 fixes it. It makes a small tick in the sound because the mix suddenly pops up from a lot less to 90%. Feels like a bug in the Kemper.

  • I've found that sending 2 values with a single parameter command sets the morph value. When I send the same value twice it 'removes' the morph and solves the problem. I think the morph function messes with this setting. So now I just send:

    F0 00 20 33 02 7F 01 00 3C 45 39 50 39 50 F7

    For now, it seems fixed ? But not for the reverbs, only the delays. The reverbs kept on doing this thing... I now just send a normal CC after the NRPN setting the mix and decay. But it's weird right?

  • Nice find!

    I've done a few quick tests and it does appear that extending the single parameter with two values sets up the morph range.

    It sure would be nice to get an update on the profiler midi parameter documentation some time.

    The only caveat I'm aware of in regards to morphing is that using the same slot selection cc's twice triggers the morph. Using a program change instead does not.

    I've been ignoring morphing because the documented way wouldn't be feasible for my use. But if this way works smoothly, I could do a lot with it.

    Thanks for sharing :)