Profiler MIDI documentation - information missing on string parameter addresses

  • I am missing an important piece of information in the MIDI parameters manual (yes, I've downloaded the latest version):


    To request the value of a string parameter or extended string parameter(e.g. name of the current profile, performance, slot, ...) I need to send a sysex request (function code 0x43 or 0x47) containing the NRPN address or extended address of that string parameter. The manual shows that apparently the name of the current rig has the address $0001, but the addresses of other strings are nowhere to be found in the manual. The NRPN documentation starts at page 4, but page 0 (the one that apparently contains the rig name) isn't documented anywhere. Neither are the extended 5-byte addresses.


    Has anyone already experimented with different addresses to find out which is which and can share the results?


    Or can Burkhard or another member of the Kemper team help?



    BTW: the MIDI parameter manual seems to need a bit of an overhaul - I just checked the first segment of the SysEx section on "Single parameter change" - it shows an example of changin the stomp 1 mix to 50%, and it first references the address $19 04 in the text, then in the table it shows the address $4A 04, and in the second example (morphing), it shows the address $19 04 in the table. Talk about confusing. Now I looked up the address for module A mix in the NRPN table - and there it shows it should be Address Page 50 - which is $32. Now which one should I believe??? Guess there is a bit of a version history, where examples haven't kept up with the changes in the parameter tables?


    Cheers,


    Torsten

  • This is not about NRPR - NRPN is relatively straightforward.


    This is about sysex messages to extract string parameters.


    It's just that Sysex parameters are organuzed using NRPN addresses.

  • is this info of any use to you?

  • is this info of any use to you?

    hey slateboy


    thanx for the info - yes, that thread is eminently useful. I have already found that one after a lot of googling, not having gotten anything useful here so far.


    The link in the thread to the original discussion ("DIY pedal board...") seems to be broken, but a bit of googling also yielded that original.


    DIY Pedal board for kemper


    With the help of that one, I was able to get a functioning sysex request going to get the name of the current performance and the names of its slots:


    F0 00 20 33 00 00 47 00 00 00 01 00 <slot number> F7


    Slot number 0 = Performance name


    I have no clue where user digitalflip found the correct extended parameters - definitely very useful!


    This sysex request works nicely for my purposes, so I can get going with my project, but the state of documentation is still unsatisfactory. I'm still hoping that Burkhard or someone else from Kemper will pitch in and provide more complete documentation, especially of the extended parameters that go beyond the basic two-byte NPRNs.


    Cheers,


    Torsten

    • Official Post

    This sysex request works nicely for my purposes, so I can get going with my project, but the state of documentation is still unsatisfactory. I'm still hoping that Burkhard or someone else from Kemper will pitch in and provide more complete documentation, especially of the extended parameters that go beyond the basic two-byte NPRNs.

    ToH2002

    All documentation available to you can be found on our website.

    Get in touch with Profiler online support team here

  • I've worked a fair bit with the SysEx format. My code is in a bit of flux as I've been exploring supporting Rust's no-std runtime, which is required for embedded devices. But it's sadly not ready for being published.


    My findings on string parameter addresses is:

    The Unknown_* are parameters that I've encountered but haven't determined what they represent. IIRC most of them were just empty strings in my explorations.


    Let me know if you find any errors or need something specific.

  • My findings on string parameter addresses

    Great stuff!


    I assume these are the "request string parameter" values (two-byte addresses) with the function code $43 - correct?


    The strings I was looking for are in the "extended string parameter" area - the name of the current performance and the names for its individual slots. It looks like these need to be requested via function code $47, using 5 byte addresses instead of two bytes.


    So the addresses I know so far are (all hex)


    00 00 01 00 00 - Performance name

    00 00 01 00 01 - Slot 1 name

    00 00 01 00 02 - Slot 2 name

    00 00 01 00 03 - Slot 3 name

    00 00 01 00 04 - Slot 4 name

    00 00 01 00 05 - Slot 5 name


    Identifying all these extended addresses by trial-and-error may be a bit tedious, so I'm not really going to attempt it, since I have what I need with these six addresses. Still a pity that Kemper won't publish them but rather leave it to users to play detective..,.

  • ToH2002 ; sumsar ; slateboy ;


    Do any of you have the codes or "request string parameter" addresses for Current Rig Name: Next Rig Name; Previous Rig Name, when in Browser mode, or with respect to the new Profiler Player? And for the Player, also Current Rig Bank and Number: Next Rig Bank and Number; Previous Rig Bank and Number?


    I am interested in trying to be able to display those three names and numbers when using the Player.

  • ok guys, so digging out an OLD project i started years ago and gave up on, i got as far as controlling the Kemper with midi and retrieving the preset/slot names using system-exclusive. Demo here:

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    the bit of code for getting the names via sysex:



    Sorry, i'm not offering technical support. It has been so long that i done this project i'd effectively be starting from scratch to unravel this lot.

    Hope the above helps and shows you what is possible.

  • Do any of you have the codes or "request string parameter" addresses for Current Rig Name: Next Rig Name; Previous Rig Name, when in Browser mod

    The address for the current rig name is 00 01 - as shown above and also in the MIDI parameter documentation. There is no access to previous or next rig via MIDI as far as I know - that's not something typically accessible via MIDI. Typically, you can access what is currently loaded (performance or rig)


    If you want to display previous and next rig, your best option is to grab all rig names first - step through all rigs and request the current rig name, then store them in your program. Now that you have all rig names, you can simply react to the current rig selected.


    No idea if the Player has the same MIDI implementation as the Toaster, Rack or the Stage - best to try requesting the current rig name via sysex and see if there's a useful reply from the Player...

  • The address for the current rig name is 00 01 - as shown above and also in the MIDI parameter documentation. There is no access to previous or next rig via MIDI as far as I know - that's not something typically accessible via MIDI. Typically, you can access what is currently loaded (performance or rig)


    If you want to display previous and next rig, your best option is to grab all rig names first - step through all rigs and request the current rig name, then store them in your program. Now that you have all rig names, you can simply react to the current rig selected.


    No idea if the Player has the same MIDI implementation as the Toaster, Rack or the Stage - best to try requesting the current rig name via sysex and see if there's a useful reply from the Player...

    Thanks for this. All the threads I had seen related to slot names in performance mode, but I didn't see anything related to browser mode. I'll start playing with this using the controller I have.

  • I assume these are the "request string parameter" values (two-byte addresses) with the function code $43 - correct?

    Yes. I've only looked into what is used in rig files. A rig file is just a single track standard midi file with modified header and track tags.

    I haven't had a deep look at performance files (IIRC they are multi track SMF), perhaps there's messages there that could be useful.


    Outside of that you would have to either brute force the extended messages or reverse engineer parts of the usb protocol used by rig manager (It uses a message encoding that is similar to the SysEx format. Someone else was trying to write a linux driver some time ago but I can't find the thread)

    You might be able to tease out the extended addresses, by capturing a well chosen edit (something unique that can easily be searched for), with WireShark.