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
Yes, I can see how it could confuse some DAWs, maybe saum host would pass those messages
Thx!
Humm. Sounds like it would be easier to try to add probability to the existing patch. Can you point me to the patch and I’ll take a look? (or cross my fingers that Bram does it first.)
Another release from me now up on patchstorage.com. This one is METROPLEX: an 8 stage MIDI step sequencer inspired by the Intellijel Metropolis.
Includes control of repeats per step, portamento/slide, ratcheting, randomization, step sequencing of MIDI CCs, and more!
Perfect for funky 16th note jams à la Kraftwek or Detroit techno, or ambient Kosmische Musik.
Yes that's the sticking point ... I wasn't sure if any of the layouts could be adapted to offer a way to do this. I thought perhaps the XY controller could be used as a note selector in some way. Not something I'd envisaged but it might lead to some interesting and unforseen arpeggiated outcomes!
Maybe something for a future version, or an update if you are adding new interface options, to have a general purpose grid tool to allow numbers to be entered? The use of those numbers would be up to the programmer, so it would be general purpose.
Having fun with this one but is there any reason you can only pick certain pitches? Not all notes are available and they all seem to be in the same octave, no low bass notes. I could always add another Mozaic scale script to give me the missing notes but I thought it a little odd that the notes are limited. Maybe I haven’t stumbled on how to see all 12 pitches.
The notes are limited based on the scale you select on the Controls page (long press on the Shift button). As I was testing this script I set the default scale to C minor and then never set it back to chromatic. That's easy to do yourself, if you want; it's near the top of the script after all the instructions. Change the line "PresetScale {Minor}" to "PresetScale {Chromatic}" (without the quotes) and you'll have all the notes.
Wow that long press opens up a whole new world! I totally missed that! Thanks!
Okay, I made a quick update that makes chromatic the default scale.
Yes indeed! And if you double tap the Shift button there's more. The pads can set portamento per step and you can skip steps too. And you probably already discovered that a single press on Shift cycles through 8 pages of sliders, each controlling a different parameter per step. All this and more are explained in detail in the instructions at the top of the code.
There’s code there?😉 I’ll be honest, I don’t read any of that so if you’re expecting people to see things there, you might want to point them in that direction. I did find the other things you mentioned. Thanks again! I found my low notes!
1000 comments. Congrats @brambos
You’re right, it’s not super obvious that there are instructions or how you get to them. To see the code, there’s a button on the top right of the plugin window that says “code.” That’s the one...although sometimes the button moves to the bottom middle of the plugin window. So yeah, a little confusing. And if you’re not into programming, looking at a wall of code can be pretty intimidating. And unfortunately, that’s the nature of the beast here. I’ve tried to make things as user friendly as possible within the framework given. But it makes sense to have the instruction where everyone can see them, so here they are. I’ll also post them over at patchstorage.com.
METROPLEX is an 8 stage MIDI step sequencer inspired by the Intellijel Metropolis.
Controls are organized into three main veiws, 1) Sliders, 2) Controls, and 3) Pads. In addition, the Sliders view contains 8 pages.
Use the SHIFT key to switch between veiws and pages. While in Sliders, a single press on the SHIFT key will cycle through the 8 pages. Press and hold the SHIFT key to toggle between Sliders veiw and Controls. Double tap the SHIFT key to switch between Sliders and Pads.
There are 8 pages in the Sliders view: 1) Pitch, 2) Gate Length, 3) Velocity, 4) Repeat Count, 5) Gate Mode, 6) Ratchet, 7) Modulation 1, and 8) Modulation 2
PITCH: This controls the pitch of the MIDI note per step. Range is one Octave. Notes are shown above the sliders. The notes shown are quantized by the SCALE control on the Controls page.
GATE LENGTH: Sets the length of the note per step. Be aware that the effect this has is dependent on the MIDI sound source you use. To hear its effect, use a sound with ADSR settings that contain a sustain portion and very short release. Range is 0-100% of the preset note length, which is determined by the CLOCK control.
VELOCITY: Sets the velocity of the note per step. Range is 0-127.
REPEAT COUNT: Metroplex is an 8-step sequencer, but each step may be set to repeat a number of times. Use this control to set the number of repeats, from 1 (no repeat, just the original step) to 8.
GATE MODE: There are 3 Gate Modes: 1) Repeat, 2) Single, 3) Hold, and 4) Rest. These modes work in conjunction with the REPEAT COUNT controls, so make sure you have REPEAT COUNT set to something other than 1 to hear the effect. REPEAT mode makes the note repeat the number of times set by REPEAT COUNT. SINGLE plays only the first note of the REPEAT COUNT period and rests for the remainder of the time. HOLD plays a single note the lasts for the entire REPEAT COUNT period. REST does not play a note during the period.
RATCHET: Ratchet sub-divides the pulse, providing quicker rhythmic sub-divisions per step. Range is 0 (no ratcheting), and 2, 3, 4, and 6 division per step. The exact sub-divisions available depends on the clock division set by the CLOCK control.
MODULATION 1 & 2: These two pages set modulation levels per step. MODULATION 1 is preset to output MIDI CC 1 (Mod Wheel) whereas MODULATION 2 is preset to MIDI CC 13. You can change these in the code to suit your preference.
LEDs under each slider indicate the current step playing. White means a note is playing on that step. Red indicates a rest (i.e., GATE MODE set to REST). Blue means the step is set to SKIP.
Every page in Sliders view provides access to a couple additional controls which are also available on the Controls view. These are the STAGES and PLAY MODE controls and the XY PAD. Their function is described below.
CONTROLS VIEW is the main performance page in Metroplex. Here you have access to the RANDOMIZATION pads, the XY PAD, and ten other controls.
Press RANDOMIZE to randomize the values of the sliders and the stages control. (In the code there are two variable that determine if PORTAMENTO and MODULATION are also randomized. Set these as you like.) Whenever a new sequence is created, it is copied to the RTZ pad. You can use this to always return to the original sequence even after mutating it. The MUTATE pad will randomize the same values as the RANDOMIZE pad, but unlike RANDOMIZE, MUTATE only adds or subtracts from the current values rather than completely changing everything. This allows you to change the sequence subtly (usually😀). Whenever you press the MUTATE pad, the previous sequence is copied to the UNDO pad. This means you can go back to the previous sequence if you don't like what the MUTATE control has done.
STAGES: This control sets how many of the 8 steps of the sequencer play, from 1 to 8. In the FOREARD and BACKWARD Play Modes it is possible to set STAGES to up to 15 steps. If STAGES is set above 8, the sequence will wrap around to the beginning to play the remaining steps.
PLAY MODES: There are 6 PLAY MODES: 1) FORWARD, 2) BACKWARD, 3) PING PONG 1, 4) PING PONG 2, 5) RANDOM, 6) BROWNIAN. FORWARD plays the sequence in order from left to right. BACKWARD plays from right to left. PING PONG 1 plays back and forth, but only playing the extremities once. In contrast, PING PONG 2 plays the extremities twice. RANDOM plays stages at random, while BROWNIAN performs a drunken walk amongst the steps. BROWNIAN will tend forward; it has a 50% chance of moving forward, a 25% chance of moving bacward, and a 25% chance of playimg the same step again.
CLOCK: This sets the master clock for the sequencer, from 1/64 Triplet to a Whole Note per step.
KEY: sets the root note of the sequence.
OCTAVE: sets the octave +/-3 octaves.
SCALE: Quantizes the pitch to a preset scale. Included are the 25 default Mozaic scales. For ever more scale fun, try my Scale Compendium script, available on patchstorage.com!
SWING: Sets the swing, from 0% to 50%.
HUMANIZE: Adds timing jitter and velocity variation to the notes.
GATE MASTER: This controls the overall gate length of all the steps, from 0% to 200% of the value set by the sliders.
MODULATION MASTER: This controls the overall modulation strength of all the steps for MODULATION 1 & 2, from 0% to 200% of the value set by the sliders.
XY PAD: This allows performance control of the GATE MASTER and MODULATION MASTER controls.
PADS VIEW: The top row of pads allow performance control of STAGE SKIPPING. The bottom row controlls PORTAMENTO per step.
SKIP STEPS: Press a pad to skip that step in the sequence. Unlike a rest, that step will be completely skipped over and the sequence shortened by one step. Pressing the pad again will restore the step. For reference, steps that have their GATE MODE set to REST are shown by a black square. You can of course also skip this step.
PORTAMENTO (SLIDE): Press a pad to slide between that note and the following one. The portamento effect will only function on synths that support MIDI portamento messages 5, 65, and 84. You may need to change setting in your synth...or it may work automatically.
Addition controls for STAGES, PLAY MODE, GATE MASTER, and MODULATION MASTER are also available on this page.
KNOWN BUGS:
In BACKWARD play mode, REPEAT COUNT does not work on step 1.
PING PONG 2 will get stuck under some circumstances. Switching to a different play mode will unstick it.
Metroplex is a techno record label in Detroit, founded in 1985 by techno pioneer Juan Atkins.
This patch is written by brambos for me with rand velocity with min and max knobs and delay max and min knobs . Exactly the same as I asked him.
But if probability and strum are to be added to this patch , I do not need to have min and max velocity or min and max delay anymore. Because I guess these ( mins. maxs ) create some problems in adding probability and strum . So I'd prefer to have a patch that only has these 4 options ( rand velocity , rand time and probability and strum ) with only 4 knobs, Like your patch ; Smart chordulator . without other options .
For when i play any chord with any number of notes .
Excuse me , I now conclude that such a patch requires strumming too . So I added this option ( strum ) to my posts .
New version of Scenic Sequencer uploaded:
https://patchstorage.com/scenic-sequencer/
-Added a screen to set MIDI thru processing per channel and scene. As an alternative to MIDI CC control, send the MiDI through the script to e.g. to turn a channel on and off per scene..
There’s since a while also a new version of my other script available:
https://patchstorage.com/chord-magic/
-Added new chord types and ability to only let the patterns play, setting. chord by tapping the chord pads.
Hey all, I’ve been trying my hand at a few basic scripts with absolutely no previous experience any type of programming or the likes and have come up with two that are working as I intended but wanted to run it by the community to see if there’s more efficient ways to do what I’m trying to do, and also share what I’ve got...
Both are meant for use in a live setting with Loopy HD.
First is just a basic switch that changes the output channel of commands coming from pads on my external controller so that when the switch is off the designated pads just send a toggle mute message to particular tracks, and when the switch is on it sends on a different channel set to solo that track. Here it is:
@onload
ResetNoteStates
@end
@OnMidiNote
if MIDIByte1 = 152 and MIDIByte2 = 60
SetNoteState 0, 0, 3
elseif (MIDIByte1 = 136 and (MIDIByte2 = 60 or MIDIByte2 = 61))
SetNoteState 0, 0, 1
endif
//VARIABLES
n = GetNoteState 0, 0
//END VARIABLES
if MIDIChannel = 0
if (MIDINote >= 0x24 and MIDINote <=0x27) or (midinote >= 0x1c and MIDINote <= 0x1F) or (MIDINote >=0x14 and MIDINote <=0x17)
if n = 3
SendMIDIThruOnCh n
elseif n = 1
SendMIDIThru
endif
else
SendMIDIThru
endif
else
SendMIDIThru
endif
@End
Secondly is a script that is meant to store sets of tracks selected or muted, and then on the press of a different pad trigger those stored tracks all at once, so that on the fly I can select a combination of any of the 12 tracks in Loopy and make them mutable/unmutable (or whatever else) with one pad. Pretty useful in a live setting! But I feel like there’s probably something (or a few things) here that I could write more efficiently... Here it is:
@onload
ResetNoteStates
@end
@OnMidiNote
if MIDIByte1 = 152 and MIDIByte2 = 127
ResetNoteStates
elseif MIDIByte1 = 136 and MIDIByte2 =127
SetNoteState 0, 1, 1
endif
//store which tracks were triggered either as mutes or selects
if MIDIChannel = 0 and (MIDIByte2 = 0x24 or MIDIByte2 = 0x20)
SetNoteState 1, 1, 0x24
elseif MIDIChannel = 0 and (MIDIByte2 = 0x25 or MIDIByte2 =0x21)
SetNoteState 1, 2, 0x25
elseif MIDIChannel = 0 and (midibyte2 = 0x26 or MIDIByte2 =0x22)
Setnotestate 1, 3, 0x26
elseif MIDIChannel = 0 and (MIDIByte2 = 0x27 or MIDIByte2 =0x23)
SetNoteState 1, 4, 0x27
//recall and send recorded tracks
if MIDIByte1 = 144 and MIDIByte2 = 0x0c
SendMIDINoteOn 0, L3, 127
SendMIDINoteOn 0, L6, 127
SendMIDINoteOn 0, L9, 127
SendMiDINoteOn 0, L12, 127
SendMIDINoteOn 0, L2, 127
SendMIDINoteOn 0, L5, 127
SendMIDINoteOn 0, L8, 127
SendMiDINoteOn 0, L11, 127
SendMIDINoteOn 0, L1, 127
SendMIDINoteOn 0, L4, 127
SendMIDINoteOn 0, L7, 127
SendMiDINoteOn 0, L10, 127
SendMIDINoteOff 0, L3, 0, 100.0
SendMIDINoteOff 0, L6, 0, 100.0
SendMIDINoteOff 0, L9, 0, 100.0
SendMIDINoteOff 0, L12, 0, 100.0
SendMIDINoteOff 0, L2, 0, 100.0
SendMIDINoteOff 0, L5, 0, 100.0
SendMIDINoteOff 0, L8, 0, 100.0
SendMIDINoteOff 0, L11, 0, 100.0
SendMIDINoteOff 0, L1, 0, 100.0
SendMIDINoteOff 0, L4, 0, 100.0
SendMIDINoteOff 0, L7, 0, 100.0
SendMIDINoteOff 0, L10, 0, 100.0
endif
sendmidithru
@End
Any input on either of these would be greatly appreciated as I’m trying to learn how to write some more interesting ideas! Super exciting possibilities opening with this app!
Hi @ManWhoWouldBeStrings , welcome to the Mozaic Rabbit hole! I’m too sleepy to take a look now, but look forward to checking your scripts out.
When posting scripts to the forum, it works best if you put ``` on a line by itself before and after the script. This will put it all in a code block and will keep the forum software from messing up the formatting.
That character can be hard to find on iOS keyboards. On a US keyboard it can be inserted by holding down the apostrophe, then sliding your finger to it when it pops up as a choice.
Way to go jumping in fearlessly. 😎👍
Has anyone figured out a way to have strings as variables and concatenate these for output?
Like this, ish. ;
Would make it sooo much easier to provide relevant feedback to the user.
Mozaic doesn’t have string variables at this point. You can concatenate strings using the Label and Log functions.
E.g.
LabelKnobs {Hello}, { world}
I feel the use cases for string variables are far too minimal, especially since it would require adding a boatload of extra functions and procedures to make them useful.
Hm... I'm not sure it's minimal, but yeah - the use case is almost exclusively for providing better LabelKnobs to show internal state of script.
An alternative that would solve my problems would be the ability to append to the LabelKnobs instead of replacing.
Wanted to thank @brambos for this amazing app, when I lose my coding fear again hopefully I'll make a patch.
And @wim for The Chordulator, when I first saw the video of it, mind was blow. Wanted to ask if this would be possible as it would take things to the next level for me. Allowing for another source to guide the playback of the bass notes, so there could be a separate bassline melody that follows the chords.
Hello wim
Did you see my latest post ?
Sorry, I don’t understand this. I’ve not been able to work out what it is you’re asking for, or how that is different from how it works now.
Sorry, I guess I overlooked your post.
The problems with doing those things with incoming chords vs. single notes are mainly:
Sorry, I’m just not sure I’m up for that challenge.
Apologies on the bad explanation, it is something i more wondered if it were possible to do given how i saw the patched worked.
Essentially feeding a separate sequence to be played using the bass note of the currently playing chord. That way one could have a bass line melody different from the one that is generating the chords.
Hopefully that is a bit of a better explanation.
Humm ... I don’t understand why simply sending a separate bass line not through the plugin wouldn’t do the same thing?
That is true, the use case came to mind from trying to replicate something I do in Studio One, when I first used your patch it immediately sprung to mind that this is the closest thing to do doing that and them some with the other features you added. So it was more a selfish wish and also was curious if it was possible within mozaic. Was a bit magically on my end upon my first use of the patch.
Hey thanks @wim! It actually took me many hours/days of searching for sequencing apps or something that could do a few things I’ve been wanting to do before I finally “fearlessly jumped in”! Decided it would’ve taken less time to just learn some basic script writing with Mozaic and make my own solutions rather than endlessly searching for “easy” options! More fun this way too.
And thanks for the tip for posting scripts with the ``` and where to find them, saved another potential “hunt for the missing comma” situation! 😉
It could certainly be added, provided the input for the bass line could be on a separate channel. I’m not sure I’m interested in doing so to the released version though. But I could probably provide you with the added lines of code to drop into your own version if it’s important.
That would be a gift. Also that exactly was the idea of having the input be on a separate channel. In any event thanks for making that plug in, I shared it with a bunch of people in my a music group I’m in.
I think if you add these lines into the code it’ll do what you want, with bassline on channel 2. Change the channel in the if statement to the channel you want to use, minus 1.
Not tested.
But those chords crate through one arpeggiator that have chord mode and can quantize my chords ( start and length ) . Without overlapping.
I'm not supposed to enter those chords directly into mosaic .