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.
Loopy Pro and Helium issue - how to send "all notes off" when transport is stopped? SOLVED
I know "what", but I don't know "how".
I've got one track with the contents in Helium inside the LP. If Loopy is playing and I press the play/stop button, the currently playing note doesn't end and plays endlessly. The short solution is to press Mute on the instrument channel, but there must (should) be a more efficient way. Something like "Send all notes off to all MIDI receivers when I press stop in the transport bar".
PS: Unfortunately I don't have any other AU host app or MIDI player to try a combination other than LP+Helium where I can check this issue.
Comments
You could try going to Control Settings > Project-Wide Follow Actions, and add a send midi action to Stop Clock to Helium. CC 123, value zero, is the All Notes Off midi command.
Not all apps support it though.
Thank you very much @wim, it works now.
If I receive MIDI from Helium on e.g. 6 MIDI channels, I have to add 6 Stop Clock actions which is not very handy.
does loopy pro have midi note and cc record and playback? this would make a killer sequencer
Not yet. That is coming.
Are you running helium as an AU? This seems like a bug that Helium is not sending the note offs when the host stops.
You can long press an action to duplicate it. It won’t take more than a short time to duplicate the action 5 times
Yes, I'm running Helium as AU in Loopy. Thanks for the tip about action copy procedure.
You may want to contact Paul (the Helium dev) about the issue. The midi sequencers I use all send some combination of note offs and all notes off when the transport stops.
I contacted Paul with the link to this discussion. We will see.
Generally when Helium detects the host has stopped it sends all notes off. This works fine in AUM, so long as the host app is processing MIDI that is. There is a Panic option on the main menu which also sends All Notes Off to all channels. I will look into this and see if there is anything I can do to help.
Ok, I've taken a look into this issue.
Helium does send MIDI Note Off’s when it detects the host transport has stopped. I can see this under AUM, but they don’t seem to be sent under Loopy Pro. I’m not sure why that is unless MIDI processing stops when Loopy Pro transport is stopped. I’ve tried loading Helium as a MIDI app, or an audio app, and the same happens in both situations.
The problem I have with Loopy Pro is that it is impossible to debug anything running under it. Just attaching XCode to a program running under Loopy Pro causes it to go into spasm and think the App has crashed because for a brief second connecting the debugger in XCode to Helium pauses the audio thread. This causes Loopy Pro to delete the instance of Helium and reload it again.
Normally MIDI is sent to a MIDI port, but when running under AUv3, we send MIDI in frames along with audio. So if you set your Buffer Duration to 256, Loopy Pro calls us every 256 samples for the next frame of MIDI data. In some hosts, when the transport stops, the MIDI processing stops. In this case apps need to listen for All Notes Off being sent by the host.
So, to sum up… I assumed that because I didn’t see the Note Off’s under Loopy Pro arrive at the MIDI monitor, that Helium wasn’t sending them. As it turns out I am sending them, but they don’t appear to be arriving at their destination. I’m not sure why that is, and it is currently impossible to debug using XCode connected to any app running under Loopy Pro.
I will do some speculative tests to try and prove what is going on.
I suggest contacting Michael at atastypixel.com
I don't think it is the case that midi processing stops when the transport isn't running as one can use midi au even when the transport is stopped.
Ok, I think I have a solution and know what the problem is.
The function that send Note Off’s is been executed, however I also noticed the play position that Loopy is reporting is beat 0.
This means that I am trying to stop any notes that are playing at beat position 0. This is because Loopy Pro has indicated that it has stopped after setting the play position back to 0 (rewind).
So, the solution in my case is to remember the last play location reported by Loopy Pro and use that when sending Note Off’s after the transport stops. I’ve implemented this and it appears to work fine.
Is there a way to stop loopy auto rewinding to prove my point?
Anyway, I think I have a fix for the next release. I just need to ensure it works under other DAW’s that don’t screw with the play position.
@4pockets_paul - would it be more expected behavior if the play position was set to zero after stop instead?
Yes indeed, normally when a host decides to randomly change the play position it normally informs the clients ahead of time. When a host is looping for instance, the host app sets up the AUHostTransportStateFlags with the AUhostTransportStateCycling flag so we expect jumps in play position. If Loopy did the rewind a little later after we detect it had stopped all would be fine.
In my case I'm seeing the AUHostTransportStateMoving flag unset in the AUHostTransportStateFlags structure to say that the host stopped playing, but Loopy is telling us we are at beat position 0.
To be honest, I've got a potential fix, and I know the root cause. I can't say for sure who's fault this is, but at least we found the problem.
Ok, I've released a new version of Helium this morning which has a possible fix for the notes off. Can you check it out and let me know if this fixes your issue.
Paul, there is a way to tell Loopy Pro not to reset the clock on stop. Long-press the transport button and an option is presented whether to reset the play head in stop.
Hopefully will sort the same issue in Nodes too. I did inform the Nodes dev and he messaged me back saying he would try and contact yourself, but I was unable to find contact details for your good self. Hopefully it's the same issue and this is a cure. Fingers crossed
Updated to 1.46 185, checked in Loopy and hooray Great work Paul, thank you!
Works with EG Nodes too now!
Thanks for reporting back guys. I think Michael is adding something to Loopy Pro too which will help solve the issue too.