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 Help Line

11011121315

Comments

  • edited March 20

    @wim said:
    Also, how would be best to select the pad to edit the octave on? One knob to select the pad and another to select the octave? Or touch a pad while holding down SHIFT? Or maybe long-press on a pad?

    Would there be a use for a knob to set the same octave on all notes at once?

    After a some thought and a couple of days researching and testing scripts I have completed a working script that does what I needed and some.

    What it Does

    1. Midi channel remap input from 1 channel to selected output channel of incoming notes
    2. Latch any note in any octave via trigger pads
    3. Latched notes play on selected midi out channel
    4. Notes can be latched on/off manually or for a selected time in 5 second increments (range 5 to 635)
    5. Triggering a pad already playing for a set length re-triggers note
    6. Midi panic to stop all notes using shift button
  • Hello! I am a newbie and am searching for a Mosaic script being able to invert CC pitch bend up to pitch bend down. Is it possible with Mozaic? Perhaps, you could help me with a simple script? Thanks! (Every other CC commands should pass the script without being changed)

  • wimwim
    edited April 4

    @windplayer said:
    Hello! I am a newbie and am searching for a Mosaic script being able to invert CC pitch bend up to pitch bend down. Is it possible with Mozaic? Perhaps, you could help me with a simple script? Thanks! (Every other CC commands should pass the script without being changed)

    This should work. I had to resort to a workaround to avoid center position being off by 1. If anyone knows of a more elegant way to deal with that issue I'd love to hear it.

    @Description
    Invert pitch-bend.
    @End
    
    @OnMidiInput
      if MIDICommand = 0xE0
        pb = (MIDIByte3*128) + MIDIByte2
        
        // Normally inverting should be just a matter of subtracting the value from
        // the maximum value but the odd number 16383 leads to the center position
        // being one off (16383 - 8192 = 8191).
        if pb = 8192
          inv = pb
        else
          inv = 16383 - pb
        endif    
        
        SendMIDIPitchbend 0,inv
      else
        SendMIDIThru
      endif
    @End
    
    @OnSysex
      SendSysexThru
    @End
    
  • Hello wim, the skript works, thank you very much! :)

  • Great! Thanks for letting me know @windplayer .

  • I just begin to realize what a great tool Mozaic is. Another function, I am looking for since a long time, is a simple transpose-function for synths. It would be sufficient to have the possibility to step a half tone up (or down). But perhaps, it is also possible to use buttons of Mozaic to choose directly transposing steps (Db, D, E, F, Gb, …). If you can program such a script, this would also be fine. By the way, is there a source for existing Mozaic-scripts on the internet?

  • @windplayer

    @windplayer said:
    I just begin to realize what a great tool Mozaic is. Another function, I am looking for since a long time, is a simple transpose-function for synths. It would be sufficient to have the possibility to step a half tone up (or down). But perhaps, it is also possible to use buttons of Mozaic to choose directly transposing steps (Db, D, E, F, Gb, …). If you can program such a script, this would also be fine. By the way, is there a source for existing Mozaic-scripts on the internet?

    Hi

    https://patchstorage.com/platform/mozaic/

    You can search in serch bar for example transpose .

  • wimwim
    edited April 5

    @windplayer said:
    By the way, is there a source for existing Mozaic-scripts on the internet?

    This index can sometimes be easier than browsing patch storage.

    https://wiki.audiob.us/doku.php?id=mozaic_scripts_list

  • wimwim
    edited April 5

    @windplayer said:
    I just begin to realize what a great tool Mozaic is. Another function, I am looking for since a long time, is a simple transpose-function for synths. It would be sufficient to have the possibility to step a half tone up (or down). But perhaps, it is also possible to use buttons of Mozaic to choose directly transposing steps (Db, D, E, F, Gb, …).

    https://patchstorage.com/midi-note-shifter/

    If you have the Rozeta Suite, Rozeta Scaler can transpose by semitones.

  • Hey, wim, once again thanks. This Note Shifter seems just right! It is perfect!

  • edited August 23

    @wim said:

    @windplayer said:
    I just begin to realize what a great tool Mozaic is. Another function, I am looking for since a long time, is a simple transpose-function for synths. It would be sufficient to have the possibility to step a half tone up (or down). But perhaps, it is also possible to use buttons of Mozaic to choose directly transposing steps (Db, D, E, F, Gb, …).

    https://patchstorage.com/midi-note-shifter/

    If you have the Rozeta Suite, Rozeta Scaler can transpose by semitones.

    Hi Wim, hope you don’t mind me asking but you are very knowledgeable where Mozaic is concerned! I thought there was a script that provided volume sliders in AUM a bit like 4 pockets midi mixer. I’ve looked through the script list but can’t find it. Could you let me know if there is a script please? Many thanks

  • wimwim
    edited August 23

    @jking said:
    Hi Wim, hope you don’t mind me asking but you are very knowledgeable where Mozaic is concerned! I thought there was a script that provided volume sliders in AUM a bit like 4 pockets midi mixer. I’ve looked through the script list but can’t find it. Could you let me know if there is a script please? Many thanks

    I don't see anything like that in the Mozaic Scripts List on the wiki.

    That's a simple script to do really. AUM's faders default to cc 7 with the midi channel being the AUM channel number to control.

    However, there are a couple of shortcomings to be aware of.

    • Controlling AUM faders through midi can only make them go from the bottom to the default level. You can't move the faders above the 0db mark as far as I can tell.
    • Control is only one-way. The Mozaic faders won't reflect any adjustments you make to the AUM faders.
    • AUM doesn't have "pickup" or "takeover" mode. So if a Mozaic slider doesn't match the AUM slider, when you move the Mozaic slider the AUM fader position will jump.
    • Volume control via midi can be "steppy" since you only have 128 values with midi control.
    • The order of midi channels used to control the faders doesn't change when you move a channel. For instance, if you had channels 1-3 to start, the first three faders of the script would control them. But if you moved channel two to the one position, channel 3 would still control it. The order of the faders can be hard to get and keep the same as the order of AUM channels.

    Given those limitations, rather than a single-purpose script, I think using the Basic Midi Controls script might be more effective. At least with that, you can change the midi channel number of the script's faders to deal with keeping order of controls more sane. I've attached an already configured starting point made by configuring the faders in Basic Midi Controls, then saving the script under a new name.

    Unzip the file, then install like you would install other scripts from patch storage.

  • @wim said:

    @jking said:
    Hi Wim, hope you don’t mind me asking but you are very knowledgeable where Mozaic is concerned! I thought there was a script that provided volume sliders in AUM a bit like 4 pockets midi mixer. I’ve looked through the script list but can’t find it. Could you let me know if there is a script please? Many thanks

    I don't see anything like that in the Mozaic Scripts List on the wiki.

    That's a simple script to do really. AUM's faders default to cc 7 with the midi channel being the AUM channel number to control.

    However, there are a couple of shortcomings to be aware of.

    • Controlling AUM faders through midi can only make them go from the bottom to the default level. You can't move the faders above the 0db mark as far as I can tell.
    • Control is only one-way. The Mozaic faders won't reflect any adjustments you make to the AUM faders.
    • AUM doesn't have "pickup" or "takeover" mode. So if a Mozaic slider doesn't match the AUM slider, when you move the Mozaic slider the AUM fader position will jump.
    • Volume control via midi can be "steppy" since you only have 128 values with midi control.
    • The order of midi channels used to control the faders doesn't change when you move a channel. For instance, if you had channels 1-3 to start, the first three faders of the script would control them. But if you moved channel two to the one position, channel 3 would still control it. The order of the faders can be hard to get and keep the same as the order of AUM channels.

    Given those limitations, rather than a single-purpose script, I think using the Basic Midi Controls script might be more effective. At least with that, you can change the midi channel number of the script's faders to deal with keeping order of controls more sane. I've attached an already configured starting point made by configuring the faders in Basic Midi Controls, then saving the script under a new name.

    Unzip the file, then install like you would install other scripts from patch storage.

    Thanks Wim, you are a marvel 😁👍👏👏

  • @jking - imo 4 Pockets AudioScope is the ultimate solution. It takes a little more setup, but it can do far more than just channel volume manipulation. It solves the problem of moving channels around by placing a plugin in the FX slot of each channel you want to control.

  • Hi @wim . The reason midi control of the AUM fader doesn’t appear to go above 0db is because AUM is defaulting the range to be between 0 and 71% of the full range.
    See the bottom right of the screenshot.
    If you click on the 0 > 71% text you can change the 71 to a 100 and it will go all the way !

  • @GeoTony said:
    Hi @wim . The reason midi control of the AUM fader doesn’t appear to go above 0db is because AUM is defaulting the range to be between 0 and 71% of the full range.
    See the bottom right of the screenshot.
    If you click on the 0 > 71% text you can change the 71 to a 100 and it will go all the way !

    Good to know. Lotta setup though.

  • @wim said:
    @jking - imo 4 Pockets AudioScope is the ultimate solution. It takes a little more setup, but it can do far more than just channel volume manipulation. It solves the problem of moving channels around by placing a plugin in the FX slot of each channel you want to control.

    I’d never considered that, thanks for the heads up 👍

  • edited September 2

    Is there actually a search function in the Mozaic code editor? I could not find anything about searching within Mozaic or it's manual.
    For the actual coding I usually use Textastic directly on the iPad or the Kate code editor on my Linux desktop, but sometimes I just want to quickly fix a bug without any cut/paste hassle. This means simply checking and editing the code directly within Mozaic. A simple search (not even with replace) would be fantastic.
    BTW: I would be happy to pay way more than the current £4.99 for a Mozaic 2.x with improved code editing, string support and two dimensional arrays - and maybe more.

  • There isn’t a search function.

    It is pretty unlikely that Bram will add significant features. He has talked about his approach to developing apps at length in the past. Essentially, put a lot of thought into the design and features . Release the app when it is done. Fix problems and refine the features based on feedback in the near-term after release. Move on to new projects and life. Fix critical bugs that come to light.

  • wimwim
    edited September 2

    String handling has been a hard "no" every time it's been asked about in the past.

  • @catherder said:
    BTW: I would be happy to pay way more than the current £4.99 for a Mozaic 2.x with improved code editing, string support and two dimensional arrays - and maybe more.

    +1. And I don't think adding strings is as difficult as Bram seems to think it is. . . .

  • What an odd comment. 🤷🏼‍♂️

  • @espiegel123 said:
    There isn’t a search function.

    It is pretty unlikely that Bram will add significant features. He has talked about his approach to developing apps at length in the past. Essentially, put a lot of thought into the design and features . Release the app when it is done. Fix problems and refine the features based on feedback in the near-term after release. Move on to new projects and life. Fix critical bugs that come to light.

    That was my guess - and I can understand why Bram probably won't add significant features. I would not expect any improvements to be free. I just find Mozaic so cool, that I would be happy to pay way more than the price of the current Mozaic for an upgraded app.
    And Mozaic is pretty unique with only StreamByter coming pretty close. Having written MIDI programs in Python, I had a look at various iOS Python IDEs and Jupyter implementations - none offers MIDI. TouchOSC has scripting and great UI features but does not offer proper timing and has no AUv3 version. Audulus has LUA scripting, but not for MIDI...

  • Yeah I'd pay for string and better array support and the ability to hide UI elements too (that really would be easy), but understand that Bram is doing stuff like the Camera app more for fun rather than for income (just look at the low price on that). He is still maintaining Mozaic so lets just be grateful for that!

  • Can anyone tell me please if there’s a script for a chord splitter?
    I’d like to be able to output the notes of a chord to separate channels.

    Thanks

  • @jking You could use the „multi-Off“ mode of the Multi-Divisi script to split chords to channels. The script tries to allocate the channels in note order, ie the lowest note of a chord lands on channel 1. With the multi-Off mode, only a single channel will be played per note (which is not the main usecase of the script), but that would fit your description 😀

  • @_ki said:
    @jking You could use the „multi-Off“ mode of the Multi-Divisi script to split chords to channels. The script tries to allocate the channels in note order, ie the lowest note of a chord lands on channel 1. With the multi-Off mode, only a single channel will be played per note (which is not the main usecase of the script), but that would fit your description 😀

    Thanks @_ki I’ll check it out 😁👍

  • Hi Friends.
    Please help me 🙏🙏.

    With load script, values of linkstate of all pads = 0 ( that’s mean link is ON )
    1, touch pad num 2
    2, increase position of knob num 2 higher than 64 ( unlinke mode ) ( pad num 2 is unlinked mode ).
    3, touch each of other pads . value associated with them increases correctly . And value of pad num 2 is fixed ( without changing value ) correctly.
    4, when i touch pad num 2 , increases its value correctly,

    But value of other pads increases too.
    While I expect this not to happen.
    I expect when linkstate associated with eachpad if > 64 ( unlinked mode ) , The values of that pad or pads ,doesn’t change when i touch each of pad that their linkstate < 65 ( link mode )

    While I have created condition in the loop in the @onpaddown section.

    What code is written incorrectly in the @onpaddown section?

    @OnLoad
    ShowLayout 2
    FillArray value, 50, 8
    FillArray linkstate, 0, 8
    for i = 0 to 7
    LabelPad i, { 50 ------ SW value +🔺}
    endfor
    LabelKnob 1, {Pattern}
    SetKnobValue 1, 0
    Call @setknob
    @End

    @OnKnobChange
    if LastPad < 8
    linkstate[LastPad] = Round (GetKnobValue 1)
    endif
    Call @setknob
    @End

    @OnPadDown
    if linkstate[LastPad] > 64
    Inc value[LastPad]
    LabelPad LastPad , value[LastPad] ,{ ------ SW value +🔺}
    endif

    for i = 0 to 7
    if linkstate[i] < 65
    Inc value[i]
    LabelPad i , value[i] ,{ ------ SW value +🔺}
    endif
    endfor

    Call @setknob

    @End

    @setknob
    if LastPad < 8
    SetKnobValue 1, linkstate[LastPad]
    if linkstate[LastPad] < 65
    LabelKnob 1, {Pattern}
    elseif linkstate[LastPad] > 64
    LabelKnob 1, {LOOP}
    endif
    endif

    @End

  • @pejman said:

    >

    What code is written incorrectly in the @onpaddown section?

    You're checking linkstate when you tap pad number 2 and updating it's value as you should. But then you go ahead and increment all the other pads anyway. What you need is an else condition so that the for loop only executes if you've touched some other pad.

    @OnPadDown
      if linkstate[LastPad] > 64
        Inc value[LastPad]
        LabelPad LastPad , value[LastPad] ,{ ------ SW value +🔺}
      else
        for i = 0 to 7
          if linkstate[i] < 65
            Inc value[i]
            LabelPad i , value[i] ,{ ------ SW value +🔺}
          endif
        endfor
      endif
      
      Call @setknob
    @End
    
  • Hi @wim

    You wrote “What code is written incorrectly in the @onpaddown section?”

    I mean the placements of endif endfor... because I tried them many times in different ways, even I had used else, but maybe I had put something in the wrong place that I had a problem. I will try to post it for you.

    Your code is working perfectly now, thanks again as always.

Sign In or Register to comment.