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.
AUM event when MIDI device connects?
I’d like to trigger a Mozaic script to run when I physically connect a particular USB MIDI controller. Unfortunately, I don’t see any MIDI messages when this happens. But AUM knows when it connects (and disconnects), so it seems in theory there ought to be a way to pass that message on from the host to its AUv3 plugins. Is something like this possible?
Comments
@orand In a similar situation, I use a button (CC) on the controller to wake up the script. Not automatic, but works.
Thanks for the idea, that’s a pretty reasonable option if there’s a spare button. It’s better than having to hit a pad button in Mozaic which isn’t always open.
Mosaic doesn’t talk to midi ports directly, and its communication with host is limited to the most commonly used bits.
I haven’t dived into scripting in Atom2, but it may be able to bridge that gap for you (allows direct communication with midi ports / connected devices).
Atom 2 can do this via scripting. An instance would have to be in the session, but it doesn't need to have any pattern or be doing anything. You would just need to pick a MIDI message to send and then route the Atom 2 instance to Mozaic.
You would change a variable from FALSE to TRUE in Mozaic when that message is received, and add a check for the variable being TRUE before doing anything in the Mozaic script.
[edit] ... or, probably more simply, route the Atom 2 MIDI message to AUM MIDI Control to enable/disable the Mozaic script, or to load a Mozaic preset with the script.
If the purpose of the Mozaic script is some kind of initialization of the controller being attached, then scripting it all in Atom 2 might be a better option (depending on the complexity of the Mozaic script that would need to be re-written in Atom 2.
Thanks, that’s a really cool option! Based on the scripting Readme.md it’s unclear if Atom depends on receiving MIDI when connected to kick off the initialization, so I’ll need to test for that.
What are your thoughts on the pros and cons of scripting in Atom vs. in Mozaic? I’ve got a fairly complex scenario I’m working on: full two-way sync of controls between an Arturia MiniLab MkII and Moog Model D. It requires scanning all MiniLab knobs and pads across all preset pages to get their CC mappings (and pad LED colors), cache the results in several arrays, and then cache CC values sent in both directions, re-sending them to the MiniLab when I change preset pages.
Some controllers support MIDI active sensing, a stream of "ping" messages indicating that the device is alive.
These could be used even in an AUv3 host.
Your app is actually quite similar to mine. I use StreamByter in Audiobus to interface a Behringer Xtouch Mini controller to the 20th Anniversary amp sim. The 8 encoder knobs are mapped in 4 banks, selected by lighted buttons. Previous values and displays (edge leds) are restored to the controller when each bank is selected. Knob CCs are converted to the app CC#s before being sent to the app. I just hit one of the bank select buttons to wake the script up. This controller does not have presets, so the script handles what you're doing with the presets.
Good idea. This device doesn’t send a stream of ping messages on its own, but I could approximate that by polling it with sysex messages that cause it to send a response, and then use time stamps and a timer to detect when it starts responding.
You’re right, that’s quite similar! Is your script available for others to use? I started this in StreamByter years ago before Mozaic existed, and have ported the relevant logic to Mozaic, so I could probably apply some useful things from your solution.
Atom doesn’t depend on receiving MIDI or even need to have it routed to it to sense when a controller connects or disconnects. All you need is the Midi port name that registers in AUM. Once you get that right you can fire midi events out automatically on connect.
My preference is colored by relative experience than any objective comparison between the two. I‘ve done a lot of coding in Mozaic, so I definitely lean that way. For a complex two-way script, I’d stick with Mozaic just because I know it a lot better.
That said, the ability to directly communicate two-way between controllers and other midi sources, without having to set up host routing is potentially attractive. Could be that JavaScript, which Atom scripting uses, has more powerful variable handling if you need that.