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*

1434446484969

Comments

  • @soundwarrior20 said:
    Thanks very much Who do I reach out to regarding this?

    Hi @soundwarrior20 - sorry, I didn't see this question until today. @brambos is the developer's handle on the forum. this should catch his attention if he stops by. His website is https://ruismaker.com, and there is a contact email address: info @ ruismaker.com there as well.

    I thought about this in light of your other thread and now think Mozaic could be an excellent aid if the knobs and X/Y pad could be made to work. It already reads from the screen for the buttons and labels, and the buttons do work. Also, the knobs and other elements can display numeric values when they're changed. So their current values could be accessible, even if they were changed by an external hardware controller. This in itself could be a big help for using hardware controllers, to know what values their knobs are sending.

  • @wawelt said:
    @everyone, do you know if the SHIFT button can be midi mapped?

    No, it cannot.

  • @Stochastically said:
    I recently got a Nectar mini keyboard. It has a little joystick that I can set to different CCs.
    Is there already or could there be a Mozaic script that remaps incoming CCs to a different number? That would make it easier and quicker to change joystick setting while playing so I might control different things easily. Keep the joystick set to, say, CC 14 but have it control CC whatever I want.

    And in a similar vein, is it possible to remap pitch bend to a CC so I could use pitch bend to control some other CCs?

    I recommend mfxConvert if you would like an easy to use non scripting approach. All you need to do is tap learn, send the CC, then set it to what you want it translated to. It will also handle pitch bend, which is something slightly more trick to code in Mozaic (but perfectly doable).

  • @wim said:

    @soundwarrior20 said:
    hi, is mosaic accessable to blind musicians on ios? is it conpattable with the voice over screen reeder? thanks verry much every one.

    I just did a quick test, and it appears it isn't fully compatible. Element naming, etc, are there and pad presses are detected, but turning knobs and moving the XY pad don't work.

    Using external knobs and an X/Y pad would just require more code so I wouldn't rule it out compl

    @wim said:

    @wawelt said:
    @everyone, do you know if the SHIFT button can be midi mapped?

    No, it cannot.

    The SHIFT button creates an event that starts code. You could use an "if" test on any midi
    event and inside the IF = TRUE section use "Call OnShift" or just invoke the same code in the OnShift
    block and get the same results in the Mosaic script. This doesn't mean you can use MIDI Learn but you'd
    have to code the relationship in the script.

  • Thats great news, thanks 🙏

  • Just when I thought I wasn’t going to get any traction with my post I find some helpful answers.

    Thanks for your suggestions and encouragement, @wawelt, but I don’t have a great aptitude for scripting. I’ve studied it in the distant past somewhat but only learned I’m not cut out for it. Also, I think your response must have helped push my question out to be seen again so doubly helpful.

    I downloaded your scripts, @Alfred and look forward to seeing how they work. At first glance they look doable. Thanks for letting me know about those. I had gone over the list of Mozaic scripts and missed it. One thing that had my hopes up was when you wrote that

    It will create a folder in mozaic with all the handy scripts.

    I’ve wished I could make folders and sub folders in Mozaic but it doesn’t let me; don’t see how it can be done. Still, greatly appreciate your help.

    And thanks to you @wim for suggesting mfxConvert. I will get that too. It was one of those obscure little apps I hadn’t noticed before.

    I’ll come back with a report after some experimentation.

  • @Stochastically when you import a zip file into mozaic it creates a subfolder. So long press the zip and choose open in Mozaic.

  • @soundwarrior20 said:
    Thanks very much Who do I reach out to regarding this?

    @brambos

  • edited November 2021

    Is there something like MIDI echo/ MIDI delay that works on CC too? I was thinking about Envolver and how it would be cool if one could take the Envolver CC output and put it into a delay-like MIDI effect.

    (But now that I'm writing this, i recognize that it is probably simpler to just put a normal delay effect in front of envolver's audio input...)

  • @dobbs said:
    Is there something like MIDI echo/ MIDI delay that works on CC too? I was thinking about Envolver and how it would be cool if one could take the Envolver CC output and put it into a delay-like MIDI effect.

    (But now that I'm writing this, i recognize that it is probably simpler to just put a normal delay effect in front of envolver's audio input...)

    Interesting thought | @Krupa tries not to think too hard about it 😁

  • Looking for a kind of CC banks “selector”: I have a 16n faderbox in the way, as other fader or knob boxes it’s limited to 16 CCs , and I’m looking for expanding the controller with different banks of CCs so I can have 48 CCs fe. Using 4 banks. I think would be something as one page for setting the CC input numbers and then some switchable banks with different CC numbers, and then using some buttons for changing the CC banks. The closer I saw is the blue board spacer https://patchstorage.com/irig-blueboard-spacer/ that does that for the 4 blueboard switches expanding that to 16. Maybe there is something like that? Thanks!

  • @dobbs said:
    Is there something like MIDI echo/ MIDI delay that works on CC too? I was thinking about Envolver and how it would be cool if one could take the Envolver CC output and put it into a delay-like MIDI effect.

    (But now that I'm writing this, i recognize that it is probably simpler to just put a normal delay effect in front of envolver's audio input...)

    I started to enhance Velocity Midi Echo to do just that, but I guess I never finished it. Maybe I should dust that one off.

    Velocity Midi Echo is probably my favorite script that I've written. One of only a few that I ever actually use.

  • Does anyone has a script that creates random parameter randomizer for the Microfreak? It can be done. I was able to do it by mapping the ccs between animoogz and my microfreak and randomizing presets in animoogz. But I’d rather customize such randomization in mozaic. A while ago I altered the code of the “spectrum parameter randomizer” so that the script can work with Noir by simply replacing the names. For example, changing granular_cc[0] to Noir_cc[0], but I’m not sure what name to use for the microfreak.

  • Here is one that might interest some of you (@wim, @McD)

    I have been wondering whether the 6 extra parameters in the custom effects on the Logue custom oscillators (NTS-1 etc.) can be modulated via MIDI. Someone on reddit pointed out that they respond to the incredibly obscure NRPN format, so I finally had a chance to test it out with a Mozaic script that translates regular CC from a controller to (my vague understanding of) NRPN and sends them to the NTS-1. The script is working as far as I can tell, but the NTS-1 is not responding as expected. I’m not sure where the error might be. Either there’s an error in how I’m sending the NPRNs, or the information about the implementation in the NTS-1 is wrong or not working (perhaps it only works on the minilogue XD?).

    Any help would be much appreciated!

    I found the following table in the Gearspace Korg Logue SDK thread with information about the NPRNs. It’s unclear if this applies to all the custom oscillators or just a single one that the user is developing:

    https://gearspace.com/board/showpost.php?p=14700694&postcount=109

    In Program Edit, the 6 osc parameters are using CC 98 (NRPN parameter #) and CC 06 (NRPN data MSB) and CC 63 (data LSB).

    Osc Parameter 1 (Feedback)
    CC 98, value 64

    Osc Parameter 2 (Noise Depth)
    CC 98 value 65

    Osc Parameter 3 (Shape Mod Int)
    CC 98 value 66

    Osc Parameter 4 (Mod Attack)
    CC 98 value 67

    Osc Parameter 5 (Mod Decay)
    CC 98 value 68

    Osc Parameter 6 (Mod Key Track)
    CC 98 value 69

    CC 06 is MSB, and runs from 000 to 025
    CC 63 is LSB, and runs from 000 to 007

    In other words, leaving out CC 98 for clarity, these are the corresponding (non-hex) values for the NRPNs as the XD knob is rotated from -100 to +100.

    -100 = CC 06 00 CC 63 00
    -99 = CC 06 00 CC 63 01
    -98 = CC 06 00 CC 63 02
    -97 = CC 06 00 CC 63 03
    -96 = CC 06 00 CC 63 04
    -95 = CC 06 00 CC 63 05
    -94 = CC 06 00 CC 63 06
    -93 = CC 06 00 CC 63 07
    -92 = CC 06 01 CC 63 01
    **** = CC 06 01 CC 63 02
    -90 = CC 06 01 CC 63 03
    -89 = CC 06 01 CC 63 04
    .
    .
    .
    97 = CC 06 24 CC 63 05
    98 = CC 06 24 CC 63 06
    99 = CC 06 24 CC 63 07
    100 = CC 06 25 CC 63 00

    I’ve written the following script which translates CC between 64 and 69 to produce a similar output as the table above, and send them as a series of SendMIDICC commands, borrowing from a post by @_Ki in the other Mozaic thread in ABF.

    @OnLoad 
      ShowLayout 0
      chan = 0
      paramNumber = 0
      min = 0 
      max = 127
      lsba = 0
      lsbb = 7
      x = 0
    @End  
    
    @scaleCCs
    msbvalue = x % 25
    lsbvalue = ((lsbb-lsba)*(x-min)/(max-min))+lsba
    @End
    
    
    @SendNRPN // param chan, paramNumber, msbvalue, lsbvalue
      SendMIDICC chan, 98, paramNumber
      SendMIDICC chan, 6, msbvalue
      SendMIDICC chan, 63, lsbvalue
    @End
    
    
    @OnMidiInput 
      if MIDICommand = 0xB0
        if MIDIByte2 >= 64 and MIDIByte2 <= 69 
          paramNumber = MIDIByte2
          x = MIDIByte3 
          call @scaleCCs
          call @SendNRPN
          else
          SendMIDIThru
        endif  
      else
        SendMIDIThru // send everything else thru
      endif
    @End      
    
  • @wim
    For your consideration.

    I think I might have asked this before, and I apologize if so, but I can’t remember what happened, and I’m still hoping someone can do it. How hard would it be to take your script midi cc randomizer, and basically make 10-12 pages of it in one Mozaic instance, that can be flipped through to map every CC#. Like in Ranbo when you change the channel, it goes to a new page with same exact ui. I’ve changed the CC’s on your midi cc randomizer script and saved about ten separate ones to cover every possible CC#, CC0 to CC 127, so I can randomize a new patch on any synth that has the parameters exposed.

    It would be massive, for me at least, if the script you created could have multiple pages of the same ui, in one instance, so I could literally have all 128 CC numbers (0-127) in one instance of Mozaic, map all those random buttons to one button, hit it, and randomize all exposed parameters of a synth. I love a good random patch creator. Even if there were 6 pages, you would only need two Mozaic instances to cover everything. Hopefully this is possible without much trouble, it would be a huge help. I’m a coding newb, so its too much for me to handle. It be way easier, at least for me, probably others too, if 1 or even 2, Mozaic’s could cover every CC# in any synth, for endless patch creation fun.

    Cheers! Happy New Year.

  • @Poppadocrock said:
    @wim
    For your consideration.

    I think I might have asked this before, and I apologize if so, but I can’t remember what happened, and I’m still hoping someone can do it. How hard would it be to take your script midi cc randomizer, and basically make 10-12 pages of it in one Mozaic instance, that can be flipped through to map every CC#. Like in Ranbo when you change the channel, it goes to a new page with same exact ui. I’ve changed the CC’s on your midi cc randomizer script and saved about ten separate ones to cover every possible CC#, CC0 to CC 127, so I can randomize a new patch on any synth that has the parameters exposed.

    It would be massive, for me at least, if the script you created could have multiple pages of the same ui, in one instance, so I could literally have all 128 CC numbers (0-127) in one instance of Mozaic, map all those random buttons to one button, hit it, and randomize all exposed parameters of a synth. I love a good random patch creator. Even if there were 6 pages, you would only need two Mozaic instances to cover everything. Hopefully this is possible without much trouble, it would be a huge help. I’m a coding newb, so its too much for me to handle. It be way easier, at least for me, probably others too, if 1 or even 2, Mozaic’s could cover every CC# in any synth, for endless patch creation fun.

    Cheers! Happy New Year.

    Would a simpler script that just sends out random values for all 128 CC's when you press a button do? I don't see the need for all the pages of knobs to set CCs if all you're going to do is send all of them out anyway. It also seems like the scene save and recall isn't really needed either. It makes more sense to save any usable presets that come out of this random blast in the app itself rather than in the script.

    Such a script would be only a few dozen lines of code.

    If there are reasons why having a bunch of pages to individually set make sense, I'd like to understand.

  • wimwim
    edited January 2022

    @wim said:

    @Poppadocrock said:
    @wim
    For your consideration.

    I think I might have asked this before, and I apologize if so, but I can’t remember what happened, and I’m still hoping someone can do it. How hard would it be to take your script midi cc randomizer, and basically make 10-12 pages of it in one Mozaic instance, that can be flipped through to map every CC#. Like in Ranbo when you change the channel, it goes to a new page with same exact ui. I’ve changed the CC’s on your midi cc randomizer script and saved about ten separate ones to cover every possible CC#, CC0 to CC 127, so I can randomize a new patch on any synth that has the parameters exposed.

    It would be massive, for me at least, if the script you created could have multiple pages of the same ui, in one instance, so I could literally have all 128 CC numbers (0-127) in one instance of Mozaic, map all those random buttons to one button, hit it, and randomize all exposed parameters of a synth. I love a good random patch creator. Even if there were 6 pages, you would only need two Mozaic instances to cover everything. Hopefully this is possible without much trouble, it would be a huge help. I’m a coding newb, so its too much for me to handle. It be way easier, at least for me, probably others too, if 1 or even 2, Mozaic’s could cover every CC# in any synth, for endless patch creation fun.

    Cheers! Happy New Year.

    Would a simpler script that just sends out random values for all 128 CC's when you press a button do? I don't see the need for all the pages of knobs to set CCs if all you're going to do is send all of them out anyway. It also seems like the scene save and recall isn't really needed either. It makes more sense to save any usable presets that come out of this random blast in the app itself rather than in the script.

    Such a script would be only a few dozen lines of code.

    If there are reasons why having a bunch of pages to individually set make sense, I'd like to understand.

    I drafted something with only the function of sending random cc's on as many channels as you choose. By default the CC's are limited to 0-119. 120-127 are Channel Mode messages that should generally be avoided for purposes such as this. Check the @Description and @Settings sections at the top of the script if you want to override this.

    I haven't put it up on patch-storage since it's just a proof-of-concept kind of thing.

    [link deleted - see next post]

  • @Poppadocrock - It seemed useful enough and does what it says on the tin, so I went ahead and finalized and uploaded it:

    https://patchstorage.com/mega-cc-randomizer/

    If it's not what you were looking for then maybe respond to my earlier post with some questions about the request.

  • Anyone here familiar with the "Low Rents" mode of the Eurorack module Ornament & Crime? Its basically based on the butterfly effect, here is a video that explains it well:
    Its great for modulation!!!

    Would something like this in a self running manner be possible in Mosaik?

    Another outstanding modulation source is the "Viznutcracker, sweet" Mode

  • @Eutow said:
    Anyone here familiar with the "Low Rents" mode of the Eurorack module Ornament & Crime? Its basically based on the butterfly effect, here is a video that explains it well:
    Its great for modulation!!!

    Would something like this in a self running manner be possible in Mosaik?

    Another outstanding modulation source is the "Viznutcracker, sweet" Mode

    It's open-source and the license is ok, so I imagine if someone could get their head around the math, and how to translate the arduino code into Mozaic commands, it should be possible, unless there are some math functions that Mozaic doesn't have and couldn't create with it's own primitives. I didn't dive deep enough in the code to be able to say.

    Without resulting to pitch bend or NRPN midi messages, the resolution would be limited to 128 cc values, but I doubt that would be an issue as most apps handle smoothing.

    Way beyond my pay grade though. B)

  • @wim said:
    @Poppadocrock - It seemed useful enough and does what it says on the tin, so I went ahead and finalized and uploaded it:

    https://patchstorage.com/mega-cc-randomizer/

    If it's not what you were looking for then maybe respond to my earlier post with some questions about the request.

    Thank you so much for posting this script, I truly appreciate it. It will help build out some patches on synths that lack a bunch of them. Just found and downloaded it, I’m really excited to try it out. Really awesome, even game me some accreditation too, wow, cheers! Shitty day, then I see this, and I’m happy. Thanks @wim

  • edited January 2022

    @wim said:
    @Poppadocrock - It seemed useful enough and does what it says on the tin, so I went ahead and finalized and uploaded it:

    https://patchstorage.com/mega-cc-randomizer/

    If it's not what you were looking for then maybe respond to my earlier post with some questions about the request.

    It sounds like what I’m looking for, ill give it a spin and report back. Cheers!

    Edit. Yea you do not need all those pages @wim

  • wimwim
    edited January 2022

    @Poppadocrock - good luck! I hope it works as advertised. If not, then let me know.

  • _ki_ki
    edited January 2022

    @wim, @Eutow I had a peak at the github sources of Low-Rents.

    I suspect the main problem of porting this to Mozaic will be the limited internal ~24bit precision of Mozaics data type - the source makes heavily use of 64 and 32bit integer precision with its fix-point math calculations. (8.24 bit type as hinted by lots of 24bits left or right shifts)

    There are no special math funtions (like sin/cos…) used, it seems that only high precision fix-point addition and multiplication are needed. The upper part of lorenzgenerator::Process() computes the ‚next‘ lorentz and roessler values of the 2 generators based on the previous values, which in the lower part of that function are assigned to the outputs. The Process() function is called periodically, but i didn‘t find at which rate. The trigger inputs of the module seem to be mapped to the reset1/2 parameter of the function, trigger input three sets both resets, trigger input 4 pauses the calling of Process() resulting in holding the previous output values

    .

    Probably the easiest way for a port would be to switch everything back to floating point calculations, which should be precise enough in Mozaics mixed fixed/float format. I‘ll try around if i find some spare time.

  • edited January 2022

    @Eutow @_ki you can already experiment with Lorentz and Roessler attractor lfos using this Mozaic script:
    https://patchstorage.com/chaos-lfo/

  • @bleep Oh - very cool ! This saves me a lot of work on understanding/porting - the Chaos-Lfo script even uses the XY controller to display values :)

  • @bleep said:
    @Eutow @_ki you can already experiment with Lorentz and Roessler attractor lfos using this Mozaic script:
    https://patchstorage.com/chaos-lfo/

    Awesome will check this out! Thank you!

  • @_ki said:
    @wim, @Eutow I had a peak at the github sources of Low-Rents.

    I suspect the main problem of porting this to Mozaic will be the limited internal ~24bit precision of Mozaics data type - the source makes heavily use of 64 and 32bit integer precision with its fix-point math calculations. (8.24 bit type as hinted by lots of 24bits left or right shifts)

    There are no special math funtions (like sin/cos…) used, it seems that only high precision fix-point addition and multiplication are needed. The upper part of lorenzgenerator::Process() computes the ‚next‘ lorentz and roessler values of the 2 generators based on the previous values, which in the lower part of that function are assigned to the outputs. The Process() function is called periodically, but i didn‘t find at which rate. The trigger inputs of the module seem to be mapped to the reset1/2 parameter of the function, trigger input three sets both resets, trigger input 4 pauses the calling of Process() resulting in holding the previous output values

    .

    Probably the easiest way for a port would be to switch everything back to floating point calculations, which should be precise enough in Mozaics mixed fixed/float format. I‘ll try around if i find some spare time.

    There are so many great possibilities for modulation out there and i think Mozaik is good Platform for this.

    Any recommendations for other useful Midi „quantizer“ effects? That process the information of a let’s say arp midi stream and mutates it so one can route this to other soundsources? Again, I think ornament and crime is brilliant for this!

  • wimwim
    edited January 2022

    @Eutow said:

    @_ki said:
    @wim, @Eutow I had a peak at the github sources of Low-Rents.

    I suspect the main problem of porting this to Mozaic will be the limited internal ~24bit precision of Mozaics data type - the source makes heavily use of 64 and 32bit integer precision with its fix-point math calculations. (8.24 bit type as hinted by lots of 24bits left or right shifts)

    There are no special math funtions (like sin/cos…) used, it seems that only high precision fix-point addition and multiplication are needed. The upper part of lorenzgenerator::Process() computes the ‚next‘ lorentz and roessler values of the 2 generators based on the previous values, which in the lower part of that function are assigned to the outputs. The Process() function is called periodically, but i didn‘t find at which rate. The trigger inputs of the module seem to be mapped to the reset1/2 parameter of the function, trigger input three sets both resets, trigger input 4 pauses the calling of Process() resulting in holding the previous output values

    .

    Probably the easiest way for a port would be to switch everything back to floating point calculations, which should be precise enough in Mozaics mixed fixed/float format. I‘ll try around if i find some spare time.

    There are so many great possibilities for modulation out there and i think Mozaik is good Platform for this.

    Any recommendations for other useful Midi „quantizer“ effects? That process the information of a let’s say arp midi stream and mutates it so one can route this to other soundsources? Again, I think ornament and crime is brilliant for this!

    I like writing Mozaic scripts, but am also lazy. If I want crazy modulations I just route the midi through miRack and wring its skinny little midi neck until its eyes bug out.

  • @wim said:
    I like writing Mozaic scripts, but am also lazy. If I want crazy modulations I just route the midi through miRack and wring its skinny little midi neck until its eyes bug out.

    A good craftsman always grabs the most efficient tool for the job. You grab Mozaic when no other tool is available (barring using Xcode which has a whole set of additional issues for sharing the work).

    You have coded some of the coolest Moziac scripts on Patchstorage and many for just a single user'd request because the problem interested you or it was just that easy to finish.

    Just learning all (or many) of the possible tools is a big investment of time.

Sign In or Register to comment.