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.

What midi app will allow me to send PC (Program Change) messages to scroll through AUM presets?

2

Comments

  • @Gavinski said:
    Ah no - unfortunately using Drambo for this in AUM is kicking my DSP up from 40 to over 100

    Hmmm. Not sure it should be that much. On my iPad 6 Drambo is running at 18% DSP, doing "nothing", which is pretty alarming. Remember, with the latest AUM, you can tap on DSP, then Node Statistics to see which modules are using it. We may be doing our Drambo wrong; maybe @rs2000 can comment.

    My personal choice for an app like this would be StreamByter. It's much lighter on DSP even when doing a lot more work (scanning long tables at MIDI clock rates, 24/beat). I'll see what I can do.

  • @Gavinski said:

    @AlmostAnonymous said:

    @Gavinski said:
    I did actually get that mozaic script working but a) it is time consuming to set up b) it seems a bit quirky. Eg i set pad 3 to send PC 3 but it is actually sending PC2

    Numbering in Mozaic starts at 0 (for the most part). Pads are labeled 0-15, as are midi channels. I haven’t looked at it myself, so it could still be off by one? @wim could answer that, but a lot of Mozaic scripts are written like that, where you configure pads with knobs and such.

    Right, Wim’s seems also off by one. But is the most convenient mozaic solution so far. What would I have to do to send out PC messages above 15? Some coding? This is really something I am intimidated by

    The numbering isn’t exactly a bug. MIDI starts counting at zero. Most (but not all) MIDI apps and hardware display 1 for the first program (the one that is actually program 0). So, wim’s program is true to the real MIDI.

  • @uncledave said:

    @Gavinski said:
    Ah no - unfortunately using Drambo for this in AUM is kicking my DSP up from 40 to over 100

    Hmmm. Not sure it should be that much. On my iPad 6 Drambo is running at 18% DSP, doing "nothing", which is pretty alarming. Remember, with the latest AUM, you can tap on DSP, then Node Statistics to see which modules are using it. We may be doing our Drambo wrong; maybe @rs2000 can comment.

    My personal choice for an app like this would be StreamByter. It's much lighter on DSP even when doing a lot more work (scanning long tables at MIDI clock rates, 24/beat). I'll see what I can do.

    100% CPU seems wrong. Maybe you have built a MIDI loop by accident?

  • @espiegel123 said:

    @Gavinski said:

    @AlmostAnonymous said:

    @Gavinski said:
    I did actually get that mozaic script working but a) it is time consuming to set up b) it seems a bit quirky. Eg i set pad 3 to send PC 3 but it is actually sending PC2

    Numbering in Mozaic starts at 0 (for the most part). Pads are labeled 0-15, as are midi channels. I haven’t looked at it myself, so it could still be off by one? @wim could answer that, but a lot of Mozaic scripts are written like that, where you configure pads with knobs and such.

    Right, Wim’s seems also off by one. But is the most convenient mozaic solution so far. What would I have to do to send out PC messages above 15? Some coding? This is really something I am intimidated by

    The numbering isn’t exactly a bug. MIDI starts counting at zero. Most (but not all) MIDI apps and hardware display 1 for the first program (the one that is actually program 0). So, wim’s program is true to the real MIDI.

    I see what u mean. Yeah i notice LFOH starts from 0 by default too

  • @Gavinski said:
    Is there no one knob solution that I can just turn and move to the next PC message?

    Fwiw, there is no general next/previous program change command. The midi program change event calls up a specific preset. Some apps may implement buttons that will call up the next or previous preset.

    But if you write a program need to either start by knowing what preset is currently active or start by sending a specific preset number. Then you could have a next/previous button that sends the next or previous program number.

  • edited June 2022

    Here's the StreamByter implementation. Copy/paste this into a StreamByter window and Install Rules. Route the MIDI as you need.
    Edit: Added handler for the menu at the top. You can select any PC number from that, then up/down from there. And btw, the number displayed is the value sent, range 0..127.

    #PCUpDown
    
    If load
    Set name PCsend
    Set Q0 Current_PC 0 7F +Menu
    Set Q1 Up +Button
    Set Q2 Down +Button
    Set Q3 Reset +Button
    Set Q4 +Hide
    Set Q5 +Hide
    Set Q6 +Hide
    Set Q7 +Hide
    Set Slider_Display 1
    
    Alias J00 theCount
    Ass J00 = 0
    
    Sub UpdateCount pMode
       Ass J01 = theCount
       If pMode == 0
          Ass theCount = Q0
       End
       If pMode == 1
          If theCount < 7F
             Mat theCount = theCount + 1
          End 
       End
       If pMode == 2
          If theCount > 0
             Mat theCount = theCount - 1
          End 
       End
       If pMode == 3
          Ass theCount = 0
       End
       If theCount != J01
          Send C0 theCount   # new PC message
          Ass Q0 = theCount
       End
    End
    
    End # Initialization ———————————————————————————
    
    If M0 == F0 7D 01       # handle control change
       UpdateCount M3
    End
    

    This pic shows it working. I just routed the output to another SB to view the output.

    This uses 4% DSP in my iPad 6, much better than 18% for the Drambo version. If you lose sight of the SB buttons window, just tap the globe icon in the lower right.

  • @uncledave said:
    Here's the StreamByter implementation. Copy/paste this into a StreamByter window and Install Rules. Route the MIDI as you need.

    #PCUpDown
    
    If load
    Set name PCsend
    Set Q0 Current_PC 0 7F +Menu
    Set Q1 Up +Button
    Set Q2 Down +Button
    Set Q3 Reset +Button
    Set Q4 +Hide
    Set Q5 +Hide
    Set Q6 +Hide
    Set Q7 +Hide
    Set Slider_Display 1
    
    Alias J00 theCount
    Ass J00 = 0
    
    Sub UpdateCount pMode
       Ass J01 = theCount
       If pMode == 1
          If theCount < 7F
             Mat theCount = theCount + 1
          End 
       End
       If pMode == 2
          If theCount > 0
             Mat theCount = theCount - 1
          End 
       End
       If pMode == 3
          Ass theCount = 0
       End
       If theCount != J01
          Send C0 theCount   # new PC message
          Ass Q0 = theCount
       End
    End
    
    End # Initialization ———————————————————————————
    
    If M0 == F0 7D 01     # handle control change
       UpdateCount M3
    End
    

    This pic shows it working. I just routed the output to another SB to view the output.

    This uses 4% DSP in my iPad 6, much better than 18% for the Drambo version. If you lose sight of the SB buttons window, just tap the globe icon in the lower right.

    Thanks @uncledave

  • edited June 2022

    @Poppadocrock . If you're using my script, please grab the updated version. I made the menu do a selection, so you can dial any PC number directly, as well as up/down from the current.

  • There’s an app called program changer. I haven’t used it but it’s free!

  • I have been thinking for a while that someone ought to make an AUv3 program change Swiss Army knife. Not just changing the host presets but it would be cool if you could basically make a setlist by sending PC messages or AU parameters to apps in AUM or Loopy Pro or Drambo or whatever.

  • wimwim
    edited June 2022

    Here's a Mozaic script where you can tap pads to cycle through bank and program. Tapping a pad increments the value and immediately sends the bank and program change. Default is on midi channel 1 but that can easily be changed in the code.

    @Description
    Increment Bank Select and Program Change using Mozaic Pads
    @End
    
    @OnLoad
      // Channel to send messages on
      chan = 0
      // Change this to YES to show PC/Bank as 1-128 rather than 0-127
      add1 = NO
    
      if Unassigned init
        init = YES
    
        // Default bank and program on new load
        bank = 0
        program = 0
      endif 
    
      Call @SetPadLabels
      Call @DoPadAction
    @End
    
    @OnPadDown
      pad = LastPad
    
      if pad = 0
        bank = bank+1
      elseif pad = 1
        program = program + 1
      elseif pad = 2
        bank = bank - 1
      elseif pad = 3
        program = program - 1
      endif
    
      if bank > 127 
        bank = 0
      elseif bank < 0
        bank = 127
      endif
    
      if program > 127 
        program = 0
      elseif program < 0
        program = 127
      endif
    
      Call @SetPadLabels
      Call @DoPadAction
    @End
    
    @DoPadAction
      //Log {Bank: }, bank, { Program: }, program
      SendMIDIBankSelect chan,0,bank
      SendMIDIProgramChange chan,program,1
    @End
    
    @SetPadLabels
        LabelPad 0, {⬆️                }, {Bank: }, (bank + add1)
        LabelPad 1, {⬆️                }, {Program: },  (program + add1)
        LabelPad 2, {⬇️                }
        LabelPad 3, {⬇️                }
    @End
    
  • @uncledave said:
    Here's the StreamByter implementation. Copy/paste this into a StreamByter window and Install Rules. Route the MIDI as you need.
    Edit: Added handler for the menu at the top. You can select any PC number from that, then up/down from there. And btw, the number displayed is the value sent, range 0..127.

    #PCUpDown
    
    If load
    Set name PCsend
    Set Q0 Current_PC 0 7F +Menu
    Set Q1 Up +Button
    Set Q2 Down +Button
    Set Q3 Reset +Button
    Set Q4 +Hide
    Set Q5 +Hide
    Set Q6 +Hide
    Set Q7 +Hide
    Set Slider_Display 1
    
    Alias J00 theCount
    Ass J00 = 0
    
    Sub UpdateCount pMode
       Ass J01 = theCount
       If pMode == 0
          Ass theCount = Q0
       End
       If pMode == 1
          If theCount < 7F
             Mat theCount = theCount + 1
          End 
       End
       If pMode == 2
          If theCount > 0
             Mat theCount = theCount - 1
          End 
       End
       If pMode == 3
          Ass theCount = 0
       End
       If theCount != J01
          Send C0 theCount   # new PC message
          Ass Q0 = theCount
       End
    End
    
    End # Initialization ———————————————————————————
    
    If M0 == F0 7D 01     # handle control change
       UpdateCount M3
    End
    

    This pic shows it working. I just routed the output to another SB to view the output.

    This uses 4% DSP in my iPad 6, much better than 18% for the Drambo version. If you lose sight of the SB buttons window, just tap the globe icon in the lower right.

    Oh great! Will check this later, thnx a lot Dave 🙏

  • @HotStrange said:
    There’s an app called program changer. I haven’t used it but it’s free!

    It's not AUv3 though. Btw @espiegel123 do i remember you saying in another thread you could use notes instead of PC messages tl do this in AUM? It does look like it should work, but i couldn't get that working either

  • @wim said:
    Here's a Mozaic script where you can tap pads to cycle through bank and program. Tapping a pad increments the value and immediately sends the bank and program change. Default is on midi channel 1 but that can easily be changed in the code.

    @Description
    Increment Bank Select and Program Change using Mozaic Pads
    @End
    
    @OnLoad
      // Channel to send messages on
      chan = 0
      // Change this to YES to show PC/Bank as 1-128 rather than 0-127
      add1 = NO
      
      if Unassigned init
        init = YES
        
        // Default bank and program on new load
        bank = 0
        program = 0
      endif 
      
      Call @SetPadLabels
      Call @DoPadAction
    @End
    
    @OnPadDown
      pad = LastPad
      
      if pad = 0
        bank = bank+1
      elseif pad = 1
        program = program + 1
      elseif pad = 2
        bank = bank - 1
      elseif pad = 3
        program = program - 1
      endif
      
      if bank > 127 
        bank = 0
      elseif bank < 0
        bank = 127
      endif
      
      if program > 127 
        program = 0
      elseif program < 0
        program = 127
      endif
      
      Call @SetPadLabels
      Call @DoPadAction
    @End
    
    @DoPadAction
      //Log {Bank: }, bank, { Program: }, program
      SendMIDIBankSelect chan,0,bank
      SendMIDIProgramChange chan,program,1
    @End
    
    @SetPadLabels
        LabelPad 0, {⬆️                }, {Bank: }, (bank + add1)
        LabelPad 1, {⬆️                }, {Program: },  (program + add1)
        LabelPad 2, {⬇️                }
        LabelPad 3, {⬇️                }
    @End
    

    Nice! Will also check this!

  • @Gavinski said:

    @HotStrange said:
    There’s an app called program changer. I haven’t used it but it’s free!

    It's not AUv3 though. Btw @espiegel123 do i remember you saying in another thread you could use notes instead of PC messages tl do this in AUM? It does look like it should work, but i couldn't get that working either

    Use notes instead of PC changes for what? In AUM , you can use just about any midi event type for anything. You can use notes or cc's for AUM's preset load actions of that is what you are asking.

  • @espiegel123 said:

    @Gavinski said:

    @HotStrange said:
    There’s an app called program changer. I haven’t used it but it’s free!

    It's not AUv3 though. Btw @espiegel123 do i remember you saying in another thread you could use notes instead of PC messages tl do this in AUM? It does look like it should work, but i couldn't get that working either

    Use notes instead of PC changes for what? In AUM , you can use just about any midi event type for anything. You can use notes or cc's for AUM's preset load actions of that is what you are asking.

  • @Gavinski said:

    @HotStrange said:
    There’s an app called program changer. I haven’t used it but it’s free!

    It's not AUv3 though. Btw @espiegel123 do i remember you saying in another thread you could use notes instead of PC messages tl do this in AUM? It does look like it should work, but i couldn't get that working either

    Ah didn’t realize that. Apologies!

  • edited June 2022

    @Gavinski said:
    Ah no - unfortunately using Drambo for this in AUM is kicking my DSP up from 40 to over 100

    Please try my version that I've just uploaded to Patchstorage. Are you getting audio crackles after loading it in AUM?
    Like said, make sure you don't have a MIDI loop.
    AUM tells me that a separate Drambo MIDI AUv3 instance uses between 3 and 4% CPU with this patch on an iPad 6.

  • @espiegel123 said:

    @espiegel123 said:

    @Gavinski said:

    @HotStrange said:
    There’s an app called program changer. I haven’t used it but it’s free!

    It's not AUv3 though. Btw @espiegel123 do i remember you saying in another thread you could use notes instead of PC messages tl do this in AUM? It does look like it should work, but i couldn't get that working either

    Use notes instead of PC changes for what? In AUM , you can use just about any midi event type for anything. You can use notes or cc's for AUM's preset load actions of that is what you are asking.

    Did that and tried using AUM keyboard note input, didn’t work, not sure why

  • @rs2000 said:

    @Gavinski said:
    Ah no - unfortunately using Drambo for this in AUM is kicking my DSP up from 40 to over 100

    Please try my version that I've just uploaded to Patchstorage. Are you getting audio crackles after loading it in AUM?
    Like said, make sure you don't have a MIDI loop.
    AUM tells me that a separate Drambo MIDI AUv3 instance uses between 3 and 4% CPU with this patch on an iPad 6.

    Thanks! Will check that cheers!

  • @Gavinski said:

    @espiegel123 said:

    @espiegel123 said:

    @Gavinski said:

    @HotStrange said:
    There’s an app called program changer. I haven’t used it but it’s free!

    It's not AUv3 though. Btw @espiegel123 do i remember you saying in another thread you could use notes instead of PC messages tl do this in AUM? It does look like it should work, but i couldn't get that working either

    Use notes instead of PC changes for what? In AUM , you can use just about any midi event type for anything. You can use notes or cc's for AUM's preset load actions of that is what you are asking.

    Did that and tried using AUM keyboard note input, didn’t work, not sure why

    I just tried it and it worked as expected. Can you post pictures of the midicontrol settings and routings.

  • wimwim
    edited June 2022

    @Gavinski said:

    @espiegel123 said:

    @espiegel123 said:

    @Gavinski said:

    @HotStrange said:
    There’s an app called program changer. I haven’t used it but it’s free!

    It's not AUv3 though. Btw @espiegel123 do i remember you saying in another thread you could use notes instead of PC messages tl do this in AUM? It does look like it should work, but i couldn't get that working either

    Use notes instead of PC changes for what? In AUM , you can use just about any midi event type for anything. You can use notes or cc's for AUM's preset load actions of that is what you are asking.

    Did that and tried using AUM keyboard note input, didn’t work, not sure why

    Check that you have the AUM keyboard routed to MIDI control. That's easy to forget. Also, you probably already know this, but you have to enter the note and channel manually because midi learn with the AUM keyboard, or anything else that requires a screen tap, can't be done since the dialog closes as soon as you tap anywhere outside the dialog.

  • @espiegel123 said:

    @Gavinski said:

    @espiegel123 said:

    @espiegel123 said:

    @Gavinski said:

    @HotStrange said:
    There’s an app called program changer. I haven’t used it but it’s free!

    It's not AUv3 though. Btw @espiegel123 do i remember you saying in another thread you could use notes instead of PC messages tl do this in AUM? It does look like it should work, but i couldn't get that working either

    Use notes instead of PC changes for what? In AUM , you can use just about any midi event type for anything. You can use notes or cc's for AUM's preset load actions of that is what you are asking.

    Did that and tried using AUM keyboard note input, didn’t work, not sure why

    I just tried it and it worked as expected. Can you post pictures of the midicontrol settings and routings.

    Have a look, thanks Ed:


  • edited June 2022

    .

  • I know so little about drambo, I’m sure there must be something I’m doing wrong @rs2000
    Anything wrong in my setup? Whether I try the sliders or the buttons I am getting no program change


  • @wim said:
    Here's a Mozaic script where you can tap pads to cycle through bank and program. Tapping a pad increments the value and immediately sends the bank and program change. Default is on midi channel 1 but that can easily be changed in the code.

    @Description
    Increment Bank Select and Program Change using Mozaic Pads
    @End
    
    @OnLoad
      // Channel to send messages on
      chan = 0
      // Change this to YES to show PC/Bank as 1-128 rather than 0-127
      add1 = NO
      
      if Unassigned init
        init = YES
        
        // Default bank and program on new load
        bank = 0
        program = 0
      endif 
      
      Call @SetPadLabels
      Call @DoPadAction
    @End
    
    @OnPadDown
      pad = LastPad
      
      if pad = 0
        bank = bank+1
      elseif pad = 1
        program = program + 1
      elseif pad = 2
        bank = bank - 1
      elseif pad = 3
        program = program - 1
      endif
      
      if bank > 127 
        bank = 0
      elseif bank < 0
        bank = 127
      endif
      
      if program > 127 
        program = 0
      elseif program < 0
        program = 127
      endif
      
      Call @SetPadLabels
      Call @DoPadAction
    @End
    
    @DoPadAction
      //Log {Bank: }, bank, { Program: }, program
      SendMIDIBankSelect chan,0,bank
      SendMIDIProgramChange chan,program,1
    @End
    
    @SetPadLabels
        LabelPad 0, {⬆️                }, {Bank: }, (bank + add1)
        LabelPad 1, {⬆️                }, {Program: },  (program + add1)
        LabelPad 2, {⬇️                }
        LabelPad 3, {⬇️                }
    @End
    

    This works!! Thanks a lot Wim, highly appreciated. Will use this later in my Crystalline vid and give you a shoutout.

  • edited June 2022

    Here's another simple option I made a while ago for going up and down program change. Two touch pads on screen or you can use a midi keyboard (C3 and D3).
    using Mfx convert + streambyter + midi Pads

    Only one bank though: Pc 0-127.

    For external keyboard control you need to route the input to mFx convert and the ouput from streambyter.

  • @Gavinski All you need to do is connect the MIDI input:

  • @Gavinski Also, the Track MIDI output (5-pin icon at the right) needs to be connected to the module MIDI output. Otherwise, the MIDI is not going anywhere.

Sign In or Register to comment.