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
Ah, that's an interesting hypothesis. Although Mozaic should just absorb any sysex sent to it without issues.
But could there be some infinite loop or something?
Does the same setup work in AUM or does it crash there as well (same script, same controller, etc.)?
Edit: I'm looking at my Sysex handling code. I see nothing in there that should be causing a crash with these messages. Very strange.
I have nothing else to test but the Loopy Pro. Maybe @sfm could help? I know he has AKAI LPK25 as well.
I tried something. I launched LP with empty project so there's no MIDI source, just the internal microphone.. MIDI Sniffer logged identical SysEx messages from AKAI LPK25 as in the log file above.
UncleDave’s speculation would be consistent with this…loopy might be querying devices to see if they are supported controllers for automatic binding.
…which leaves the question of why Mozaic crashes when it receives the Akai response (even if it should not be receiving it)
@brambos : it looks like Mozaic can be crashed by sending invalid/incomplete sysex…even if the script does have any midi handling.
If I use loopy’s send midi message and send “F0 12 23” without the closing F7, Mozaic sometimes crashes. I wonder if this might be connected.
It might be important to note that we don't know exactly what Mozaic is receiving. We only know that blocking sysex stops the crash. The captured sysex came from the LPK to a midi monitor outside of Loopy. There could be different message exchanges happening in Loopy.
@filo01 - out of curiosity, if you to go Control Settings and then tap on the MIDI Device and check Device Type, is it listed as Generic Device? If not, maybe try changing it to that.
Interesting. It should be able to handle that, unless the reported message size is also incorrect/corrupted. In that case something may go wrong perhaps? I’ll double-check.
That's what I was originally guessing - that sysex is coming in while Mozaic isn't fully initialized, so it's only partially received. If so I wonder if it's Loopy acting up or Mozaic.
If Mozaic can receive something, it will receive the whole thing. I'm very certain of that, because Sysex messages are always transmitted integrally by CoreAudio.
But by the sound of it, Mozaic is actually not supposed to receive this message in the first place, if this is part of a query-response dialog between LP and the LPK.
@Michael, could this Sysex message be something that is requested from the AKAI by Loopy Pro upon startup?
Yes, it is.
OK, I did another test with LP. I put MIDI Monitor app (from MIDI tools bundle) between MIDI source (LPK25) and Mozaic. And Mozaic NOT crashed.
EDIT: It looks like any MIDI app I put between LPK25 MIDI source and Mozaic fix the issue.
My guess is that the initialization order is giving Mozaic enough time to be completely ready before it receives anything.
@filo01 @wim
I have updated Mozaic to better handle malformed/garbage SysEx messages. Please check if this solves the crashing. It does no longer crash if I use LP's Send MIDI feature to send nonsense messages.
But even if it does solve the issue (which would be great), it's still a mystery where they come from and why they reach Mozaic in a garbled state
@Michael ?
@brambos @wim @espiegel123 My apologies for the radio silence on this - I'm a bit behind on my messages, dealing with some family stuff which has taken all my attention.
Your hypotheses are totally right - LP does a universal device identification exchange with MIDI hardware, to determine if it's a device that is supported for automatic bindings/lighting/etc.
That involves sending a SysEx message to the hardware, and waiting for a reply from it. LP doesn't prevent that reply from also going to any MIDI destinations, which is why Mozaic/etc is seeing it too. I'm open to adding a measure to intercept that message, but it shouldn't really impact anything.
Here's an example reply from my AKAI APC40mk2:
@brambos, is there a chance Mozaic's Sysex handling doesn't span multiple messages? LP will send any MIDI it gets straight on to AUv3s without waiting to combine multiple messages into one, so it could be that if Mozaic's just using the first message of the exchange and not waiting for the final "f7", then it could be getting mixed up.
You mean split over multiple subsequent render calls? No that’s not supported and not exactly easy to implement either. When a sysex event comes in it needs to be handled at that moment so the message needs to be complete.
I support multiple messages bunched in the same call. So if all those packets are sent within the same AUEventList (I think CoreAudio manages that for the host) it should work.
At least in the new Mozaic version it should no longer crash the plugin when receiving incomplete messages. It will just makes SysEx handling scripts a bit more tricky.
Hmm, okay. That'll be it then. The hardware is sending the incoming MIDI over multiple separate messages, so unless I add some stuff to combine it in LP, the AUv3's gonna get whatever's coming from the hardware.
Yeah.. don’t worry about it. The problem was the crashing, which should hopefully be solved now
Wonderful!
Hi, I can confirm that Mozaic 1.3.15 works without crashing. Thank you!