Loopy Pro: Create music, your way.

What is Loopy Pro?Loopy Pro is a powerful, flexible, and intuitive live looper, sampler, clip launcher and DAW for iPhone and iPad. At its core, it allows you to record and layer sounds in real-time to create complex musical arrangements. But it doesn’t stop there—Loopy Pro offers advanced tools to customize your workflow, build dynamic performance setups, and create a seamless connection between instruments, effects, and external gear.

Use it for live looping, sequencing, arranging, mixing, and much more. Whether you're a live performer, a producer, or just experimenting with sound, Loopy Pro helps you take control of your creative process.

Download on the App Store

Loopy Pro is your all-in-one musical toolkit. Try it for free today.

Launchpad Programming

This is continuing a discussion about controlling Novation Launchpads via programming mode started here:

https://forum.audiob.us/discussion/comment/1071244/#Comment_1071244

«134

Comments

  • This started as a discussion about how to set up Launchpad Faders in session mode and how to activate them. See the original post for details.

    @Artvarg : the fader sysex that you were sending just sends the fader setup information: the colors and CC mapping. It doesn't actually switch to the fader layout. And there is no way to switch to the fader layout on the Launchpad itself. To switch to the faders you need to send "switch layout" sysex.

    On a Launchpad X, the switch layout sysex bytes to send from Mozaic are

    0x00, 0x20, 0x29, 0x02, 0x0C, 0x00,

    The layout index byte for the fader layout is 0x0D
    Custom layout 1 is 0x04
    DAW layout is 0x00
    Note layout is 0x01

    See the selecting layout section of the programmer's reference.

    Keep in mind that sending the Daw on/off codes, resets the current state. So, if using within something like Loopy, don't send that message. You can safely send the fader setup and layout change messages without messing anything up

    The exact sysex for you will be different -- but I think you only need to change one of the header bytes.

    All Launchpad X commands start: 0x00, 0x20, 0x29, 0x02, 0x0C,

    From what I see in your code Launchpad Pro mk3 commands start with 0x00, 0x20, 0x29, 0x02, 0x0E,

  • What do you need to know about setting up faders?

    There they are responding to incoming midi:

    Unlimited faders (92 faders visible here)

    All of the above in session (not programmers) mode....so they are all using sysex strings.

  • @AlmostAnonymous : take a look at the posts that I linked to for context. The discussion is about what sysex what needs to send.

  • @espiegel123 Thanks a lot for opening a new thread and all the input. I‘ll give it a try once the not-so-little-one is asleep.

    @AlmostAnonymous I‘m trying to access the faders of the LPPMK3 by sending sysex via Mozaic but couldn’t get any reaction from the Launchpad.

  • @Artvarg said:
    @espiegel123 Thanks a lot for opening a new thread and all the input. I‘ll give it a try once the not-so-little-one is asleep.

    @AlmostAnonymous I‘m trying to access the faders of the LPPMK3 by sending sysex via Mozaic but couldn’t get any reaction from the Launchpad.

    For the time being, don't read data coming from the DAW port into Mozaic. It looks like Loopy is filtering out the sysex -- except for the closing F7 -- which kills Mozaic. Sending from Mozaic to the DAW port is working fine.

  • edited April 2022

    @Artvarg

    Some basics:

    Everything I describe here is in Session Mode not Programmers Mode.

    yes, you have send the data size every time for sysex:
    SendSysex _SomeArray_, _NumberOfEntiersInArray_
    like
    (SendSysex DrawFader, 14)

    Your don't need the 1st and the last sysex messages. You can leave off the F0 and F7 (240 and 247)

    I use normal numbers, its easier in my brain to edit CC 72 the remember all the 0x3F

    You can only draw faders on the Volume, Sends, Device, and Pan pages. In the 2nd vid above, even though I'm using the scene launch buttons, the faders are actually drawn on the volume page, I just illuminate the different buttons instead.

    Example Data string for a Volume Fader in leftmost position on the Volumes page:

    SYFADERSETUP1 = [0, 32, 41, 2, 14, 1, 0, 0, 0, 0, 1, 122] // 12
    SendSysex SYFADERSETUP1, 12
    

    That will setup a green vertical fader in the left most position controlling CC1

    Format of String:

    [0, 32, 41, 2, 14, 1, **BANK** (vol, pan, sends, device / 0-3 values), **FADER ORIENTATION** (vert or horz / 0-1 Values), **FADER POSITION** (position 1-8 / 0-7 Values), **FADER TYPE** (uni or bi polar / 0-1 Values), **CC NUMBE**R (0-127), **COLOR** (0-127)}

    Sysex Strings for 8 Faders on the volume page, cc's 1-8, alternating colors of green:

    SYFADERSETUP1 = [0, 32, 41, 2, 14, 1, 0, 0, 0, 0, 1, 122] // 12
    SYFADERSETUP2 = [0, 32, 41, 2, 14, 1, 0, 0, 1, 0, 2, 16] // 12
    SYFADERSETUP3 = [0, 32, 41, 2, 14, 1, 0, 0, 2, 0, 3, 122] // 12
    SYFADERSETUP4 = [0, 32, 41, 2, 14, 1, 0, 0, 3, 0, 4, 16] // 12
    SYFADERSETUP5 = [0, 32, 41, 2, 14, 1, 0, 0, 4, 0, 5, 122] // 12
    SYFADERSETUP6 = [0, 32, 41, 2, 14, 1, 0, 0, 5, 0, 6, 16] // 12
    SYFADERSETUP7 = [0, 32, 41, 2, 14, 1, 0, 0, 6, 0, 7, 122] // 12
    SYFADERSETUP8 = [0, 32, 41, 2, 14, 1, 0, 0, 7, 0, 8, 16] // 12
    

    Send each one with

    SendSysex SYFADERSETUPx, 12

  • I'm pretty terrible at organizing my thoughts on paper. I assume questions are coming :p

  • @AlmostAnonymous said:
    I'm pretty terrible at organizing my thoughts on paper. I assume questions are coming ::p

    Btw, his sysex was fine. The only thing that he didn't know is that you have to send a sysex message to the Launchpad to display the fader layout -- as I explained in my earlier post.

  • edited April 2022

    another thing to note....you'll wanna keep track of the CC values in an array.

    you're gonna need to recall them when you redraw faders from switching between pages.
    faders also only respond on midi channel 5, so you'll need to translate from other channels if needed.

  • @AlmostAnonymous said:
    another thing to note....you'll wanna keep track of the CC values in an array.

    you're gonna need to recall them when you redraw faders from switching between pages.
    faders also only respond on midi channel 5, so you'll need to translate from other channels if needed.

    On the Launchpad X, the fader values persist when switching to another page and back is the LP Pro different in this way? I think the LPX also only has one fader page -- unless there is something in the programmer's guide I missed.

  • Awesome, I managed to set up a fader. 🥳
    The confusing part was, that the button for the fader page doesn‘t activate. So I have to select the layout via sysex like @espiegel123 pointed out.

    Now I‘m off to getting the fader button to switch the layout. Is there any shortcut to setting up the button, @AlmostAnonymous? I was assuming that this happens automatically.

  • @Artvarg said:
    Awesome, I managed to set up a fader. 🥳
    The confusing part was, that the button for the fader page doesn‘t activate. So I have to select the layout via sysex like @espiegel123 pointed out.

    Now I‘m off to getting the fader button to switch the layout. Is there any shortcut to setting up the button, @AlmostAnonymous? I was assuming that this happens automatically.

    What I have done is set up a script that listens to the LP to see if the Session Mode button is pressed and every other time it is pressed, I send out the sysex to show the Faders page.

    Maybe on the LP Pro, there is something else that works. I haven't found any button on the LPX that will switch to Fader layout on its own. LP Pro might be different.

  • The volume button on the LP sends CC4. So far mozaic crashes inside loopy pro if I let it react to an incoming CC message. It works fine in AUM though. I call it quits for today.
    Thanks a lot @espiegel123 and @AlmostAnonymous you really helped me get one step closer to the ultimate Launchpad setup. 🙏

  • @Artvarg said:
    The volume button on the LP sends CC4. So far mozaic crashes inside loopy pro if I let it react to an incoming CC message. It works fine in AUM though. I call it quits for today.
    Thanks a lot @espiegel123 and @AlmostAnonymous you really helped me get one step closer to the ultimate Launchpad setup. 🙏

    Here is the deal with the Mozaic crash. Loopy Pro is stripping out all but the last byte of any sysex messages and that byte (F7) is crashing Mozaic.

    I found a workaround. I have a 3 line streambyter script that strips that byte. I route the midi from the Launchpad through streambyter to Mozaic. I can post it later.

  • @Artvarg this streambyter script filters out the lone F7 bytes that are crashing Mozaic

    IF M0 == F7
      SET LB0 SF7
      BLOCK
    END
    

    Here is a picture of my routing in Loopy Pro:

  • @espiegel123 said:
    @Artvarg this streambyter script filters out the lone F7 bytes that are crashing Mozaic

    IF M0 == F7
      SET LB0 SF7
      BLOCK
    END
    

    Here is a picture of my routing in Loopy Pro:

    So Mozaic sends to LP Daw Port. Streambyter is fed by DAW Out port and passes the filtered MIDI to Mozaic.

  • edited April 2022
        SYSESSION = [240, 0, 32, 41, 2, 14, 0, 0, 0, 0, 247] // 11
        SYNOTE = [240, 0, 32, 41, 2, 14, 0, 4, 0, 0, 247] // 11
        SYDAWNOTE = [240, 0, 32, 41, 2, 14, 15, 0, 247] //9
        SYDAWDRUM = [240, 0, 32, 41, 2, 14, 15, 1, 247] //9
        SYCHORD = [240, 0, 32, 41, 2, 14, 0, 2, 0, 0, 247] // 11
        SYCUSTOM1 = [240, 0, 32, 41, 2, 14, 0, 3, 0, 0, 247] // 11
        SYCUSTOM2 = [240, 0, 32, 41, 2, 14, 0, 3, 1, 0, 247] // 11
        SYCUSTOM3 = [240, 0, 32, 41, 2, 14, 0, 3, 2, 0, 247] // 11
        SYCUSTOM4 = [240, 0, 32, 41, 2, 14, 0, 3, 3, 0, 247] // 11
        SYCUSTOM5 = [240, 0, 32, 41, 2, 14, 0, 3, 4, 0, 247] // 11
        SYCUSTOM6 = [240, 0, 32, 41, 2, 14, 0, 3, 5, 0, 247] // 11
        SYCUSTOM7 = [240, 0, 32, 41, 2, 14, 0, 3, 6, 0, 247] // 11
        SYCUSTOM8 = [240, 0, 32, 41, 2, 14, 0, 3, 7, 0, 247] // 11
        SYSEQSTEP1 = [240, 0, 32, 41, 2, 14, 0, 7, 0, 0, 247] // 11
        SYSEQSTEP2 = [240, 0, 32, 41, 2, 14, 0, 7, 1, 0, 247] // 11
        SYSEQSTEP3 = [240, 0, 32, 41, 2, 14, 0, 7, 2, 0, 247] // 11
        SYSEQSTEP4 = [240, 0, 32, 41, 2, 14, 0, 7, 3, 0, 247] // 11
        SYFADER1 = [240, 0, 32, 41, 2, 14, 0, 1, 0, 0, 247] // 11
        SYFADER2 = [240, 0, 32, 41, 2, 14, 0, 1, 1, 0, 247] // 11
        SYFADER3 = [240, 0, 32, 41, 2, 14, 0, 1, 2, 0, 247] // 11
        SYFADER4 = [240, 0, 32, 41, 2, 14, 0, 1, 3, 0, 247] // 11
    

    @Artvarg
    These are my @onload variables for calling every page of the LPP. I am unsure if this is what you were asking in your previous post about setting up the button.

    SYFADER are the volume, pan, sends, and device pages.
    SYCUSTOM are the custom pages you build with novation compnents.
    SYSTEP are the sequencer's pages

    These are also from an old script. You need to remove the 240's and 247's, otherwise mozaic sends them twice and is possible to cause conflicts.

  • @espiegel123 said:

    @espiegel123 said:
    @Artvarg this streambyter script filters out the lone F7 bytes that are crashing Mozaic

    IF M0 == F7
      SET LB0 SF7
      BLOCK
    END
    

    Here is a picture of my routing in Loopy Pro:

    So Mozaic sends to LP Daw Port. Streambyter is fed by DAW Out port and passes the filtered MIDI to Mozaic.

    Thanks for the script I‘ll be trying it tonight. Though I‘m still a little bit confused. From what I gathered, Mozaic only listens to sysex messages if explicitly told to. In my case Mozaic is only reacting to MIDI CC and not listening to sysex messages. So why is it still crashing?

    @AlmostAnonymous said:
    These are my @onload variables for calling every page of the LPP. I am unsure if this is what you were asking in your previous post about setting up the button.

    Cool, this might be helpful.
    I‘m talking about the bottom row of buttons on the Launchpad. One is labeled „volumes“, which I thought would switch to the faders page once it’s set up. But it remains inactive.

  • @Artvarg said:

    @espiegel123 said:

    @espiegel123 said:
    @Artvarg this streambyter script filters out the lone F7 bytes that are crashing Mozaic

    IF M0 == F7
      SET LB0 SF7
      BLOCK
    END
    

    Here is a picture of my routing in Loopy Pro:

    So Mozaic sends to LP Daw Port. Streambyter is fed by DAW Out port and passes the filtered MIDI to Mozaic.

    Thanks for the script I‘ll be trying it tonight. Though I‘m still a little bit confused. From what I gathered, Mozaic only listens to sysex messages if explicitly told to. In my case Mozaic is only reacting to MIDI CC and not listening to sysex messages. So why is it still crashing?

    @AlmostAnonymous said:
    These are my @onload variables for calling every page of the LPP. I am unsure if this is what you were asking in your previous post about setting up the button.

    Cool, this might be helpful.
    I‘m talking about the bottom row of buttons on the Launchpad. One is labeled „volumes“, which I thought would switch to the faders page once it’s set up. But it remains inactive.

    @Artvarg : re Mozaic, the problem is that there is a Loopy bug that strips off the sysex header. If you listen to MIDI, Mozaic needs to read the messages to see what type of MIDI message it is. The message that it sees is not sysex -- or anything else legal. So, that is why for the time being you need the streambyter script -- it blocks the illegitimate MIDI that crashes mozaic.

  • @espiegel123 said:

    @Artvarg said:

    @espiegel123 said:

    @espiegel123 said:
    @Artvarg this streambyter script filters out the lone F7 bytes that are crashing Mozaic

    IF M0 == F7
      SET LB0 SF7
      BLOCK
    END
    

    Here is a picture of my routing in Loopy Pro:

    So Mozaic sends to LP Daw Port. Streambyter is fed by DAW Out port and passes the filtered MIDI to Mozaic.

    Thanks for the script I‘ll be trying it tonight. Though I‘m still a little bit confused. From what I gathered, Mozaic only listens to sysex messages if explicitly told to. In my case Mozaic is only reacting to MIDI CC and not listening to sysex messages. So why is it still crashing?

    @AlmostAnonymous said:
    These are my @onload variables for calling every page of the LPP. I am unsure if this is what you were asking in your previous post about setting up the button.

    Cool, this might be helpful.
    I‘m talking about the bottom row of buttons on the Launchpad. One is labeled „volumes“, which I thought would switch to the faders page once it’s set up. But it remains inactive.

    @Artvarg : re Mozaic, the problem is that there is a Loopy bug that strips off the sysex header. If you listen to MIDI, Mozaic needs to read the messages to see what type of MIDI message it is. The message that it sees is not sysex -- or anything else legal. So, that is why for the time being you need the streambyter script -- it blocks the illegitimate MIDI that crashes mozaic.

    Alright, that makes sense.

  • edited April 2022

    @Artvarg said:
    I‘m talking about the bottom row of buttons on the Launchpad. One is labeled „volumes“, which I thought would switch to the faders page once it’s set up. But it remains inactive.

    Sorry I've been so slow to respond. Been crazy lately.

    In session mode, the buttons just send CCs. The volume button sends CC4.
    You need to tell mozaic to send the sysex to show the volume page when it receives CC4.

    So you'll need to route the Launchpad to the script and the script to the Launchpad (over the DAW port)

    The Launchpad should never talk to anything unless it's through the script.
    Apps should never talk to the Launchpad unless it's going through the script.
    EVERYTHING should go through the script.

    (UIs are fun in Mozaic.....)

  • Do you know this open source alternative firmware: https://github.com/dvhdr/launchpad-pro

    I know it's old and most probably not applicable to a modern device but maybe a source of inspiration

  • @AlmostAnonymous said:

    @Artvarg said:
    I‘m talking about the bottom row of buttons on the Launchpad. One is labeled „volumes“, which I thought would switch to the faders page once it’s set up. But it remains inactive.

    Sorry I've been so slow to respond. Been crazy lately.

    I‘ve actually been rather surprised at the high frequency of replies in this thread. 😅
    Especially because I only have time to try all the stuff in the evenings.

    In session mode, the buttons just send CCs. The volume button sends CC4.
    You need to tell mozaic to send the sysex to show the volume page when it receives CC4.

    So you'll need to route the Launchpad to the script and the script to the Launchpad (over the DAW port)

    That’s exactly what I tried yesterday when Mozaic crashed inside loopy pro.

    The Launchpad should never talk to anything unless it's through the script.
    Apps should never talk to the Launchpad unless it's going through the script.
    EVERYTHING should go through the script.

    Hmmm… the longer I think about this, the more confusing it gets for me. What about the host app? Loopy Pro does a very solid job of lighting the pads and other communication with the Launchpad. Do you want to tell me I should put all this stuff in the script? Is that even possible for Loopy? 😵‍💫
    For other apps I can totally see the point.

  • @Artvarg said:

    @AlmostAnonymous said:

    @Artvarg said:
    I‘m talking about the bottom row of buttons on the Launchpad. One is labeled „volumes“, which I thought would switch to the faders page once it’s set up. But it remains inactive.

    Sorry I've been so slow to respond. Been crazy lately.

    I‘ve actually been rather surprised at the high frequency of replies in this thread. 😅
    Especially because I only have time to try all the stuff in the evenings.

    In session mode, the buttons just send CCs. The volume button sends CC4.
    You need to tell mozaic to send the sysex to show the volume page when it receives CC4.

    So you'll need to route the Launchpad to the script and the script to the Launchpad (over the DAW port)

    That’s exactly what I tried yesterday when Mozaic crashed inside loopy pro.

    The Launchpad should never talk to anything unless it's through the script.
    Apps should never talk to the Launchpad unless it's going through the script.
    EVERYTHING should go through the script.

    Hmmm… the longer I think about this, the more confusing it gets for me. What about the host app? Loopy Pro does a very solid job of lighting the pads and other communication with the Launchpad. Do you want to tell me I should put all this stuff in the script? Is that even possible for Loopy? 😵‍💫
    For other apps I can totally see the point.

    I am having no problem in Loopy when set up as I showed. Loopy is is handling it’s normal launchpad session stuff and my Mozaic script listens for a cc that I use to show the faders. I only send fader setup info and the sysex to show the fader layout.

    Don’t send the session mode off/on stuff or it will break Loopy’s control. You can safely tell it to switch the displayed layout.

  • @espiegel123 or @Michael, isn't loopy using programmers mode, not session mode?

  • @AlmostAnonymous said:
    @espiegel123 or @Michael, isn't loopy using programmers mode, not session mode?

    I don’t have an LP Pro. My LP X says returns live mode when it is in-use by Loopy and I query it.

  • @espiegel123 said:

    @AlmostAnonymous said:
    @espiegel123 or @Michael, isn't loopy using programmers mode, not session mode?

    I don’t have an LP Pro. My LP X says returns live mode when it is in-use by Loopy and I query it.

    Maybe it's worth thinking about changing the thread title to "Launchpad X programming"?
    Most Launchpads are incompatible with the X.

  • @krassmann said:
    Do you know this open source alternative firmware: https://github.com/dvhdr/launchpad-pro

    I know it's old and most probably not applicable to a modern device but maybe a source of inspiration

    This was specifically created for the ProMK3. My end game was to get into that, but there were better options like Mozaic or javascript (which I don't know).

  • edited April 2022

    @espiegel123 said:

    @AlmostAnonymous said:
    @espiegel123 or @Michael, isn't loopy using programmers mode, not session mode?

    I don’t have an LP Pro. My LP X says returns live mode when it is in-use by Loopy and I query it.

    It would (at least I hope so for Michael's sanity) be the the same mode on a mini, X, or pro.

  • @rs2000 said:

    @espiegel123 said:

    @AlmostAnonymous said:
    @espiegel123 or @Michael, isn't loopy using programmers mode, not session mode?

    I don’t have an LP Pro. My LP X says returns live mode when it is in-use by Loopy and I query it.

    Maybe it's worth thinking about changing the thread title to "Launchpad X programming"?
    Most Launchpads are incompatible with the X.

    The LaunchPad Pro and LaunchPad X (and probably mini mk3) are very similar in the programming. The LP Pro has some capabilities that the X doesn't have -- but in terms of this question -- they seem relevant to each other.

Sign In or Register to comment.