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 StoreLoopy Pro is your all-in-one musical toolkit. Try it for free today.
Comments
@wim
Thanks for all of information 🙏.
I am reviewing and testing all the content you sent me.
Soon I will send you one of the codes I wrote in that @ontimer.
Today I was getting mildly frustrated with getting the Orchestral Dreams pack in Module to sound right without hitting my keyboard unnaturally hard. I looked at AUM’s own keyboard with its ‘velocity range’ feature, and thought, “This is surely something @wim would have written a Mozaic script for, right?” and lo, it was so. Thank you, past @wim.
Good to know. 👍🏼
Which script was that? There are probably more sophisticated ones available. I don't remember writing anything like that. 😂
Ha, the https://patchstorage.com/orchestral-instruments-range-limiter/ — I think the velocity range was an afterthought, but what I was looking for. Though the actual note range limiters also come in handy for my scenario, too 👍
You might also want to check out CurveMaker and MIDI Scaler.
Ah, very cool. Changing the response curve was going to be my next thing. Glad I found this stuff in the context of orchestral note range, though. (While I’m not necessarily averse to unnatural pitch for sampled instruments, I’m still also the guy who often edits the wacky range of the uppermost zone in others’ multisampled instruments.)
How I wish I could use Mozaic in Logic on my Mac. @brambos It would open so many possibilities there.
With iDAM you could do a pretty effective job of that, I would think.
NovoNotes SideRack is another good solution - but is also expensive compared to most apps
Yes, that can work, Bluetooth also works, but I'd like to pair mozaic with other sequencers I have on MacOs.
Midi is two way on idam, so things like that might be possible, but yeh, kludgy.
Hi masters. @espiegel123 @wim @ki @McD
If you remember, I asked a question a long time ago about the note numbers related to the chord or polyphonic notes ( The notes are held down simultaneously ) . For example i held down notes C4, E4, G4 . So in this example note C4 = first note , E4 = second note, G4 = third note . If i add note D4 , so The order of the notes will change : C4 = first note, D4 = second note , E4 = third note , G4 = fourth note .
I had asked how to write code in mozaic that can recognize the order of note numbers .
As far as I remember , if I'm not mistaken , You answered that such a feature can be achieved only by defining the types of chords.
Now I ask again if there is any other way ?
I don't think I understand the question. Either that or you asked it differently before. What you've asked above doesn't sound like a problem but I feel like there is probably more to the question. How would you use these notes? Can you link to the earlier question for comparison?
Simply ordering the notes that are held down in an array, then re-ordering them if a new one is added isn't too difficult.
Hi @wim
Unfortunately I can't find the link .
You wrote: “ Simply ordering the notes that are held down in an array, then re-ordering them if a new one is added isn't too difficult.“
Can you write the code please?
I don't want to take the time to do that only to find that it doesn't do what you really wanted. Please describe the purpose of having code to sort the held down notes - how you would be getting the notes in, and what you would be doing with the notes once sorted.
If we had this discussion before and determined what you wanted wasn't feasible, then there were surely good reasons. So, unless the use-case has changed, then the answer hasn't changed either.
Plus, I seem to remember providing note-sorting code to someone before. Perhaps it was you in the earlier conversation? Please at least take the time to find the original conversation you referenced.
@wim
Incredibly, I was able to find it because it was a long time ago and I didn't know which forum and witch page I had asked that question on.
Page 88
https://forum.audiob.us/discussion/comment/1189951/#Comment_1189951
My question started with these sentences :
“Why is there no syntax or command of the first note or the second note or the third note or
the lowest note or the highest note From the chord that was performed via virtual keyboard in Mozaic , without needing to introduce chords into the mozaic, specially for when we are changing the chords in performance ?”
You finally wrote such a script for me :
https://forum.audiob.us/discussion/comment/1189978/#Comment_1189978
But this script cannot correctly determine the order of the notes after we move our fingers ( Add a finger, subtract a finger, move a finger to the notes ).
But again, I will give a clearer explanation about what I mean.
Imagine me putting my fingers on several keys at the same time . For example C4 , E4 , G4 .
In this case, I expect the mozaic in the log to show me like this :
first note = C4 , second note = E4 , third note = G4
If i release my finger from note E4 , I expect : mozaic shows in log : first note = C4 , second note = G4
Then If i add note G3 this time, I expect : mozaic shows in log : first note = G3 , second note = C4 , third note = G4.
I just need to discover and learn this code right now and I have no plans to use it right now.
Are you sure that script doesn't do what you describe? It seems to work just fine here.
What isn't working correctly about it?
Wait. I do see where your request now is different than it was then.
I understand the change that you need now.
@wim .
I'm glad you understand what I mean.
Thank you very much for your time. 🙏
This is a comment for the reader’s of this thread interested in knowing more about how Mozaic “logs”
things.
Mozaic as an app doesn’t save anything when you press keys unless you write the script to store the
data.
Mozaic processes script “code blocks” for MIDI incoming events:
@OnMidiInput
@OnMidiNote
@OnMidiNoteOn
@OnMidiNoteOff
@OnMidiCC
SendMIDIThruOnCh chan, optionaldelay
@pejman supplies a interaction and his expectation:
OK. That will generate 3 @OnMidi category events. Write the OnMidi* code block that stores these notes into an array. NOTE: When the thre notes arrive they may arrive in an unintended order unless you carefully roll the notes up or down the chord.
At this point you would have 3 note numbers in a note array. You can sort them numerically at any pont you wish and have an array that matches this first note, etc.
That D4 creates another OnMidi type event that should store the note number without deleting 1,2 and 3. Another “sort” process could be used to order them numerically.
Mozaic is an EVENT DRIVEN runtime engine… very similar to the concepts of a Computer Graphics style of programming. Mozaic detects events:
Midi Events
Interface Events (PADS, knobs, sliders, etc)
Timer Functions
Every event must have a Code Block created to do anything useful.
Writing these code blocks requires understanding all the Mozaic data, math, event and logging commands available for building robust custom “MIDI Apps”.
Here you go @pejman. This should work as far as I understand your request:
[edit] See below for a much better method for sorting the notes.
@wim
That’s great, that’s working 🙏.
Yes, this is exactly what I wanted.
I’m glad it works. There are probably more elegant ways to do it, but it should be reasonably efficient.
Hi @wim @McD
Thanks @McD for explanation.
@wim , From reading your code, I noticed that you sort the notes through a loop .
I had tried before I asked you my question .
But not based on loop, but based on being if’s, with 2 array : The first array to collect held notes and the second array to sort them with ( if midinote = x put in x array’s sell), In the middle of the way, I realized that the direction I was going was completely wrong.
But In the middle of the way, I realized that I needed a lot of (IFs) and I realized that the direction I was going was completely wrong. I was disappointed.
In this script I was only trying on the first three notes .
@OnLoad
FillArray note, -1, 5
FillArray count, -1, 5
log {firstnote ➡️}, count[0] , { secondnote➡️}, count[1],{ thirdnote➡️}, count[2], { fortnote➡️}, count[3]
@End
@OnMidiNoteOn
n = MIDINote
CopyArray n, note[MIDINote] , 1
Call @counter
//log {firstnoteON ➡️}, note[0] , { secondnoteON➡️}, note[1],{ thirdnoteON➡️}, note[2], { fortnoteON➡️}, note[3]
@End
@OnMidiNoteOff
n = -1
CopyArray n, note[MIDINote]
Call @counter
//log {firstnoteoff ➡️}, note[0] , { secondnoteoff➡️}, note[1],{ thirdnoteoff➡️}, note[2], { fortnoteoff➡️}, note[3]
@End
@counter
if note[0] = 0
CopyArray note[0], count[0]
elseif note[1] = 1
CopyArray note[1], count[0]
elseif note[2] = 2
CopyArray note[2], count[0]
elseif note[3] = 3
CopyArray note[3], count[0]
endif
if note[0] = 0 and note[1] = 1
CopyArray note[0], count[0]
CopyArray note[1], count[1]
elseif note[0] = 0 and note[2] = 2
CopyArray note[0], count[0]
CopyArray note[2], count[1]
elseif note[0] = 0 and note[3] = 3
CopyArray note[0], count[0]
CopyArray note[3], count[1]
endif
if note[1] = 1 and note[3] = 3
CopyArray note[1], count[0]
CopyArray note[3], count[1]
endif
log {firstnote ➡️}, count[0] , { secondnote➡️}, count[1],{ thirdnote➡️}, count[2], { fortnote➡️}, count[3]
@End
After you sent me the script, I remembered that there is a script ( Latch and Switch ) by Mark Dammer, that can sort the notes in order in the pads. (Track the notes that are being held down and sort them lowest note to highest note.) , I had worked with this script, but I didn't remember that it could sort the notes .
But unfortunately, I can't read this script to understand exactly how he did it.
If you try this patch please set it to replace mode . With pressing shift and latch on/off pad (pad num 12 )
https://patchstorage.com/latch-and-switch/?
utm_source=discord&utm_medium=patchbot&utm_campaign=embed
They use a more efficient approach than I did. I like it much better. I knew there was a much more better way to go about it, but copying into a new array was easier for me to visualize.
I have heavily commented the key
while
loop that does the sorting. Hopefully that will allow you to understand how it is working.Thanks for posting that. I learned something useful from looking at that better code. 😎
Thanks for reading the script and many thanks for the valuable analysis and explanations🙏.
I will read both scripts, your script and latch and switch line by line .
Hi everyone.
Is it possible to create specific channel output in the nodes which contains midi plug-in in aum , through aum itself ?
It is possible to select a channel for each node's input, but there is no channel selection for its output.
Multiple output ports like Helium would be great.
Not sure how you could adapt existing code to this. There could be a SendMidiOut to port x function or perhaps another variable added to the existing send midi functions to select a port?
Hi . @GrimLucky
Thanks for replay.
I don't mean multiple output.
Some plugins don't have a built-in option for output channels , like atom pianoroll 1.
I want to create 2 nodes with 2 atom.
I want to send from atom1 to one of the cubasis tracks via chanel 2 , and another atom send with channel 3 to another cubasis track. Without any middle midi plugins.