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, I'm not explaining myself. I currently have this, with the controller constantly passing MIDI clock, which causes issues, but MIDI clock can't be disabled in my controller:
[MIDI Controller]→[PC/iPad]
I'd like to have this instead, and remove MIDI clock messages from the stream (I wrote "filter out" above which may be wrong, sorry, not a native English speaker):
[MIDI Controller]→[something]→[PC/iPad]
That is just a matter of running some software on your rpi that filters the MIDI stream. MIDI clock master/slave isn't related to whether the pi is set up as a host or device. Whether it is seen as a USB host or (slave) device governs what devices it can be plugged into. MIDI clock is must a kind of MIDI message. I don't know much about what MIDI software is available on the pi, but there is no doubt that you could run some software that would filter out the MIDI clock messages. You would have to create your own scripts to do the routing. The ones provided in in the Neuma package just auto-connect all connected devices to each other which you wouldn't want for your use case.
PureData (pd) which is related to MAX can run on the Pi and can do all sorts of MIDI and audio magic.
Yep, I'm aware of that, mididings can definitely do it, and I've successfully used it to map and routes MIDI message between USB devices hosted by the Pi 3. What I'm not sure how to do is to route those messages to another PC (or iPad) through a wired connection, because those need to act as a host.
Ok. I see. The talk about MIDI clock confused the issue (as that isn't related to the USB device/host thing). Connecting the iPad to the Pi via Bluetooth lets you route the MIDI to anything connected to the Pi which isn't possible via a wired connection. That's what led me to the Neuma page that documents using the Pi as a bluetooth to wired MIDI bridge.
I believe that a device only being a USB host or device is inherent in the USB protocol itself. The other solution that I have seen people use is to use adapters on their devices to convert USB to 5-pin MIDI. But those folks already had MIDI patchbays, etc
I think I understand what you're trying to do. You just want the midi to come in, then go back out to other usb devices but with the clock filtered out. I'm pretty sure this would work fine. With the MIDO python library it's easy to set up pipes between connected devices and to do anything you want with the midi in-between.
So this passes clock as well?
Whats the chances/difficulty do you think of adding MTC to this device?
Still trying to find a solution from my other thread
I think it'd be fine. All devices would be connected to a USB hub, then the uplink to the Pi zero. You'd need to get as far as getting ALSA to recognize all the devices. At that point opening ports for read and write using Python MIDO to make connections and do the filtering is easy.
In this case, there's no "host" or "client" issues (to use maybe less confusing terminology). The Pi Zero is the USB host. All the devices connect to it, not to each other. It handles the routing from one device to another through itself, so it can act as a filter, no problem.
Thanks @espiegel123 and @wim for bearing with me through my complicated explanations
@wim One more thing about your last comment, how would you physically connect the Pi Zero to a PC or an iPad?
Impossible. IMO. Sorry.
If I am not mistaken...he was wanting to connect the iPad to the Pi via a USB cable. I don’t believe that is possible. I think he’ll need to use Bluetooth. Do you know of a cabled connection that would work?
Oh. I hadn't thought that through. I don't think you could now that I think about it.
I seem to have misunderstood the whole purpose. I thought we were just talking about filtering clock out between client devices. Sorry, the coffee is only just starting to kick in.
@espiegel123' s original comment is correct. You can make the Pi Zero into a USB client but not a client and host at the same time.
So, best option for connecting an iPad or PC is Bluetooth. Easy to do for a Mac. For a PC, probably not so much.
You're entirely correct. I misunderstood.
I suppose one could attempt RTP Midi over ethernet to connect to a PC if BLE Midi wouldn't work. I wouldn't have any guess as to how to get MIDI working over ethernet to a Mac.
Got it, thanks a lot! I do have other options (including using the Pi 3's bluetooth), but the low cost of the Zero was enticing if it could do what I thought at first.
Well, they consume less power than a Pi 3, and don't require any cooling. Plus they're so darn cute! How can anyone resist?
Can you walk me through your thinking of this? Don't think possible to start/stop MTC from incoming midi clock and shoot it out over wifi? Sorry for the dumb questions. My username says it all....
Hi, I was afraid you were going to ask that.
I think we already had this conversation about doing something like this in iOS. The concepts are the same, just a different and more difficult to script environment. Generating MTC from MIDI Clock to MTC is simply a very specific, timing critical, and not easily translatable concept.
Rather than try to find the earlier conversation for lots of details, I'll just offer up the main show-stopper. Raspberry Pi and Raspberry Pi OS isn't a combination that provides realtime control at the level it would need to be for this kind of timing. With some huge tweaking and knowledge beyond my skills, it might get close. But then that leaves the programming aspect. Such an app could only work acceptably coded in a realtime safe language like C or C++. Python, which would be far, far easier isn't appropriate for realtime critical applications.
The rest of the reasons are less having to do with the appropriateness of the platform than the bottom-line that generating MTC from MIDI Clock involves lots more than just converting one midi message to another type.
Not to mention MTC is much higher res than MIDI Clock and has time info. MIDI Clock has no time info. It is essentially a bunch of clicks that can be synched to each other.
I understand the difference is that one is relative and one is absolute. There is hardware that does take an incoming midiclock and spits out MTC, which seems the way I need to just bite the bullet.
https://rosendahl-studiotechnik.com/mif4.html
I do expect to have to adjust for latency and jitter on the midi clock side if needed, but for all intensive purposes for my needs, the MTC just needs to respond to start/stop commands and stick to a tempo that is input. They are going to be 2 independent systems. I don't need kickdrums on the MTC side to line up with kick drums on the Midi Clock side.
I don't see anything in that product page about MIDI Clock. I only see conversions between LTC and MTC. Especially, I don't see anything that indicates it would accept MIDI Clock and output LTC or MTC, which is what I thought the use-case was. Linear Time Code isn't the same thing as MIDI Clock.
I really only the MTC generation triggered by midi start/stop/reset:
SOURCE = GEN the timecode generator can be set up and started manually or remote controlled by MMC midi machine control commands.
(now im thinking out loud, maybe simple sysex commands might do the trick?)
Ahh. That wasn't what I remembered as the gist of the earlier discussion. Maybe I misunderstood.
You might be able to do something like this with an Arduino type of device. I'm not sure how accurate it would be, but it would be loads better than Raspberry Pi. Mite be acceptable with Pi though.
I've done experiments with Arduino sending MIDI Clock at 24ppq to iOS. The actual clock generated is accurate enough, but the reception on the iOS side is full of jitter. Audiobus does a good job at smoothing this though. 24fps - 30fps doesn't seem like too much to handle.
So, not even BPM sync is needed between Clock and MTC, just start and stop? Kinda wondering what the point of that would be.
MTC isn’t need for start/stop/tempo commands. I am not sure why you want clock-to-MTC for those. MMC has start and stop. MIDI Tempo doesn’t require MTC either.
Is it that you have a device that needs MTC?
Correct. All audio is coming from an iOS+hardware setup. There is some video hardware that needs to get incorporated, but only accepts MTC.
Think of it like trying to slave LogicAudio to your iPad. Logic will not slave to midi, but it will slave to MTC.
We are kinda derailing WIM's thread...so shoudl probably move this discussion to https://forum.audiob.us/discussion/42734/midi-and-or-link-to-midi-time-code-generator
Sorry WIM...was just curious if your device might work for me
(prolly gonna build one anywayz)
Ok. That clarifies it. It is not that you need start/stop, etc, it is simply that you have a device that needs needs MTC.
No problem. I don't see it as a derailment @SoNoob, but yes, there would probably be more continuity in the other discussion.
@wim @espiegel123 (letting you know in the spirit of "show and tell") I ended up doing something completely different:
That is always the problem isn't it? I can post some links to distracting threads for you to favorite so as to maintain a constant flow of music making derailment.
not really sure what you are LOLing at? Because it's a game device? It's just convenient to combine devices
I was laughing with you before you clarified that you were dead serious. I find the prospect of using a joystick as a mouse quite funny.
eh, works for me if I need it.