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

1131415161719»

Comments

  • @Gavinski said:

    @catherder said:

    @Gavinski said:

    @catherder said:

    @Gavinski said:
    Ok, I found out more what the problem is. To get this working I need to send out these values: 25, 26, 51, 77, 102, 127
    But the knobs in Mozaic are not reporting their value accurately, jeez. For example, I carefully dial in 25 on a Mozaic knob (this itself i quite a hassle, as the knobs move too quickly—it is impossible to dial things in quickly and accurately, you need to do things very slowly if you want accuracy). Worse yet though, when I set a knob in Mozaic at, say, 25, the knob is not always sending that value! Sometimes it does, but sometimes it is off by 1, so it is sending 24 or 26 instead. Absolute nightmare to work with.

    There must also be a problem with the script too though, because Mozaic is only sending out a cycle of 5 values - the 6th knob in the GUI I have set to 127, but no value is being sent out at all there. The cycle only includes the first 5 values.

    The 5 values cycle was my fault because I somehow was thinking you want just 5 values. It can be changed in this line:
    if stepcounter > 4 // Maximum number os steps (5 steps = 0 to 4)
    The knob value problem is caused because they are actually floats. My suggestion would be to change that section like the following code. It rounds the value coming back from the knob and put this value into the label to eliminate any possible discrepency:

    @Step
    if stepcounter < 8
      knobnumber = stepcounter // knobs 0-7
    else
      knobnumber = stepcounter + 3  // knobs 11-18
    endif
     cc = Round (GetKnobValue knobnumber) // get the value and round it
    LabelKnob knobnumber, cc
    SendMIDICC 0, 13, cc
    @End
    

    Please don't assume that I would not mess up changing this line myself, haha:

    'if stepcounter > 4 // Maximum number os steps (5 steps = 0 to 4)'

    Should it be this? :

    if stepcounter > 5 // Maximum number os steps (5 steps = 0 to 5)

    What does 'os steps' mean btw? I wondered if that was a typo

    it was: if stepcounter > 5 // Maximum number of steps (5 steps = 0 to 5)
    And BTW: I have just updated my last post. There was some crap in the code.

    Thnx, I already twiddled with the knobs to get them sending out the right values, so I’ll maybe stick with that.
    Thing is, I have 2 buttons to map like this. Each will send out 6 values, cycling through them. But this script will accept any button press from any cc. So what do I need to do to set it up that I have 2 instances of Mozaic running this code, but each sends out a different cc number and—importantly—one only receives cc52, filtering out any other cc number, while another only receives cc53? Edit: for the filtering I can use AUM’s own cc filtering system. Tell u what - I look forward to the day when ai is integrated into hosts and works well enough to do this for me with just a voice prompt!

    I remembered that that script was already filtering midi input to cc52, right? So I tried to change your script to receive cc53 and send out cc14. For women reason now it is receiving CC53, but only sending a fixed value of 64 on CC13. IF you know how to fix it I would really appreciate it if you would modify the script below, rather than trying to advise me how to modify it. I feel like there is too much that can go wrong when I try it:

    @OnMidiCC
    if MIDIByte2 = 53 // CC of sending button
    if MIDIByte3 > 63 // Momentary CC message (button pressed)
    Call @Step // Read knob and send CC message on CC 14
    Inc stepcounter
    if stepcounter >= 6 // Now using 6 steps (0 to 5)
    stepcounter = 0
    endif
    endif
    endif
    @End

    @Step
    cc = GetKnobValue stepcounter // Always get values from knobs 0-5
    SendMIDICC 0, 14, cc
    @End

    @OnLoad
    stepcounter = 0
    ShowLayout 1
    SetMetroPPQN 4 // 16th steps
    LabelKnobs {CC#14 Sequencer}
    LabelKnob 0, {1}
    LabelKnob 1, {2}
    LabelKnob 2, {3}
    LabelKnob 3, {4}
    LabelKnob 4, {5}
    LabelKnob 5, {6}
    LabelKnob 6, {7}
    LabelKnob 7, {8}
    LabelKnob 11, {9}
    LabelKnob 12, {10}
    LabelKnob 13, {11}
    LabelKnob 14, {12}
    LabelKnob 15, {13}
    LabelKnob 16, {14}
    LabelKnob 17, {15}
    LabelKnob 18, {16}

    LabelKnob 8, { }
    LabelKnob 9, { }
    LabelKnob 10, { }
    LabelKnob 19, { }
    LabelKnob 20, { }
    LabelKnob 21, { }
    @End

    @Description
    Use the 16 numbered knobs to sequence a MIDI CC pattern of 16th steps. The CC values are sent out to CC#53.
    @End

  • edited May 20

    Working now, cheers🔥

  • edited May 20

    Edit: resolved, lol

  • Hi there! A question for @wim or anyone who can help: I have a new MPE controller (the "Exquis") which is working perfectly except that the MPE expression values (the ones which are sent per each note on channel 74) are often confusing some synths.

    So I found this beautiful script by @wim https://patchstorage.com/mpe-multiplexer/ which does exactly and perfectly what I need, except that when I load it I completely lose the pressure (aftertouch) information.

    I'm trying in Logic with ATOMS. If I disable Mozaic, I can definitely see the pressure data in ATOMS, and also putting the script in "MPE Thru" doesn't help. Thanks!

  • wimwim
    edited May 23

    @unlink said:
    Hi there! A question for @wim or anyone who can help: I have a new MPE controller (the "Exquis") which is working perfectly except that the MPE expression values (the ones which are sent per each note on channel 74) are often confusing some synths.

    So I found this beautiful script by @wim https://patchstorage.com/mpe-multiplexer/ which does exactly and perfectly what I need, except that when I load it I completely lose the pressure (aftertouch) information.

    I'm trying in Logic with ATOMS. If I disable Mozaic, I can definitely see the pressure data in ATOMS, and also putting the script in "MPE Thru" doesn't help. Thanks!

    I'll take a look. Might take a bit to refresh my memory on that code.

    If possible, could you post a screenshot of the output from a midi monitor such as streambyter that shows the direct output for aftertouch from the Exquis? I need to see exactly what's being sent. Is it poly aftertouch or mono aftertouch? Please press two keys at the same time so that poly aftertouch will be captured if it is supported.

  • @wim said:

    I'll take a look. Might take a bit to refresh my memory on that code.

    If possible, could you post a screenshot of the output from a midi monitor such as streambyter that shows the direct output for aftertouch from the Exquis? I need to see exactly what's being sent. Is it poly aftertouch or mono aftertouch? Please press two keys at the same time so that poly aftertouch will be captured if it is supported.

    Sure, there you are!

    Thanks!

  • @wim said:

    @unlink said:
    Hi there! A question for @wim or anyone who can help: I have a new MPE controller (the "Exquis") which is working perfectly except that the MPE expression values (the ones which are sent per each note on channel 74) are often confusing some synths.

    So I found this beautiful script by @wim https://patchstorage.com/mpe-multiplexer/ which does exactly and perfectly what I need, except that when I load it I completely lose the pressure (aftertouch) information.

    I'm trying in Logic with ATOMS. If I disable Mozaic, I can definitely see the pressure data in ATOMS, and also putting the script in "MPE Thru" doesn't help. Thanks!

    I'll take a look. Might take a bit to refresh my memory on that code.

    If possible, could you post a screenshot of the output from a midi monitor such as streambyter that shows the direct output for aftertouch from the Exquis? I need to see exactly what's being sent. Is it poly aftertouch or mono aftertouch? Please press two keys at the same time so that poly aftertouch will be captured if it is supported.

    oh. OK, that didn't take long. I didn't include poly aftertouch in the script at all. It should just be a matter of converting poly aftertouch into mono aftertouch (channel pressure). It'll have to be averaged out when more than one key is held down, but that should be easy.

  • wimwim
    edited May 23

    @unlink said:

    @wim said:

    I'll take a look. Might take a bit to refresh my memory on that code.

    If possible, could you post a screenshot of the output from a midi monitor such as streambyter that shows the direct output for aftertouch from the Exquis? I need to see exactly what's being sent. Is it poly aftertouch or mono aftertouch? Please press two keys at the same time so that poly aftertouch will be captured if it is supported.

    Sure, there you are!

    Thanks!

    If you have a second, could you press two keys at once and give me another screenshot?

  • @wim said:
    oh. OK, that didn't take long. I didn't include poly aftertouch in the script at all. It should just be a matter of converting poly aftertouch into mono aftertouch (channel pressure). It'll have to be averaged out when more than one key is held down, but that should be easy.

    Oh great! Actually, I personally don't need to have them averaged out for pressure (apparently this is handled well differently from expression..), but I can tweak your script myself if needed :)

  • wimwim
    edited May 23

    @unlink said:

    @wim said:
    oh. OK, that didn't take long. I didn't include poly aftertouch in the script at all. It should just be a matter of converting poly aftertouch into mono aftertouch (channel pressure). It'll have to be averaged out when more than one key is held down, but that should be easy.

    Oh great! Actually, I personally don't need to have them averaged out for pressure (apparently this is handled well differently from expression..), but I can tweak your script myself if needed :)

    Averaging them is the only way to deal with them. When you hold down more than one note, there will be a stream of aftertouch messages coming in on a separate channel for each note. I either have to arbitrarily select one note to follow or average them. If I select one then it is released, I'd have to switch to another remaining note, and there could be a jump in values.

  • @wim said:

    @unlink said:

    @wim said:

    I'll take a look. Might take a bit to refresh my memory on that code.

    If possible, could you post a screenshot of the output from a midi monitor such as streambyter that shows the direct output for aftertouch from the Exquis? I need to see exactly what's being sent. Is it poly aftertouch or mono aftertouch? Please press two keys at the same time so that poly aftertouch will be captured if it is supported.

    Sure, there you are!

    Thanks!

    If you have a second, could you press two keys at once and give me another screenshot?

    Yes!

  • wimwim
    edited May 23

    Thanks, @unlink, that helps.

  • Hi @unlink, I think I have a quick fix. This will only handle channel (mono) aftertouch, which appears to be what your controller is sending. Poly Aftertouch would need some more work.

    I have limited ability to test, so please let me know how it goes.

    https://patchstorage.com/mpe-multiplexer/

  • @wim said:
    Hi @unlink, I think I have a quick fix. This will only handle channel (mono) aftertouch, which appears to be what your controller is sending. Poly Aftertouch would need some more work.

    I have limited ability to test, so please let me know how it goes.

    https://patchstorage.com/mpe-multiplexer/

    Thank you very much, I’ll test asap!

  • @unlink said:

    @wim said:
    Hi @unlink, I think I have a quick fix. This will only handle channel (mono) aftertouch, which appears to be what your controller is sending. Poly Aftertouch would need some more work.

    I have limited ability to test, so please let me know how it goes.

    https://patchstorage.com/mpe-multiplexer/

    Thank you very much, I’ll test asap!

    I did some tweak to my taste but the main idea works!
    Note that the "Channel Pressure Thru" for some reason doesn't work. I ended up sending notes on, off and pressure to their original channel instead of muxing them together because I really only needed to mux the CCs on channel 74, but just so you know.

    Thank you very much for taking a look and adapting the script!

  • wimwim
    edited May 24

    @unlink said:

    @unlink said:

    @wim said:
    Hi @unlink, I think I have a quick fix. This will only handle channel (mono) aftertouch, which appears to be what your controller is sending. Poly Aftertouch would need some more work.

    I have limited ability to test, so please let me know how it goes.

    https://patchstorage.com/mpe-multiplexer/

    Thank you very much, I’ll test asap!

    I did some tweak to my taste but the main idea works!
    Note that the "Channel Pressure Thru" for some reason doesn't work. I ended up sending notes on, off and pressure to their original channel instead of muxing them together because I really only needed to mux the CCs on channel 74, but just so you know.

    Thank you very much for taking a look and adapting the script!

    I don't understand that. Channel Pressure Thru works as expected for me. The Channel Pressure messages are sent on the exact channel that they originate on.

    There's a disconnect in the logic of the program design though. Notes are always multiplexed to a single channel. If Channel Pressure Thru is engaged, then the channel pressure messages are usually not going to be on the notes channel, so they will have no effect.

    I suspect that's what's making it look like Thru doesn't work. If you hook up a midi monitor, I think you'll see what I mean. If not, then something else is up.

    It actually makes no sense to have the Thru option for Channel Pressure unless it also engages Thru for Notes. Maybe I should rethink that.

  • wimwim
    edited May 24

    @unlink, you might want to check out Expression Redirector. That one gives you individual control over each dimension of MPE expression, and allows you to block or remap each one.

    https://patchstorage.com/expression-redirector/

    [edit] nvm. That one doesn't do what you want. It converts Mono Aftertouch (pressure) into the CC # corresponding to the note number. Still, I think it's a pretty darn cool script. 😎

  • wimwim
    edited May 25

    @unlink - I played around with forcing notes MUX and channel pressure MUX to the same setting, but quickly got into the weeds. If I do that then it also makes sense to do the same for pitch bend and expression, but the interactions between the controls get weird and it gets in the way of blocking things individually.

    See, the problem is if you force notes to a single channel but don't force the other dimensions to a single channel, they rarely affect the notes. For instance, if your notes are on channel 1, but you have pass-through on pitch bend, then the pitch bend messages are going to be coming on channel 5, 6, 11, whatever. They won't affect the notes.

    But if I force all the options to be the same then it gets awkward setting blocking for one or the other. I could probably puzzle out something that makes sense, but I'm settling for just adding a note that some settings are allowed but don't make sense.

    I'll wait a bit before uploading the final version, to see if you are seeing different behavior in a midi monitor than I am and if my explanation of why channel pressure didn't seem to be working for you makes sense.

    [edit] I think the key change for your use case is you can now set notes and channel pressure to pass-thru while setting Expression to Blocked.

    Cheers,
    Mike

  • @wim said:
    @unlink - I played around with forcing notes MUX and channel pressure MUX to the same setting, but quickly got into the weeds. If I do that then it also makes sense to do the same for pitch bend and expression, but the interactions between the controls get weird and it gets in the way of blocking things individually.

    See, the problem is if you force notes to a single channel but don't force the other dimensions to a single channel, they rarely affect the notes. For instance, if your notes are on channel 1, but you have pass-through on pitch bend, then the pitch bend messages are going to be coming on channel 5, 6, 11, whatever. They won't affect the notes.

    But if I force all the options to be the same then it gets awkward setting blocking for one or the other. I could probably puzzle out something that makes sense, but I'm settling for just adding a note that some settings are allowed but don't make sense.

    I'll wait a bit before uploading the final version, to see if you are seeing different behavior in a midi monitor than I am and if my explanation of why channel pressure didn't seem to be working for you makes sense.

    [edit] I think the key change for your use case is you can now set notes and channel pressure to pass-thru while setting Expression to Blocked.

    Cheers,
    Mike

    Hey, I totally understand your point and I agree, some combinations are allowed but they do not make any sense. Right now, the last version of the script works perfectly and does exactly what I needed, if I set:

    • Notes THRU
    • Pressure THRU
    • PB THRU
    • Expression MUX

    In this setup, having for example PB or Pressure set to something which is not THRU has weird results because some notes are affected and some other are not. So maybe your idea to link together Notes/Pressure/PB when doing MUX makes sense, because having THRU only for some parameter doesn't. Or maybe you can leave the script as it is and explain that "issue" in the docs, so if someone has weird needs he'll be able to do that anyway :smile:

  • edited May 25

    Hello.
    @wim @ki @espiegel123 Or anyone else who is a member of this channel Is there anyone among you friends who has the Atom Piano roll 2 ?
    Have you noticed any bugs in Swing in this app?
    Or maybe I am wrong, if so please advise me on this.

  • wimwim
    edited May 25

    @pejman said:
    Hello.
    @wim @ki @espiegel123 Or anyone else who is a member of this channel Is there anyone among you friends who has the Atom Piano roll 2 ?
    Have you noticed any bugs in Swing in this app?
    Or maybe I am wrong, if so please advise me on this.

    What kind of bugs? Can you be more specific? You might get more responses if you start a separate thread for this question since people viewing this thread are focused mainly on Mozaic.

  • edited May 25

    @wim said:

    @pejman said:
    Hello.
    @wim @ki @espiegel123 Or anyone else who is a member of this channel Is there anyone among you friends who has the Atom Piano roll 2 ?
    Have you noticed any bugs in Swing in this app?
    Or maybe I am wrong, if so please advise me on this.

    What kind of bugs? Can you be more specific? You might get more responses if you start a separate thread for this question since people viewing this thread are focused mainly on Mozaic.

    Where should I create a topic?
    I have never done this before.
    Do you mean new discussion ?

  • @pejman said:

    @wim said:

    @pejman said:
    Hello.
    @wim @ki @espiegel123 Or anyone else who is a member of this channel Is there anyone among you friends who has the Atom Piano roll 2 ?
    Have you noticed any bugs in Swing in this app?
    Or maybe I am wrong, if so please advise me on this.

    What kind of bugs? Can you be more specific? You might get more responses if you start a separate thread for this question since people viewing this thread are focused mainly on Mozaic.

    Where should I create a topic?
    I have never done this before.
    Do you mean new discussion ?

    Just press the New Discussion button at the bottom of the page, and choose the category General discussion, then make a post with a title l Iike 'Atom2 bug regarding swing?'

  • @Gavinski said:

    @pejman said:

    @wim said:

    @pejman said:
    Hello.
    @wim @ki @espiegel123 Or anyone else who is a member of this channel Is there anyone among you friends who has the Atom Piano roll 2 ?
    Have you noticed any bugs in Swing in this app?
    Or maybe I am wrong, if so please advise me on this.

    What kind of bugs? Can you be more specific? You might get more responses if you start a separate thread for this question since people viewing this thread are focused mainly on Mozaic.

    Where should I create a topic?
    I have never done this before.
    Do you mean new discussion ?

    Just press the New Discussion button at the bottom of the page, and choose the category General discussion, then make a post with a title l Iike 'Atom2 bug regarding swing?'

    Thanks. @Gavinski

  • wimwim
    edited May 25

    @unlink said:

    @wim said:
    @unlink - I played around with forcing notes MUX and channel pressure MUX to the same setting, but quickly got into the weeds. If I do that then it also makes sense to do the same for pitch bend and expression, but the interactions between the controls get weird and it gets in the way of blocking things individually.

    See, the problem is if you force notes to a single channel but don't force the other dimensions to a single channel, they rarely affect the notes. For instance, if your notes are on channel 1, but you have pass-through on pitch bend, then the pitch bend messages are going to be coming on channel 5, 6, 11, whatever. They won't affect the notes.

    But if I force all the options to be the same then it gets awkward setting blocking for one or the other. I could probably puzzle out something that makes sense, but I'm settling for just adding a note that some settings are allowed but don't make sense.

    I'll wait a bit before uploading the final version, to see if you are seeing different behavior in a midi monitor than I am and if my explanation of why channel pressure didn't seem to be working for you makes sense.

    [edit] I think the key change for your use case is you can now set notes and channel pressure to pass-thru while setting Expression to Blocked.

    Cheers,
    Mike

    Hey, I totally understand your point and I agree, some combinations are allowed but they do not make any sense. Right now, the last version of the script works perfectly and does exactly what I needed, if I set:

    • Notes THRU
    • Pressure THRU
    • PB THRU
    • Expression MUX

    In this setup, having for example PB or Pressure set to something which is not THRU has weird results because some notes are affected and some other are not. So maybe your idea to link together Notes/Pressure/PB when doing MUX makes sense, because having THRU only for some parameter doesn't. Or maybe you can leave the script as it is and explain that "issue" in the docs, so if someone has weird needs he'll be able to do that anyway :smile:

    Thanks for getting back to me. I uploaded the latest version to patch storage. I decided to leave the settings independent and just note that some combinations don't make sense. It's too hard to cover all the different valid combinations people might come up with while restricting the combinations that technically don't make sense.

    Thanks for all the suggestions and details. The script is better off for it.

  • @wim said:
    Thanks for getting back to me. I uploaded the latest version to patch storage. I decided to leave the settings independent and just note that some combinations don't make sense. It's too hard to cover all the different valid combinations people might come up with while restricting the combinations that technically don't make sense.

    Thanks for all the suggestions and details. The script is better off for it.

    Well, thank you for your help! You helped me solve a very annoying issue :smile:

Sign In or Register to comment.