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.

MOZAIC - Create your own AU MIDI plugins - OUT NOW!

189111314106

Comments

  • @Jumpercollins said:
    @rrc2soft Having fun with Strummer tonight thanks again all for this great app.

    Cool stuff!

  • @NoonienS said:
    Updated my script (Chord Magic), link below. Some bugfixes, added possibility to set octave for chord and strum speed per pattern step plus some other improvements.

    https://www.dropbox.com/s/gspbj4u97342h0q/Chord Magic.mozaic?dl=0

    Great stuff cheers gonna really dive into this tomorrow and learn how it functions proper!

  • @wim said:
    Dynamic Scale Quantizer. This one was prompted by a post some months back from someone looking for an app that would listen to midi note input, and build a scale filter from it. For instance, play a chord, then have any input forced to only the notes of the chord. if anyone locates that thread, please let me know. I’d be interested to know if this works the way the poster had in mind.

    Dropbox download link:
    https://www.dropbox.com/s/gh96ndo12a3cbk0/Dynamic Scale Quantize.mozaic?dl=0

    I was asking about a dynamic scale quantizer. This is very cool, thank you!

    However, unless I'm not quite understanding how to use it, I don't think it's quite what I was talking about.

    I believe this works by switching to a sampling mode where it learns the notes and then when you switch back it restricts playback to those notes. So, a two step process.

    I was envisioning a completely seamless, simultaneous process:
    You would feed the plugin two channels of notes; one is the stream of notes to be filtered and the second are the notes that define the filter.

    The impetus for this is that I often find random generators too random. Just because the notes are in the scale I'm in typically isn't enough for me - sometimes I want a way to rein them in. With this tool, I could play chords and conform the incoming stream of generated notes to my needs.

    Actually, the learning capabilities of your script are cool. I can envision how learning from a different sequence of notes could be useful (e.g. sequentially instead of sustained chords). In addition to a way to clear that buffer manually, having it reset every measure (or two or...) could be very cool to build up this second, aleatoric part based on another sequence and its harmonic progression.

    Also, while I did call it a quantizer, I would probably use it more as a filter (i.e. kill any non-chord notes, not transpose them to be in the chord), however I could see the use of both (or even have a probability setting for transpose or kill...)

  • @aplourde said:

    @wim said:
    Dynamic Scale Quantizer. This one was prompted by a post some months back from someone looking for an app that would listen to midi note input, and build a scale filter from it. For instance, play a chord, then have any input forced to only the notes of the chord. if anyone locates that thread, please let me know. I’d be interested to know if this works the way the poster had in mind.

    Dropbox download link:
    https://www.dropbox.com/s/gh96ndo12a3cbk0/Dynamic Scale Quantize.mozaic?dl=0

    I was asking about a dynamic scale quantizer. This is very cool, thank you!

    However, unless I'm not quite understanding how to use it, I don't think it's quite what I was talking about.

    I believe this works by switching to a sampling mode where it learns the notes and then when you switch back it restricts playback to those notes. So, a two step process.

    I was envisioning a completely seamless, simultaneous process:
    You would feed the plugin two channels of notes; one is the stream of notes to be filtered and the second are the notes that define the filter.

    The impetus for this is that I often find random generators too random. Just because the notes are in the scale I'm in typically isn't enough for me - sometimes I want a way to rein them in. With this tool, I could play chords and conform the incoming stream of generated notes to my needs.

    Actually, the learning capabilities of your script are cool. I can envision how learning from a different sequence of notes could be useful (e.g. sequentially instead of sustained chords). In addition to a way to clear that buffer manually, having it reset every measure (or two or...) could be very cool to build up this second, aleatoric part based on another sequence and its harmonic progression.

    Also, while I did call it a quantizer, I would probably use it more as a filter (i.e. kill any non-chord notes, not transpose them to be in the chord), however I could see the use of both (or even have a probability setting for transpose or kill...)

    I’m right there with you brother... I’ve been jonsing for this as well... Think of it as like an Arpeggiator.... one midi channel is the chord (I.e. CEG)... another midi channel in is the input note stream. Regardless of the note stream input, it only poops out notes that are turned “on” by the chord...

    From what I’ve read of the manual, it seems that you could use the customscale command... the input chord set the scale notes via some kind of loop... or somethin’

  • @aplourde said:

    @wim said:
    Dynamic Scale Quantizer. This one was prompted by a post some months back from someone looking for an app that would listen to midi note input, and build a scale filter from it. For instance, play a chord, then have any input forced to only the notes of the chord. if anyone locates that thread, please let me know. I’d be interested to know if this works the way the poster had in mind.

    Dropbox download link:
    https://www.dropbox.com/s/gh96ndo12a3cbk0/Dynamic Scale Quantize.mozaic?dl=0

    I was asking about a dynamic scale quantizer. This is very cool, thank you!

    However, unless I'm not quite understanding how to use it, I don't think it's quite what I was talking about.

    I believe this works by switching to a sampling mode where it learns the notes and then when you switch back it restricts playback to those notes. So, a two step process.

    I was envisioning a completely seamless, simultaneous process:
    You would feed the plugin two channels of notes; one is the stream of notes to be filtered and the second are the notes that define the filter.

    The impetus for this is that I often find random generators too random. Just because the notes are in the scale I'm in typically isn't enough for me - sometimes I want a way to rein them in. With this tool, I could play chords and conform the incoming stream of generated notes to my needs.

    Actually, the learning capabilities of your script are cool. I can envision how learning from a different sequence of notes could be useful (e.g. sequentially instead of sustained chords). In addition to a way to clear that buffer manually, having it reset every measure (or two or...) could be very cool to build up this second, aleatoric part based on another sequence and its harmonic progression.

    Also, while I did call it a quantizer, I would probably use it more as a filter (i.e. kill any non-chord notes, not transpose them to be in the chord), however I could see the use of both (or even have a probability setting for transpose or kill...)

    Would this remember “valid notes” for the entire duration of the session, or forget them after a cooldown period?

  • edited May 2019

    @brambos hey... messing with scalequantize... would you be open to having an optional argument that could specify if rounding is up (as it is now) or down? Or maybe also “closest” for times when it makes sense to use customscale to say define a chord so there may be big gaps and you really want “closest” not always up or down?

  • @MonkeyDrummer said:
    @brambos hey... messing with scalequantize... would you be open to having an optional argument that could specify if rounding is up (as it is now) or down?

    I could always consider it. I thought about it before, but dismissed it because either option seemed equally arbitrary and then it’s “just another parameter you have to explain”.

    Does it make much of a difference in practice?

  • I’m right there with you brother... I’ve been jonsing for this as well... Think of it as like a
    From
    @brambos said:

    @MonkeyDrummer said:
    @brambos hey... messing with scalequantize... would you be open to having an optional argument that could specify if rounding is up (as it is now) or down?

    I could always consider it. I thought about it before, but dismissed it because either option seemed equally arbitrary and then it’s “just another parameter you have to explain”.

    Does it make much of a difference in practice?

    I guess you could do something like this for now:

    out = ScaleQuantize MidiNote
    if (ScaleQuantize MidiNote+1) - out = 2
    out = ScaleQuantize MidiNote+1
    endif

    Adding 1 to the note should work, except where there are half steps in the scale, that’s what the if statement checks (don’ want E to turn into F in C major)

  • edited May 2019

    I’m right there with you brother... I’ve been jonsing for this as well... Think of it as like an Arpeggiator.... one midi channel is the chord (I.e. CEG)... another midi channel in is the input note stream. Regardless of the note stream input, it only poops out notes that are turned “on” by the chord...

    From what I’ve read of the manual, it seems that you could use the customscale command... the input chord set the scale notes via some kind of loop... or somethin’

    @aplourde , @MonkeyDrummer , the Chord Magic script can somewhat do what you are asking for. You can see this in the video I posted, where the chord sequence transforms input from Rozeta collider to only use the chord notes. To use two input channels, one to transform and the other one defining the chord you must at the moment use two instances of the plugin (I believe that could easily be fixed) though.

  • Would it be too much to ask for a video on ScaleQuantize?

  • @aplourde said:

    @wim said:
    Dynamic Scale Quantizer. This one was prompted by a post some months back from someone looking for an app that would listen to midi note input, and build a scale filter from it. For instance, play a chord, then have any input forced to only the notes of the chord. if anyone locates that thread, please let me know. I’d be interested to know if this works the way the poster had in mind.

    Dropbox download link:
    https://www.dropbox.com/s/gh96ndo12a3cbk0/Dynamic Scale Quantize.mozaic?dl=0

    I was asking about a dynamic scale quantizer. This is very cool, thank you!

    However, unless I'm not quite understanding how to use it, I don't think it's quite what I was talking about.

    I believe this works by switching to a sampling mode where it learns the notes and then when you switch back it restricts playback to those notes. So, a two step process.

    I was envisioning a completely seamless, simultaneous process:
    You would feed the plugin two channels of notes; one is the stream of notes to be filtered and the second are the notes that define the filter.

    The impetus for this is that I often find random generators too random. Just because the notes are in the scale I'm in typically isn't enough for me - sometimes I want a way to rein them in. With this tool, I could play chords and conform the incoming stream of generated notes to my needs.

    Actually, the learning capabilities of your script are cool. I can envision how learning from a different sequence of notes could be useful (e.g. sequentially instead of sustained chords). In addition to a way to clear that buffer manually, having it reset every measure (or two or...) could be very cool to build up this second, aleatoric part based on another sequence and its harmonic progression.

    Also, while I did call it a quantizer, I would probably use it more as a filter (i.e. kill any non-chord notes, not transpose them to be in the chord), however I could see the use of both (or even have a probability setting for transpose or kill...)

    I can easily make a different version that works with two channels. I thought that might have been what you wanted, but thought I remembered mention of the learn on/off method. I was also considering that not everyone has controllers that send on more than one channel.

    Anyway, very easy to do the dual channel mod.

    I also had the idea to use the pads to store and recall scale snapshots. That’s also easy to add.

  • @MonkeyDrummer said:
    @brambos hey... messing with scalequantize... would you be open to having an optional argument that could specify if rounding is up (as it is now) or down? Or maybe also “closest” for times when it makes sense to use customscale to say define a chord so there may be big gaps and you really want “closest” not always up or down?

    It’s actually pretty easy to write your own scale handler. In fact that’s what I did for the scale quantizer. I may just throw in a knob to select between scale handling modes at some point. I guess they’d be filter, quantize up, and quantize down, and closest. Any others?

  • Two controllers are not essential. The chords could come from another app.

  • Hmmm... I've yet to get Mozaic (I know, I'm late to the game).

    But it did spark an idea about a 'scriptable audio editor/generator' that could be used to chop up samples, do some crazy math between two or more samples, act as a 'sound source' etc. etc.

    Scripting could include features like 'SetBPM', 'Add Markers/Selextions at 1/x intervals', 'Do x-ms fade In/Out on selection(s)', 'Save Selection(s) as Files'. Or maybe Add/Subtract/Multiply *.wav-X and *.wav-Y. 'Filter Macros' could also come in handy...
    ...or when used as a 'wave generator' things like 'Map Note Velocity -> Sample Start' or 'Map CC to 'Selection' etc. etc...

    @brambos Maybe this is too much off topic but at least it could spark some interest now that people are slowly starting to get into programming/scripting with an easy to use language?

    Back in the days I used AppleScript to chop samples using QuickTime so it's not 'revolutionary' but it could be on iOS :)

  • edited May 2019

    @Samu said:
    Hmmm... I've yet to get Mozaic (I know, I'm late to the game).

    But it did spark an idea about a 'scriptable audio editor/generator' that could be used to chop up samples, do some crazy math between two or more samples, act as a 'sound source' etc. etc.

    Scripting could include features like 'SetBPM', 'Add Markers/Selextions at 1/x intervals', 'Do x-ms fade In/Out on selection(s)', 'Save Selection(s) as Files'. Or maybe Add/Subtract/Multiply *.wav-X and *.wav-Y. 'Filter Macros' could also come in handy...
    ...or when used as a 'wave generator' things like 'Map Note Velocity -> Sample Start' or 'Map CC to 'Selection' etc. etc...

    @brambos Maybe this is too much off topic but at least it could spark some interest now that people are slowly starting to get into programming/scripting with an easy to use language?

    Back in the days I used AppleScript to chop samples using QuickTime so it's not 'revolutionary' but it could be on iOS :)

    Yeah, that sounds cool. You should also ask those guys making that Tracker plugin that was mentioned some time ago. This reminds me of the FT9xx commands in Fast Tracker etc.

  • I think this will come in handy for sharing Scripts you're working on... :)

  • @brambos said:

    Yeah, that sounds cool. You should also ask those guys making that Tracker plugin that was mentioned some time ago. This reminds me of the FT9xx commands in Fast Tracker etc.

    SunVox will at some point be an AUv3 according to the dev but no schedule at the moment :)
    (There's also the 'issue' wether it will host AUv3's or be an AUv3 as both can not be done at the same time at the moment).

    Most of the time I 'feel at home' messing around with SunVox treating it as a modular multi-timbral sound module...

    For 'sample editing' having access to some form of scripting would be awesome.

  • wimwim
    edited May 2019

    Here’s a kind of work in progress. Only lightly tested, so could be buggy...

    There are knobs to control eight cc values. Pressing one of the four pads stores a snapshot of the knob values. The pad lights up when a snapshot is stored in it. Touching a lit pad removes the snapshot.

    The XY pad can be used to morph between the snapshots. The outside corner of each quadrant sets the knobs to 100% of the snapshot value.

    The cc’s assigned to each knob can be changed by holding down the shift button while turning the knob. The bottom-right button changes the midi out channel.

    Except for storing the snapshots, this can be run via hardware controller or apps such as Rozeta LFO using AU parameters and MIDI learn.

    Like I said, it’s a work in progress. It could probably use some refinement.

    https://www.dropbox.com/s/y0njcxn6nvi4lcw/Midi CC Morph Pad.mozaic?dl=0

  • @wim said:
    Here’s a kind of work in progress. Only lightly tested, so could be buggy...

    There are knobs to control eight cc values. Pressing one of the four pads stores a snapshot of the knob values. The pad lights up when a snapshot is stored in it. Touching a lit pad removes the snapshot.

    The XY pad can be used to morph between the snapshots. The outside corner of each quadrant sets the knobs to 100% of the snapshot value.

    The cc’s assigned to each knob can be changed by holding down the shift button while turning the knob. The bottom-right button changes the midi out channel.

    Except for storing the snapshots, this can be run via hardware controller or apps such as Rozeta LFO using AU parameters and MIDI learn.

    Like I said, it’s a work in progress. It could probably use some refinement.

    https://www.dropbox.com/s/y0njcxn6nvi4lcw/Midi CC Morph Pad.mozaic?dl=0

    Very neat! Anyone diving into Mozaic scripting should have a look at this script, it does some really advanced things in a compact and readable way!

  • The user and all related content has been deleted.
  • @EyeOhEss said:

    @brambos said:

    @wim said:
    Here’s a kind of work in progress. Only lightly tested, so could be buggy...

    There are knobs to control eight cc values. Pressing one of the four pads stores a snapshot of the knob values. The pad lights up when a snapshot is stored in it. Touching a lit pad removes the snapshot.

    The XY pad can be used to morph between the snapshots. The outside corner of each quadrant sets the knobs to 100% of the snapshot value.

    The cc’s assigned to each knob can be changed by holding down the shift button while turning the knob. The bottom-right button changes the midi out channel.

    Except for storing the snapshots, this can be run via hardware controller or apps such as Rozeta LFO using AU parameters and MIDI learn.

    Like I said, it’s a work in progress. It could probably use some refinement.

    https://www.dropbox.com/s/y0njcxn6nvi4lcw/Midi CC Morph Pad.mozaic?dl=0

    Very neat! Anyone diving into Mozaic scripting should have a look at this script, it does some really advanced things in a compact and readable way!

    Yeah these kind of patches will probably be enough to make me grab Mozaic. Thanks wimmmmmm.

    Would still love to see a GUI layout option with crossfader and an A & B button either side (as well as bunch of knobs, buttons etc.) Would open up a lot of options for concept depth in patches similar to this one looking to do Octatrack fader kinda things...

    I hear you. I’m collecting feedback and see how people are using the GUIs to evaluate what sort of additional layouts would be most valuable.

  • Thanks for figuring out the math for me. I about had an aneurism trying to figure that part out. :D

  • The user and all related content has been deleted.
  • Allowing scripts to set the color of pads (and maybe also knobs) could be useful in many ways. For indicating some internal state, or for letting users choose colors so that it is easier to remember what an instance does (like green pads control some Perforator CCs, blue pads control Mersenne etc.).

  • Pads can be flashed but allowing Knobs to be flashed could also be useful for sequencers and other things :)

  • @Harro said:
    Hello @brambos , I found a small bug in Mosaic:
    when I use the code editor in maximized CODE view, change some code and UPLOAD, the LOG screen opens automatically (also maximized); then when I return to CODE view and press my finger to put the cursor anywhere to where I want it, the GUI pops up! And I have to press MAXIMIZE again to return to the maximized CODE view. I don't think this behaviour should 'by design'. Do you?

    Weird, I can not reproduce this behavior. Which host and what sort of device does this happen on? Thanks!

  • edited May 2019

    @brambos said:

    @wim said:
    Here’s a kind of work in progress. Only lightly tested, so could be buggy...

    There are knobs to control eight cc values. Pressing one of the four pads stores a snapshot of the knob values. The pad lights up when a snapshot is stored in it. Touching a lit pad removes the snapshot.

    The XY pad can be used to morph between the snapshots. The outside corner of each quadrant sets the knobs to 100% of the snapshot value.

    The cc’s assigned to each knob can be changed by holding down the shift button while turning the knob. The bottom-right button changes the midi out channel.

    Except for storing the snapshots, this can be run via hardware controller or apps such as Rozeta LFO using AU parameters and MIDI learn.

    Like I said, it’s a work in progress. It could probably use some refinement.

    https://www.dropbox.com/s/y0njcxn6nvi4lcw/Midi CC Morph Pad.mozaic?dl=0

    Very neat! Anyone diving into Mozaic scripting should have a look at this script, it does some really advanced things in a compact and readable way!

    @brambos Tried loading this preset in via open in got this message ? I find if you use Dropbox then “open in” Mozaic automatically opens in standalone mode which is what I expect. I tried restarting after a hard reset of the iPad as the message sayes but still getting the same screen appear after trying the import procedure again.

    However if I open Mozaic as a AU inside AUM all is fine and I can see @wim latest CC knob creation.

  • Not sure if it's a bug or expected behavior...
    I've got a set of instructions @onknobchange which works fine when tweaking the knob, but when I setknobvalue via pad release only the ui updated.
    Can I "ping" @onknobchange from script?

  • User defined functions?

    I have a feeling this language draws its inspiration too far back in the dark ages of programming for me..

    No slur on the usefulness for many tasks but feels too much like hard work for what I wanted to try with it.

    Maybe I have just grown lazy as a programmer being used to more modern features. :smile:

  • @Jocphone said:
    User defined functions?

    I have a feeling this language draws its inspiration too far back in the dark ages of programming for me..

    No slur on the usefulness for many tasks but feels too much like hard work for what I wanted to try with it.

    Maybe I have just grown lazy as a programmer being used to more modern features. :smile:

    Yes, user defined functions are inevitable.

    That will be the next major addition. The architecture is already there for the most part because it will share its core with the user defined variables handler, but it will require a fair bit of testing and finetuning.

    Conceptually, I will treat them as an advanced feature though (also in how I will tackle them in the programming manual) because it introduces an added level of abstraction which may be too much when you're just writing your first 2-line script. (I evaluate everything I do with this language based on the perspective of an absolute beginner).

Sign In or Register to comment.