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.

Request new Mozaic Scripts *HERE*

1141517192069

Comments

  • @wim said:

    @Tamir_Raz_Mataz said:
    Helloe mozaicsters.

    How do I fix:

    [OnPadUp] Syntax Error: unknown or invalid argument "@ONPADDOWN"
    [OnPadUp] Syntax Error: missing -1 closure(s) (endif, endfor, endwhile)

    https://patchstorage.com/cc-toggle-v1-04-mod-kitr/

    Check the @OnPadUp section. You're probably missing the @End that it needs to close it.

    [edit] ahh, yes, I can see that @_ki already answered on the patch storage page. 👍🏼

    Many thnx!

  • Somehow I can’t get the shuffle Agogo to send Program Change to my user presets on ThumbJam and DrumJam.

    https://patchstorage.com/agogo-shuffle-version-1-0/

    It’s got 4 categories for changing programs:

    Bank select MSB (CC0) = 00 – program change messages load pad
    instruments (indexed from the alphabetically ordered list)
    Bank select MSB (CC0) = 01
    with LSB (CC32) picks the FACTORY preset group, with
    program change events selecting the preset within that group.
    Bank select MSB (CC0) = 02
    with LSB (CC32) picks the USER preset group, with
    program change events selecting the preset within that group.

    To load factory presets, you need to send a bank select MSB message (CC 0) with value of 1, and a bank select LSB (CC 32) with the value of the group. Then program changes will a preset in that group. Similar for User presets, you send a CC0 with value of 2. You only need to send the CC0 and CC32 when you want to select a different group for program changes to affect.

    Any tweak Suggested?

  • _ki_ki
    edited June 2020

    @Tamir_Raz_Mataz

    My remarks on PatchSorage will fix the syntax errors you got, but that doesn‘t mean the script will work as expected ;-)

    .

    I only had a look for syntax errors. I didn’t check other thing as i don‘t know what the code is supposed to do and how you tried to implemented that.

    As i don’t have the external controller you seem to use with the script. And it would be very helpfull if there was an AUM or AudioBus session just including the script, drambo and the whole routing together with some kind of documentation what to test, how the thing should work, what‘s working and what not and how to test.
    I understand that providing all this information and thinking about the problem is half the work of finishing the script itself

    With just the script and not enough information its like searching a needle in a haystack.

  • @_ki said:
    @Tamir_Raz_Mataz

    My remarks on PatchSorage will fix the syntax errors you got, but that doesn‘t mean the script will work as expected ;-)

    .

    I only had a look for syntax errors. I didn’t check other thing as i don‘t know what the code is supposed to do and how you tried to implemented that.

    As i don’t have the external controller you seem to use with the script. And it would be very helpfull if there was an AUM or AudioBus session just including the script, drambo and the whole routing together with some kind of documentation what to test, how the thing should work, what‘s working and what not and how to test.
    I understand that providing all this information and thinking about the problem is half the work of finishing the script itself

    With just the script and not enough information its like searching a needle in a haystack.

    Sure thing. I tested it and it works fine in Aum with Drambo. Haven’t tried with an external controller yet.

    1-8 pads. mute / unmute
    9-16 pads. Select a channel

    I am trying to set Drambo as a midi looper.

    Ideally it can have 2 knobs for selecting a channel as up/down.
    Couldn’t figure it out yet.

    I cam send you the Aum project.

  • @_ki said:
    @Tamir_Raz_Mataz

    My remarks on PatchSorage will fix the syntax errors you got, but that doesn‘t mean the script will work as expected ;-)

    .

    I only had a look for syntax errors. I didn’t check other thing as i don‘t know what the code is supposed to do and how you tried to implemented that.

    As i don’t have the external controller you seem to use with the script. And it would be very helpfull if there was an AUM or AudioBus session just including the script, drambo and the whole routing together with some kind of documentation what to test, how the thing should work, what‘s working and what not and how to test.
    I understand that providing all this information and thinking about the problem is half the work of finishing the script itself

    With just the script and not enough information its like searching a needle in a haystack.

    https://www.dropbox.com/s/h98yuug2l25wgnc/Florntin chill1.aumproj?dl=0

  • edited June 2020

    I'd like to see a Mozaic version of this Max program that coverts raw touch data from Sensel Morph into MPE messages for an MPE synth:

    Are there any barriers preventing the MPE conversion layer from being coded as a Mozaic plugin?

  • wimwim
    edited June 2020

    @mojozart said:
    I'd like to see a Mozaic version of this Max program that coverts raw touch data from Sensel Morph into MPE messages for an MPE synth:

    Are there any barriers preventing the MPE conversion layer from being coded as a Mozaic plugin?

    I don't have time right now to look into what you posted, but you might want to take a look at MPE Multiplexer to see if it offers anything useful. It was an attempt to adapt MPE messages to non-MPE synths.

  • _ki_ki
    edited June 2020

    @Tamir_Raz_Mataz
    There are 6 Moazic instances, 4 IAAs (Future Drummer, Gestrument, Thumbjam, IDensity) which don‘t reload their settings, one Drambo instance which is loaded as MidiFX (so there is no audio for it and its unclear what its meant to be playing this midi), 8 FX AUs, several internal FX in all together 18 tracks - your AUM sessions is quite busy.

    Probably well suited for jamming around (if one sets up all IAAs to your settings), but not at all for bug-testing - too many distracting things gnot related to the problem ;)

    I saw the 2 instances of the CC Toggle scripts in the same track as Drambo, but its unclear what they should do. The upper seems to mute/unmute channels, i couldn‘t figure out the lower instances purpose.

    .

    A debuggable session should only contain the minimal number of things needed for testing. Perhaps you can clean up a bit and give a more detailed description what you want to achieve. If that script idea comes out as ‚general purpose’ and interesting for more user or use-cases, then someone else might give your problem a try

    .

    As mentioned before, i‘m quite busy with own scripts - therefore i can only give directions and remarks.

  • _ki_ki
    edited June 2020

    I now removed everything except the Drambo track and the first CC Toggle instance.

    • The upper pad row selects mutes of CH1-8 of Drambo
    • and the lower pad row opens the rack for CH1-8 of Drambo

    The CC Toggle script seems to work well.

    .

    I assume you imagine a specific Drambo Control script. But this currently also needs special configuration in Drambo - IIRC you had to midi-learn them before they worked, so for other users this Drambo script its not plug and play, these steps need to be documented together with the such a script.

  • I'm hesitant to volunteer to build a custom app since I tend to write rather buggy scripts but I do like to think about Mozaic designs.

    Here are the possible GUI interfaces Mozaic provides:

    You CAN use the "Shift" button presses as an event to switch from one GUI to another
    or to re-present the same GUI but with a new context.

    @Hypnopad wants to several things in a new Mozaic script and he prototype a GUI using
    layout #3 in a request to the Mozaic devs on another thread.

    There are 3 aspects to an application:
    1. Data Model (all we have are Variables which a 1 dimensional 1024 element arrays)
    2. Behavior (code which generates output and changes in the UI)
    3. User Interface

    I think Hynopad wants:

    DATA MODEL:
    Parallel arrays that hold - parallel arrays (p-array) allow you yo use 1 index to get multiple sync'ed parameters:
    1. Note
    2. Velocity

    BEHAVIOR:
    For a specific MIDI NOTE then next "index" of the MIDi Note+Velocity p-arrays is sent out.
    The index is reset to 0 when reaching the end of the sequence length variable.

    UI:
    How would you map the input choices and the presentation to user?

    Knobs can input 0-127.
    You can shift to copies of any screen format at any stage in the process.

    It's an interesting problem, right?

  • @McD Thanks for help pushing this along but @wim is already on the case. He helped me a while back with updating his midi controller range script which was awesome so I asked him for help on the round robin script. Sounds like he’s got a handle on the outer user interface. I realized I needed a reset button as well as midi out and rests. Plus an easy to program interface. Along with sEGments coming out in a couple days I might start my next phase soon. As long as my town doesn’t burn down.

  • wimwim
    edited June 2020

    Hey @hypnopad , most of the way there I think, but shutting down until tomorrow. It's in working order. I just need to do the part where tapping SHIFT changes which four controls you're working with (there are two sets of four knobs). Then I need to clean up the code and do more testing.

    I think it'll tick the boxes of what you asked for, but we'll see.

  • @wim Wow that was quick! Thank you!

  • @hypnopad said:
    I realized I needed a reset button as well as midi out and rests.

    Can you clarify on the "midi out"? Is that just the notes being played as each step comes up in the sequence, or did you need options for MIDI through.

    I was planning a "control channel" - the channel for notes coming in to advance the sequence, and an "output channel" that would allow you to send the step notes out to a different channel if you want. I was planning to have everything except the control channel notes pass through.

    That's easy to change though. Just let me know what you need.

  • edited June 2020

    @wim Sorry for the confusion. The midi out comment wasn’t about Mozaic but another app (Mirack) I was using as a round robin that didn’t have midi out. I don’t need or want midi thru. The round robins I use in Mac OS /Ableton don’t deal with midi channels at all. All the midi routing is done by Ableton or in the case of iOS by AUM.

  • Thanks. I will still throw in an optional midi thru, but defaulted to off. This is generally a good idea because others may use the script and need it.

  • Good call. I agree.

  • @_ki said:
    @Tamir_Raz_Mataz
    There are 6 Moazic instances, 4 IAAs (Future Drummer, Gestrument, Thumbjam, IDensity) which don‘t reload their settings, one Drambo instance which is loaded as MidiFX (so there is no audio for it and its unclear what its meant to be playing this midi), 8 FX AUs, several internal FX in all together 18 tracks - your AUM sessions is quite busy.

    Probably well suited for jamming around (if one sets up all IAAs to your settings), but not at all for bug-testing - too many distracting things gnot related to the problem ;)

    I saw the 2 instances of the CC Toggle scripts in the same track as Drambo, but its unclear what they should do. The upper seems to mute/unmute channels, i couldn‘t figure out the lower instances purpose.

    .

    A debuggable session should only contain the minimal number of things needed for testing. Perhaps you can clean up a bit and give a more detailed description what you want to achieve. If that script idea comes out as ‚general purpose’ and interesting for more user or use-cases, then someone else might give your problem a try

    .

    As mentioned before, i‘m quite busy with own scripts - therefore i can only give directions and remarks.

    Sorry I sent the old unclean version by mistake.
    The minimal debuggable version had the details in the info.
    https://www.dropbox.com/s/e4r9sfl67zol9wz/Drambo midi looper.aumproj?dl=0

    Template for using Drambo as a midi live looper.

    Mapping 2 instances of mozaic

    Mozaic 1

    1-8 mute/unmute
    9-16 select channel

    Mozaic 2
    1-8 select a pattern
    9 record
    10 undo

    1st Drambo is drums
    2nd Drambo midi looper send midi to 8 channels of ThumbJam

  • @_ki said:
    I now removed everything except the Drambo track and the first CC Toggle instance.

    • The upper pad row selects mutes of CH1-8 of Drambo
    • and the lower pad row opens the rack for CH1-8 of Drambo

    The CC Toggle script seems to work well.

    .

    I assume you imagine a specific Drambo Control script. But this currently also needs special configuration in Drambo - IIRC you had to midi-learn them before they worked, so for other users this Drambo script its not plug and play, these steps need to be documented together with the such a script.

    A script with Aum template is also useful.

    Thanks for testing.

  • edited June 2020

    @wim do you know if the inverse to your CC trigger to notes script exists? That is, once a note velocity hits a certain threshold it delivers a CC?

  • Is there a way in Mozaic to use the 16 pads on a Launchkey Mk2 as a step sequencer?

  • @ahallam said:
    Is there a way in Mozaic to use the 16 pads on a Launchkey Mk2 as a step sequencer?

    What are you envisioning happening with a PAD tap? I'm sure you can use Mozaic to
    treat each PAD as a unique event and create behavior for each one.

    @hypnopad has been searching for a way to pre-load a sequence and then trigger it with
    a single PAD for input. He's tried Mozaic, Drambo and MiRack and each can do the triggering but he wants a really simple way to program the sequence and Mozaic might have the best option. Ideally, a piano roll like tool will emerge that has this "next note on input" feature.

    DEVELOPERS: Please make a piano roll type sequencer that outputs the next step based upon a specific MIDI note input event. Then the user can create sequences to be controlled
    using Drum Pads. Of course, the sequencer can also do the usual BPM driven clocking and such. It's a simple tool but very useful for drummers using IOS as a sound module. It could also get fancy and trigger audio files in addition of sending out MIDI Notes. There's a huge demand for that use case.

  • I have a script request that may be easier to work up in StreamByter but I throw it out here for this crew to see if anyone can think of an elegant way to accomplish this in Mozaic: I want to do a conditional statement for two inputs:

    The first input is simply playing note C1.

    The second input is CC16 and there are three ranges of values: 0-50, 50-90, 90-127

    If CC16 is in the first range, the C1 note passes through.
    If CC16 is in the second range, note C1 is mapped to C2.
    If CC16 is in the third range, note C1 is mapped to C3.

    Thanks for taking a look!

  • @McD said:

    What are you envisioning happening with a PAD tap? I'm sure you can use Mozaic to
    treat each PAD as a unique event and create behavior for each one.

    @hypnopad has been searching for a way to pre-load a sequence and then trigger it with
    a single PAD for input. He's tried Mozaic, Drambo and MiRack and each can do the triggering but he wants a really simple way to program the sequence and Mozaic might have the best option. Ideally, a piano roll like tool will emerge that has this "next note on input" feature.

    I just realized that there is a programming reference to the Mk2. I may be able to build something myself, or at least get a more reasonable idea of what’s potentially doable. I was a little disappointed to read the manual and find out the pads won’t transmit CC.

  • @wim said:

    @mojozart said:
    I'd like to see a Mozaic version of this Max program that coverts raw touch data from Sensel Morph into MPE messages for an MPE synth:

    Are there any barriers preventing the MPE conversion layer from being coded as a Mozaic plugin?

    I don't have time right now to look into what you posted, but you might want to take a look at MPE Multiplexer to see if it offers anything useful. It was an attempt to adapt MPE messages to non-MPE synths.

    Thanks. Sounds plausible, as I'm looking for a Demultiplex. In terms of technical hurdles, I wonder how to process the raw touches from Sensel Morph. Maybe they can be received as MIDI CC or sysex.

    https://github.com/sensel/C74-Max-Examples

  • wimwim
    edited June 2020

    @mojozart said:

    @wim said:

    @mojozart said:
    I'd like to see a Mozaic version of this Max program that coverts raw touch data from Sensel Morph into MPE messages for an MPE synth:

    Are there any barriers preventing the MPE conversion layer from being coded as a Mozaic plugin?

    I don't have time right now to look into what you posted, but you might want to take a look at MPE Multiplexer to see if it offers anything useful. It was an attempt to adapt MPE messages to non-MPE synths.

    Thanks. Sounds plausible, as I'm looking for a Demultiplex. In terms of technical hurdles, I wonder how to process the raw touches from Sensel Morph. Maybe they can be received as MIDI CC or sysex.

    https://github.com/sensel/C74-Max-Examples

    You can customize any control on any Morph map to send any message you want (except sysex). The Morph doesn't have to send MPE either.

    That's a far more straightforward way to do it than trying to force MPE into mono cc streams.

    That said, the script should do what you need, I think. I used a Morph in MPE mode for testing when I wrote the script. I still haven't dived into your full description to understand exactly what you need. But the basic idea of that script is to transform multi-channel MPE input into single channel streams of CC's and / or pitch-bend.

  • wimwim
    edited June 2020

    @lukesleepwalker said:
    I have a script request that may be easier to work up in StreamByter but I throw it out here for this crew to see if anyone can think of an elegant way to accomplish this in Mozaic: I want to do a conditional statement for two inputs:

    The first input is simply playing note C1.

    The second input is CC16 and there are three ranges of values: 0-50, 50-90, 90-127

    If CC16 is in the first range, the C1 note passes through.
    If CC16 is in the second range, note C1 is mapped to C2.
    If CC16 is in the third range, note C1 is mapped to C3.

    Thanks for taking a look!

    Here ya go. Your ranges were overlapping, so I made it 0-49, 50-89, and 90-127.

    @OnLoad
      // C1 may be different according to app or hardware. Adjust note number to suit.
      c1 = 36
      cc = 16
      adjust = 0
    @End
    
    @OnMidiCC
    
      if MIDIByte2 = cc
        if MIDIByte3 < 50
          adjust = 0
        elseif MIDIByte3 < 90
          adjust = 12
        else
          adjust = 24
        endif
      else
        // Comment out or remove if you don't want passthru for other cc's
        SendMIDIThru
      endif
    
    @End
    
    @OnMidiNote
    
      if  MIDINote = c1 
        note = c1 + adjust
        SendMIDIOut MIDIByte1,note,MIDIByte3
    
      else
        // Comment out or remove if you don't want passthru for other notes
        SendMIDIThru
      endif
    
    @End
    
  • @wim said:

    @lukesleepwalker said:
    I have a script request that may be easier to work up in StreamByter but I throw it out here for this crew to see if anyone can think of an elegant way to accomplish this in Mozaic: I want to do a conditional statement for two inputs:

    The first input is simply playing note C1.

    The second input is CC16 and there are three ranges of values: 0-50, 50-90, 90-127

    If CC16 is in the first range, the C1 note passes through.
    If CC16 is in the second range, note C1 is mapped to C2.
    If CC16 is in the third range, note C1 is mapped to C3.

    Thanks for taking a look!

    Here ya go. Your ranges were overlapping, so I made it 0-49, 50-89, and 90-127.

    @OnLoad
      // C1 may be different according to app or hardware. Adjust note number to suit.
      c1 = 36
      cc = 16
      adjust = 0
    @End
    
    @OnMidiCC
    
      if MIDIByte2 = cc
        if MIDIByte3 < 50
          adjust = 0
        elseif MIDIByte3 < 90
          adjust = 12
        else
          adjust = 24
        endif
      else
        // Comment out or remove if you don't want passthru for other cc's
        SendMIDIThru
      endif
      
    @End
    
    @OnMidiNote
    
      if  MIDINote = c1 
        note = c1 + adjust
        SendMIDIOut MIDIByte1,note,MIDIByte3
        
      else
        // Comment out or remove if you don't want passthru for other notes
        SendMIDIThru
      endif
      
    @End
    

    THANK YOU!

Sign In or Register to comment.