Tricky midi mapping problem

Discussion in 'PangoScript, Universe and Midi Templates' started by hitekvoop, Feb 26, 2016.

  1. hitekvoop

    hitekvoop Well-Known Member

    I have a novation launchpad mk2. when you press one of the pads it will always send: NoteOn 127 and when you lift your finger, NoteOn 0. So it's momentary and it only sends NoteOn messages. I cannot seem to change the behavior of the launchpad, it seems to only function in this mode.

    I want to use it to toggle the value of a button in the universe, "button1"

    My first thought was to create a pangoscript in the right side area that would set and hold values in variables that I could use to detect button state, but I'm having a difficult time. Would anyone like to take a stab?
  2. hitekvoop

    hitekvoop Well-Known Member

    eh, I got around it. Would still be interested in others' takes though ;)
  3. Bob@Pangolin

    Bob@Pangolin Staff Member


    I would take the more complex route;

    Open up the programmers reference manual from Novation and find out what the init string is to set it in the correct mode.

    If you check inside the midi config panel, there is also a tab called scripting.
    (This is the location where the scripts are saved for the midi controller profiles)

    There is a box initialization there.

    And probably, if you send the correct code to the LaunchPad, you can set it in toggle mode and even control the colors. :)
  4. hitekvoop

    hitekvoop Well-Known Member

    Oh Bob, of course I checked there :)

    No, the device wants to be in momentary note on mode only regardless of settings in the bootloader (which mainly control which layouts communicate on which channels). I'm quite familiar with controller programming, alas it wasn't meant to be.

    The way I've worked around it is by first filtering out the note on velocity 0 message sent when lifting off the pad like so:

    if ( 0 < extvalue(0,1)) goto stuff
    stuff here
    In my case since I want toggle, I went ahead and created a pangoscript that defines globalvars for each of the pads and holds the state. I check the state in the stuff: section and act appropriately. This seems to have worked just fine.

    Setting the color on the pads works just fine. If you can come up with a better solution, I'm all ears :)