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
Thanks for your response @McD , @TheOriginalPaulB and @hes
When I posted this my intention was not to have a similar UI via Mozaic but to achieve similar functionality (sorry if my question was not clear).
As @hes said, I can connect an external midi keyboard (or any other midi on-screen KB app) to input the actual chord using my left hand (or one finger chord using some other Mozaic script). Then what I need is - for the rest of the notes on my right hand to be melodically mapped with only chord notes (that I have given input with my left hand).
I figured out this functionality is available in scaler 2 ( keylock > Chord Notes option). So that solves my purpose for the time being.
Based on this more limited description of what you need, the Dynamic Scale Quantize script seems like one that could be easily modified to fit your purpose. That one does what you want, but based on moving knobs to tell it when to learn the chord and when to filter. I think all that would be needed is to replace the current logic with logic that looks at the keyboard range the notes would be played in.
That video shows a lot more advanced features and options, which would take more effort.
Anyone who's interested should feel free to modify that script however they like. I don't have the time myself right now.
That's great. 👍🏼
I think more developers should survey Mozaic scripts to get ideas for useful IOS apps.
Bryan Appel's "Clusters" script would make an excellent IOS App and would be pretty easy
to analyze and port. I'm not aware of any IOS Apps that create "Clusters/Swarms" like it does. But I'd love to be wrong... Bryan describes it as a "Particles" generator (as I recall).
Many of us create Mozaic scripts based on IOS apps just for the challenge of figuring out
how to make it work in the somewhat limited environment of the Moziac GUI and Event driven Interpreter.
Would love something like Vermona Perfourmer playmodes script
I'm not sure I understand. That looks like it deals with combining audio channels, not midi. Mozaic only deals with midi. I could well be missing something as I only quickly googled and found the product description.
Is it possible to write a Mozaic script that could fix the “sample offset” issue on midi apps that haven’t implemented that feature ?
No.
That happens at too low a level for another app to affect. Even if Mozaic could know when a midi message was delayed because it missed a buffer, it is already late and would still have to be received and acted on by Mozaic, adding even more delay. Mozaic can't sent that message back in time, so ...
It's definitely dealing with midi
Have a look on the Perfourmer manual from page 25 to 28
Ah. I see now.
Looks doable from what I can tell, though you would have to route all that midi output in ways that are useful for it to do anything.
It's not something I can take up, but maybe someone else will become interested.
I’m wondering if there is a way, perhaps a Mozaic script that exists or could be created, that can replicate the Patterning 1 & 2 feature of having the steps move position each time the sequence plays through? I love that feature, it creates some really interesting polyrhythms and evolving drum sounds just by moving the steps around each rotation in +/- set amount. Maybe a simple 2 lane drum sequencer with 8 steps on top and 8 on the bottom, with the ability to move the steps, a set amount on each pass? I could never create this, but maybe one of you Mozaic masters could chime in. Thanks.
That's a really cool idea @poppadocrock. I'm fooling around with it just for fun.
However, miRack's Gate-Seq-64 already has this and more. A little bit of learning curve, but once set up and saved as a preset, it can be a piece of cake.
I'm thinking 4Pockets Euclidean can be a good one for this too. Probably others?
Here's an AUM session with gate-64 set up for Ruismaker. To change the length and playback mode of the pattern use the LEN/MODE button and the Knob to the left of the numeric output.
The drawback to this setup is all the sequences share the same pattern length and direction. If you wanted sequences with independent Length, you'd need one Gate-Seq-64 for each. It's easy to duplicate modules (double tap the module title, then Manage > Duplicate), but you do have to connect the cables for each.
If setting up this patch from a screenshot, there are some important settings in the background:
Thanks. Euclidean by 4P has that? Yea it’s called auto-rotate in the Patterning apps. I’d love to be able to use that auto rotate feature with other drum apps.
@wim thanks but unfortunately I don’t have miRack, or Euclidean, might consider one for that feature though….
I’ve been thinking about that auto rotate feature for awhile but kept forgetting to ask about it when in the forum.
I'm definitely going to make a Mozaic script for this for fun. It may not be great and I can't say when I'll finish it, but something will happen eventually.
@wim A while back you wrote a handy script that listens for four specific notes and when it hears those notes, delays the note off for a specified period of time. It works fabulously and I still use it pretty much daily. (I use it with MIDI Guitar 2 to trigger sequences/loops of a specific length just using my guitar.) I recently came upon a use case in which I don’t want to retrigger the note or start playing a new note before the first delay ends. That is, I play C3 and it delayed the note off for 2 seconds even if I play C3 again (or any of the other specified notes). Which part of the original script would need to be edited to do this?
@Description
The script checks for certain notes then looks up a note to translate it to. It then sends a note-ON for that note, and schedules a note-OFF after a configurable delay. If another note-ON for another one of the notes is received before the delay time then the note-OFF is sent immediately, a new note-ON is sent, and a new note-OFF is scheduled.
▫️ Configure the note-OFF delay with the first knob.
▫️ Edit variables in the @Settings section to change the notes to listen for, notes to translate to, the channel to listen on, and other settings. See the comments for details and ...be careful.😬
@End
@Settings
// The midi channel to check for and send notes
channel = 9
// NotesIn holds the notes to check for.
// NotesOut holds the notes to translate to
// sendTime must only hold zeros
// Make sure all these arrays have the same number of cells!
notesIn = [44, 36, 11, 11]
notesOut = [84, 86, 22, 22]
sendTime = [0, 0, 0, 0]
// If you change the number of notes in the arrays above,
// set "lastNote" to 1 less than the number of notes!
lastNote = 3
// set this to NO if you want to block other MIDI
thru = YES
// this is the delay in milliseconds on a new script load. Adjust to taste.
default_delay = 5000
@End
@OnLoad
Call @Settings
// these are just some constants to make code more readable
noteON = 0x90
noteOFF = 0x80
// this stuff happens only on a new load of the script
if Unassigned init
init = YES
endif
SetTimerInterval 10
StartTimer
LabelKnobs {Settings}
ShowLayout 4
@End
@OnMidiInput
if MIDICommand <> noteON and MIDICommand <> noteOFF
if thru = YES
SendMidiThru
endif
else
onTime = SystemTime
Call @CheckNote
endif
@End
@CheckNote
noteIndex = -1
if MIDIChannel = channel
idx = 0
while (noteIndex = -1) and (idx < lastNote+1)
if MIDINote = notesIn[idx]
noteIndex = idx
else
Inc idx
endif
endwhile
endif
// if no note match was found then noteIndex will still be -1
@End
@OnTimer
time = SystemTime
for sendIndex = 0 to LastNote
if sendTime[sendIndex] > 0 and sendTime[sendIndex] <= time
endfor
@End
///////////////////////////////////////////
// GUI Stuff //
///////////////////////////////////////////
@OnKnobChange
knob = LastKnob
value = GetKnobValue knob
if LastKnob = 0
tmp = TranslateScale value,0,127,1,10
Call @RoundTime
endif
@End
@RoundTime
seconds = RoundDown tmp
// round to nearest 0.5 seconds
decimal = 5 * (Div ((tmp - seconds) * 10), 5)
// convert delay to milliseconds
delay = 1000 * (seconds + (decimal/10))
// label the knob this way to avoid zeros after the decimal
LabelKnob 0, seconds, {.}, decimal, { sec.}
@End
Hey I appreciate anything that comes out of this. Cheers mate.
Thanks @lukesleepwalker hopefully that gives him A good starting point. Cheers.
Or maybe it’s a midi fx and not a sequencer, I don’t know just throwing that out there…
What happens if you play a C3 again before the scheduled note off? Nothing?
Not sure.
16.00 onwards. Lfo are just modulating lfo which were already given to parameters? Is there step sequencing before the chord sequencing? What it means to be in C. Is that scale? Playing chords 3 times etc. Is that random or can euclidean dial rotation via midi, send sequence to chord apps or all be made with Drambo as a host with modules and/or apps?
Why do you think you would need a mozaic script?
Apps could be mela's with similar vermona Ui? Or any synths with midi controller?
Euclidean rotation dials via midi? Either Drambo or 4 pockets. Chord apps? Polybud?
Someone here would likely understand if they watch video.
Although Im just guessing and for mainly screen use.
3 melas. With a polybud in drambo. The step sequencing will probably be better than octatrack. If cc from polybud can be used for cross lfo modulation. Just how to setup a chord takeover ( probably a drambo module ) and then use cc from polybud or midi to a euclidan or probabilty of chords on the same audio tracks of the melas.
Yup, nothing should happen if C3 is pressed, or any other note. It should become deaf while the gate is held open.
The place to focus on is the
@OnMidiInput
section. It's easier for me to show the changes than to fully explain them. To make the changes clearer, and to make it easier to switch between modes, I broke the sending part out into two separate custom events that can be called depending on the behavior you want.@OnMidiInput
changed from:to (Note the changes starting at
elseif (noteIndex <> -1) and (MIDICommand = noteON)
I suggest adding a knob to set a variable to tell which behavior to use, then checking that variable to decide which routine to call, rather than simply commenting / un-commenting lines of code buried in the script.
P.S. To avoid all those formatting problems when you post the code, place three back-ticks (```) on a line by themselves above and below the code. This avoids big-time editing needed for someone cutting and pasting your code from their browser.
OK, cool, thank you for the tips! I had no idea about the three back ticks….
edit: The script works perfectly for my use case and I follow the logic of the script enough to tweak as needed. Thanks again!
I'm sure there must be a Mozaic script for this already, maybe someone could point me towards it. When using, say 4Pockets Progressions I would like to control the range of notes coming through. Eg I might want to start only letting lower notes come through then gradually allow higher ones to come through. I just now tried using Audio Veek Midi Key Zone, but found I got audio drop outs when adjusting the zone. Maybe I just don't know how to use it properly. Whatever the solution would be, it would have to be seamlessly tweakable. Any recommendations?
Found it. https://patchstorage.com/midi-filter-and-transpose/
Good ol’ @_ki 🎉
A Linnstrument Based request
Backstory- learning songs on Linnstrument by sending various Midi melodies or chord changes to Linnstrument, lighting up LEDs to show notes on fingerboard. An incredibly effective way to learn for the short attention span.
Anyhow when sending midi in Linnstrument will show every pitch simultaneously, so if Note is whichever octave all C leds light. It’s not the worst thing as if helps to learn whole fingerboard.
However I’d like to isolate the LEDs to just show single pitches or chords in one octave or really just a single range on Linnstrument.
I know this is possible thru CCs and this info form The creator of Linnstrument—
Script would need to take into account the leds originally set on Linnstrument and what color and then set and reset based on midi in and default.
Is this making sense to the Mozaic wizards?
I’m certain it would be a used tool to many a Linnstrument user.
Please let me know if this is possible/easy or if there’s any other questions
Thanks Wizards!
Sincerely
Put
@tput73 im not sure if this helps but I came across this Linnstrument script.
https://patchstorage.com/linnstrulights-101/