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 and @wired2moon Oooh - don‘t have Polythmus, just knew that it does Poly to N Mono channels.
But now that i‘ve peeked into the Polythemus Manual, i see that it‘s possible to configure a single output channel (N=1) and if the voice allocation mode is set to ‚Next Free‘ it should always ‚steal‘ the single availabe channel and replace the current active note and with the newer note.
And that‘s the behavior of the non-legato mode of my script and what @wired2moon requested. The two additional legato modes of the my script are not covered by Polythemus and i suspect that this topic is too niche to have a specialized app.
Don’t need no Polythingymajig thanks to @_ki ‘s handiwork! Thanks for that tip though man, always good to know what apps can help with a specific requirement like this.
Still haven’t tried it out yet Ki but hopefully shortly I’ll get a chance - big thanks again!
@_ki always comes through.
Tried it out - spot on, works a treat
Said familiarity doesn’t seem to help attribute your quote to the right author though...
Tx. I need to brush up on slicing and dicing editing skills.
No worries.
Hey @_ki don’t want to get too needy here but there is another (similar in some ways to f-mono) function I have a real need for and I’m wondering how straightforward it would be.
Again, it’s something you would insert between midi controller/generator and synth - this time chords are generated and latched at source for an indefinite period of time. Naturally I’d like to preserve the polyphony. What Mozaic is needed for here is to ensure that when a new chord is struck (new note ons from midi controller/generator) these new notes automatically replace the notes of the previous chord rather than adding to them. It seems the common behaviour with latches is for the new notes to be added rather than replaced, resulting in a mushy mess during a live performance. For reference, the only ios synths that when latched do actually replace notes rather than add to existing ones are the ice gear synths (though involves using the synth’s own latch rather than latch at midi source).
Is that something that would be fairly straightforward? I hope my explanation isn’t too convoluted!
I did wonder if it could be done by specifying a polyphony max notes and rely on a ‘most recent notes win’ policy but most poly synths have a min of 4 which doesn’t work for triads, so much better than that would be a script that can automatically deal with chords with varying numbers of notes.
@_ki hmm I wonder if this can only realistically be done by the app doing the latching?
If that means the latching needs to be done by the Mozaic script, which in turn makes the script heavier going, well I would not expect you, Wim or anyone to take that on!
Checked Latchkeys script btw and as suspected it does not replace notes, it adds new notes to existing ones - i.e. the usual cumulative behaviour.
@wired2moon Maybe when a note is played, you could just have it check to see if the time since the previous note is less than ~2 seconds...and add it to the existing chord if the time is less than 2 seconds, or replace the existing chord if it's greater than.
@wired2moon Hmm - i think i still not fully undertand the use-case.
You want a new script to latch/sustain chords. New chords that arrive at a later time should replace the previous chord. Chords don’t need to have a fixed number of notes.
But how do you end the latching ? Pressing a pad ? Stopping of the host‘s clock `?
.
Build upon @Skyblazer general idea, one would use the SystemTime to decide if a chord is to be replaced.
There are just two cases:
All NoteOff events are blocked to sustain the notes.
All other midi events run ‚thru‘
.
I recommend using something like 1-to 15msec for the deltatime for manual chord play on a real keyboard, 2 seconds between accepting new chords is way too long. Its best, if the time can be adjustable via a knob, maybe between 1 and 50msecs.
Remarks: The concept would also latch mono melodies
.
As mentioned above, this script concept sketch is missing the ability to end the chords - the last chord will play infinite. Hence the question and first ideas on how to solve this concept problem.
.
This time i‘ll wait a bit before starting to code - perhaps there are aready app solutions
I think it’s the same behavior as Arturia keystep “hold” button function, of course the it needs an on/off for 5he switch. That would be a configurable CC or note number.
@Synthi The toggle sustain pad of the script can be controled via AU parameter automation, or one could implement a specific (maybe assignable) CC to toggle both the pad and sustain.
It really depends on how often you're changing the chord. If you're only changing the chord every 2 or 4 bars, then a more forgiving timing window, or a timing window that is extended with each key press, would allow you to arpeggiate the chord, or input the notes in a more interesting way. You might want it to be even longer than 2 seconds, or tied to the metronome.
It's a cool idea for "one man band" type setups, where a sustain pedal adds another thing to divide your focus.
I see your user case for using long deltatimes, but also the convenient of really small like 1msec for other playing styles, I think a wide range would be useful for everything, maybe two knobs, one for msec and the other as a multiplier? (I saw that in another script I can’t remember)
Thanks @_ki - this is why I started to think that maybe the requested functionality needs to be handled by whatever is doing the latching.
In my use case the latcher I've been using is Midi Tools Latch - I would simply toggle the latch on or off in that app. But I can see that the Mozaic script would probably need to be in control of latching.
A good reference here is IceGear synths - they handle this scenario very well with new chords resulting in notes unique to the previous chord being automatically released, even without the arp enabled. The latch is terminated simply by the user unselecting 'hold'. Their hold is even exposed as a midi controllable parameter which is very neat. If I only ever wanted to use IceGear synths and nothing else this whole thing would be a non-issue!
I concur that a user-selectable lag threshold (deltatime) would probably be best to cover multiple scenarios. Personally I would only need a very short window but others will have other needs. @Skyblazer and @Synthi - thanks for chiming in with ideas guys
Hi @wired2moon have a look at my midisostenuto script. Might just do what you want :-)
Thanks for this - I found one called sostenuto but it didn’t do what I need. Nonetheless I appreciate the input
Yes it is missing the automatic part...
But you can have more control, if you have a pedal.
Can't find the Mozaic FR discussion
Am'I the only one who'd love to have midi ports I/O within Mozaic, with "0" latency (from port to port) or single buffer latency from port to host or Host to port ?
Anyone have any good example scripts for launchpad programmers mode control?
Already checked out florians lightshow on patch storage, but looking for something with more midi events and processes past what you can build in components (mostly sending sysex commands)
Also unsure if Mozaic or streambyter would be a better solution.
I want to make a simple Moziac MIDI rhythm pattern generator:
Knob 1 - Channel
Knob 2 - Note
Knob 3 - Pattern Template Number
Knob 4 - Pattern Length
Knob 5 - Note Lengths (accents in the Patterns too?)
Knob 6 - PPQN
Knob 7 - Volume
Knob 8 - Pattern Progression
Then I'll crank up 3-10 of them and dial in something interesting. The main benefit is the polyrhythms off mixed PPQN's that are difficult if not impossible in MIDI sequencers... 2:3, 3:4, 3:5, etc.
I think all the patterns should be defined to the max PPQN value which will probably be 12. Note sure yet.
Then find a good use for the 4 Pads and the X-Y controller (probably CC's).
https://forum.audiob.us/discussion/32930/mozaic-create-your-own-au-midi-plugins-out-now#latest
Beta test run:
2nd Test - Mixing D and Z Machines:
Is there a script that exists in Mozaic to reduce the number of notes in comming. I use holon.ist and its sensors are great but sometimes produce an over whelming number of notes, especially those extremely short in length. I need to be able to reduce the clutter, cut down surplus notes, kill ultra short notes, then finally through it all to a scale. I know I dont ask much. I am not a programmer or given Mozaic would have risen to the challenge. I know that scripts exist for my mirack that are geared for holon.ist. Anyone written spefic scripts for holon.ist? Maybe mozaic already contains the scripts I need and my dyslexic head as not dug deep enough. I have use a couple of Mozaic scripts random and Ranbo which help a little.
Cheers guys in advance.
I’m hoping this one is easy! I want a script that converts any note played to a single note or CC and then stops the script from doing anything further. The use case is starting the AUM transport by playing the first note of a song on my guitar (converting the audio note to MIDI via MG2). The conversion part is easy; it’s the stopping of the script after exactly one note conversion that is stumping me currently.
Create a variable in the
@OnLoad
section and set it equal to NO:Now surround what you want to do with an if statement to check that done = NO. Set done = YES inside the if statement, and do what it is you want to do. Example:
Hmmmm, not sure I follow that. What I think I want is that after the MIDI note on that it flips to done and then it will stop any further actions related to the note on? Not sure why the do something is in the if statement.
I don't know how to explain it more clearly than that. In that example nothing will happen in the
@OnMidiNote
event after the first time. The first time the if statement will check if done equals NO and see that it is because you set it when the script was loaded. Then it will change done to YES and do whatever it is you want it to do. From then on it will do nothing because every time it hits that if statement it'll see that done does not equal NO and will skip over that part of the code.Just change
@OnMidiNote
to@OnMidiNoteOn
if the example isn't specific enough. But it shouldn't make any difference in how the script works.If it still doesn't make sense, maybe tell me exactly what you want to do just once and I'll give a complete example.
After that if statement happens one time... setting done to NO is they way it never happens twice.
@Wim's perfectly valid code is probably easier to follow if it's re-organized they way we think... sequentially like this: