NRPN: experiments with Bidule

  • Hi,


    I'd like to share my personal experience using KPA's NRPN functions through a pc.
    What you need is:
    - a MIDI interface
    - the Prologue Bidule app/plugin
    - a volume pedal/pedalboard capable to send cc messages


    In my setup I have a MOTU 828 MKIII, a SoftStep pedalboard and a Boss FV-500-H volume pedal.


    The connections are:
    - SoftStep -> MOTU MIDI IN
    - MOTU MIDI OUT -> KPA
    - MOTU -> PC


    In this experiment I put the focus on distortion stomps in order to control the gain range, of course only those without the "Pedal Range" facility: Bit/Recti/Soft/Hard/Wave Shaper.
    I'm on the last official KPA release 1.1.0.


    The main purpose is to send only cc messages from pedal and delegate something else for the "NRPN translation".
    Of course this function could be covered by other piece of hardware but in this experiment I use only software.


    Well, referring to the "Profiler MIDI Parameter Guide" document, KPA accepts NRPN messages with the structure:
    - cc 99 - address page
    - cc 98 - address number
    - cc 38 - parameter value LSB
    - cc 6 - parameter value MSB


    where the last cc (6) could be omitted.


    For distortion stomps, the flow for gain range is:
    - cc 99: value 52
    - cc 98: value 16
    - cc 38 - the value received from volume pedal


    So, the idea is: when I move the pedal up and down, the Bidule app intercepts the cc flow and prepends the 99 and 98 addresses at every cc value.


    To do this, I've designed a flow in Bidule that:
    - receive the cc 38 pedal message
    - replicate the received message (cc 38 value x) 3 times (A, B, C)
    - transform the message A in cc 99 value 52
    - transform the message B in cc 98 value 16
    - leave untouched the message C (cc 38 )


    I also need to send to KPA the EXACT ORDER above mentioned:
    - FIRST: cc 99-value 52
    - SECOND: cc 98-value 16
    - THIRD: cc 38-the value received from volume pedal


    To respect the order, I put a delay after the message B and C respectively of 1ms and 2ms.


    This is the attached scheme designed in Bidule:
    [Blocked Image: http://www.mediafire.com/conv/43775e3b65aa59e33b238fcf01630e4471d63055ac2dbacace31eba82383842f6g.jpg]


    This is the detailed flow:
    [Blocked Image: http://www.mediafire.com/conv/3531f6c08269235001e8ff34cebeb21b9b1243037acb16651c6d44a6cfe5067a6g.jpg]


    I'm not a Bidule expert , so probably there is an easiest way to do this (i.e. using the MIDI stack block) but I haven't explored anymore ;(


    You could experiment with different page addresses and numbers and combine different interactions, for example using different midi channels.


    I hope this example could help someone...


    Bye, Vernon

  • Well, referring to the "Profiler MIDI Parameter Guide" document, KPA accepts NRPN messages with the structure:
    - cc 99 - address page
    - cc 98 - address number
    - cc 38 - parameter value LSB
    - cc 6 - parameter value MSB

    There is a mistake in the document, it will be corrected. You need to send (as defined in the MIDI specification for 14 bit NRPN) first cc6, then cc38. The KPA takes the value when cc38 is received.
    With the 1.5.1 firmware, there is also a fallback for 7bit values, in this case, you can send cc119 to set the value. This way, a correct mapping from 7 to 14 bit is guaranteed.
    Timo