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
I'd send a CC#, set up AUM au/midi params to map to the "process=y/n" in Mozaic
I'd just do it as use the toggle option in AUM. Midi controller (blueboard, behringer one, etc.) sends say CC20=127 on press. Every time AUM gets that CC, it just toggles the control in Mozaic...
~~Hmmm... I'll have to check that out... I've not really used the midi bussing in AUM since I kinda developed other processes before it was introduced and have never run into a a spot that made me dig into it. Maybe now I will!
~~
OK, I tried it, and I don't see how it will work...
I have as a midi path
Midi channel
Drums->InTheory (cem's app)->MidiBus A
MidiBus A
Moz running the note hold script->MidiRoute (App that sends midi to CH12 for my MC707's live/active midi channel)
If I bypass Moz note hold, then signal just stops
If I have a parallel route, that results in dup notes
So I'm not seeing how midibussing helps?
@MonkeyDrummer I remember having seen that toggle option in AUM, but for CCs controlling Mozaics user 0 param or knob 0 or pad 0, i don‘t get that option. Also not when using notes as input event.
It‘s probabbly only available for boolean parameters.
@MonkeyDrummer this is my naïve extension from what I understood. If the first knob is at zero then it processes, if it's higher than zero then it just passes messages through. If a note was left latched while processing, playing it again while not processing would still unlatch it because of the Note Off message:
crap.. Yea, I've never bothered to map mozaic stuff... That could be a problem...
@Grandbear
You should ‚guard‘ that
SendMIDINoteOff MIDIChannel, previousNote
withOtherwise it will send out a NoteOff note 0 if previous note is inactive (ie -1) due to Mozaics internal parameter value clipping. That spurious NoteOff could disturb a synth/instrument.
.
Otherwise it seems fine. Changing to bypass mode should also ‚kill‘ an existing note, perhaps add an
OnKnobChange
reacting to knob 0 > 0 also with stopping the previous note.Yeah I checked and it looks like Mozaic doesn't send anything if the note is out of range so I decided to simplify a bit. Agreed about bypassing, but I guess it's up to @MonkeyDrummer to decide what's the right behavior in this case
works great! Now I just need to figure out a way to map a phyz control to the bypass... Maybe I'll have to just set it so one control is CCx=0 and one is CCx=!0
One thing that needs a fix...
If there's a note being held, doing a bypass should send a noteoff and reset the script to wait for a noteon once bypass is... bypassed.
where would that code block go?
@MonkeyDrummer I‘ve updated the
@OnAUParameter
of my script to toggle bypass on every user0 value > 0, so it should work even if the blueboard would send aCC 120 0
for its ‚knob up‘ state which are ignored.It looks like I was wrong , so here's the version with the check, and with killing the latched note when bypass is engaged:
And that's the end of my lunch break… from my coding job, so I'll let others take over and provide a better implementation of the button→bypass functionality. That was fun!
Did you upload yours to PS? I don't see anything new there.
Thank you very much!
Parameter clipping happens for most of Mozaics function parameters. And missing parameters are mostly using the default value 0 and don‘t produce syntax errors as one might expect.
Some useless facts:
Using SendMidiNoteOn without any parameters therefor sends a NoteOn for note 0 on channel 0 and SetKnobValue without parameters sets knob 0 to 64.
Hopefully sometime soon I'll have a video up showing how I'm using this stuff along with @cem_olcay 's InTheory... I'm basically recreating something I built on the PC with Reaper. But forcing myself to use an ipad to limit the damage I can do. I need a system I can just switch on and play, otherwise I don't. I went WAYYYY too far down the Beardyman rabbit hole before...
Map an action that disables one bus and at the same time enables the other. Basically set up one midi message to toggle the busses in the opposite direction so that only one is active at a time.
That said, bypassing in the plugin itself is better because that gives the possibility to deal with stuck-note scenarios.
Ahhh! Yea, i do that all the time with audio... Not sure why I brainfarted just because it's midi...
Here's what I came up with. I know you don't need it, but it'll handle multiple midi channels. Otherwise, a note from another channel would throw things off and cause stuck notes. I don't like to leave those kinds of loose ends. IMPORTANT: the script has no way of knowing when you've played the last note unless you tell it by tapping the "Press to End" pad or the "Bypass" pad.
Those two pads can be controlled by mapping to the Pad 0 and Pad 1 AUv3 parameters. I already tested with the Blueboard in CC mode.
Not meant to be a joke, but Drambo can do it.
There is the "gate" MIDI module where you can set the gate length related to beat length of the host clock. This looks exactly like what you want.
I just had the same problem when I wanted decent gate lengths in the MIDI output of my modded Korg Volca Sample. This module did the trick.
Deleted
Perhaps I can get a bit more help...?
I'd like this to work so there's an option to repeat a note and NOT have it kill the sound, but sends a noteoff for lastnote and immediately send a new noteon so I can repeat notes, yet still sustain them.
I tried to modify this so that knob2 is a toggle to set a variable I called "killer"
I then modified the code to be:
if previousNote = MIDINote and killer
It sounds/works ok when playing live on my synth (MC-707) but when I record into the sequence, repeat notes seem to be recording with no length... I think with my modification it's sending a noteoff before it sends the repeated note on... or something...
How would you modify this so there's an option to kill sound on repeat note or actually repeat the noteon (not just keep playing, because I want to restart the envelopes for the repeat notte)?
You can't do that with midi note messages. It the decay has to be implemented in whatever synth you're playing. A note off is a note off. There's no "sustain" information in a midi note message. You could send a sustain (cc 64) message as long as the target synth supports it.
If you're triggering samples, and the sampler supports "one-shots" then that would work too.
I don’t mean sustain in the midi spec sense… I mean just keep playing…
Soooo… here’s the desired use case.
Play c4, sends note on, does not send note off
Play d4, sends c4 note off, sends d4 note on
Play e4, sends d4 note off, sends e4 note on
Play e4 (again), sends e4 note off (from above play), sends e4 note on
Play c4, sends e4 note off, sends c4 note on
Active “kill mode” so duplicate notes stop the note hold
Play c4 (duplicate note to above), sends c4 note off, does not play new c4 because it’s duplicated
At this point we have no notes playing
Play c4 again, sends c4 note on, does not send note off because nothing was playing
Deactivate “kill mode”
Play c4, send c4 note off, play c4
Etc…
Like I said, I got this “working” by adding the killer thing, but it’s not sending “good” midi…. I f’d something up I think so it’s sending midi on/off in the wrong order, and while the synth is smart enough to figure it out because it sounds right as I play live, when I look at sequencer data, or even watch it in MIDISpy, something is wrong…
This is what happens when a drummer gets a taste of being able to actually control things like note lengths! 😂
I see. The script I provided above does all but the last two. Wouldn't be hard to add, but you're already using a different script, so I'll leave that one be.
I just took a quick look. Maybe try correcting
SendMIDINoteOff MIDIChannel, previousNote
to include the mandatory third parameter for velocity:SendMIDINoteOff MIDIChannel, previousNote, 0
to see if that changes anything.Hey, I reckon anything that distracts you from trying to steal your bandmates' girlfriends for a little bit is a good thing. 😉
It won't hurt anyone's feelings if you modified your version to work like that...
What happens if you make the correction I suggested?
You are a brilliant man!
Your girlfriend is safe for the moment!
It's weird that made the difference. Thank god there's a midi "standard"!
👍