MIDI sync / clock from iOS to external gear, 2019

I've read all the threads I can find about syncing MIDI, and learned a ton! What a great resource this AB Forum is for a lurker like me as I dive into the world of iPad music. I'm coming from the world of hardware synths, keyboards, stomp boxes, and loopers.

Because many of the posts are more than a year old, and so much is changing so fast with all the rapid improvements in iOS music apps, I'm afraid I might be missing the best solution right now, June 2019. So I decided it's time to ask directly.

My specific scenario: I'm building a setup to use iOS loopers (Loopy, Quantilop, Ostinator) to loop and mix sounds I create externally with an acoustic instrument and a chain of Eventide stomp boxes (Pitchfactor, Modfactor, Timefactor). Because I play ambient with heavy delays, the stomp boxes need to be in sync with the loopers.

From what I've learned, I want the master time clock to emanate from the iPad, and make the stomp boxes the slaves. Simple clock, not transport commands. I'm using a iConnect Audio 4+ for I/O.

I have a basic working knowledge of AB3, AUM, and ApeMatrix. I don't have an iOS DAW; I send tracks via AUM > Audio4+ to Logic Pro on my laptop.

Question: what is the best source for the MIDI clock? AUM? AB3? ApeMatrix? Something else? Should I use Link (not clear yet exactly what that is) or some particular settings?

Although my immediate need is to send clock to the externals, I want to design a setup that will be rock solid for sequencing and sound production within the iPad too.

If you're curious, my instrument is an orchestral clarinet with a pickup. From the pickup on, the effects and everything else works exactly as it would for a guitar. Listen here: ThinAirX.com

Besides seeking help for my specific situation, I'm hoping this will open into a discussion of the current state of MIDI sync taking into account all the recent upgrades and newcomers.

Steve
ThinAirX

«13

Comments

  • in my experience, midi clock sync is very unreliable.

    have a look at:
    http://circuithappy.com/themissinglink/

    i have not used one, but if it does what it says this is likely the best solution

  • LoopyHd so AB3.

  • AudioBus 3 has excellent midi clock output. And one really nice thing is each output has a separate variable negative / positive delay for fixing timing issues. Timing is tight, and it also bridges midi to Link - something you may need to keep AUM in time as well. And as said above, you need it for Loopy anyway, so might as well leverage it.

  • Ableton link is awesome and so is iconnect audio 4+ which is my home setup to slave AUM to Ableton. Logic doesn’t have Ableton link i don't think but you can use certain apps to bridge -

    https://apps.apple.com/nl/app/midi-link-sync/id1071048493?l=en

  • @wellingtonCres said:
    in my experience, midi clock sync is very unreliable.

    You must have used the wrong apps then.

    @ThinAirX
    I'd suggest that you'll most likely want "transport commands" in the shape of MIDI STATUS messages (Start, Stop, Continue) in order for the hardware FX boxes to not only run at the same speed but also start at the correct phase. You don't want your delay echoing at the right speed but off-beat, right?

    Forget Ableton Link if you want to integrate hardware. I would stay with apps that can handle MIDI clock+Status properly and only use these.

  • I have hardware synths/modular I use with Ableton link in combination with midiclock, very happy 👍

  • Audiobus 3 💕

  • MIDI clock on iOS is simply not good. People saying otherwise are unaware of what "good" MIDI clock is.

    Ableton Link is jitter free so while still having high latency is able to be manually corrected post recording.

  • @wellingtonCres said:
    in my experience, midi clock sync is very unreliable.

    have a look at:
    http://circuithappy.com/themissinglink/

    i have not used one, but if it does what it says this is likely the best solution

    Interesting. I wonder what happens when Link is updated or superceded?

  • Use Link for apps that don’t sync well via IAA sync and midi clock for the external gear.
    The problem with midi clock is that it drifts on high cpu load ,but it’s been a while since I tried it ,plus I no longer have any hardware gear to use clock

  • edited June 28

    @BroCoast said:
    MIDI clock on iOS is simply not good. People saying otherwise are unaware of what "good" MIDI clock is.

    Ableton Link is jitter free so while still having high latency is able to be manually corrected post recording.

    You must be kidding. Replace "iOS" with "many apps" and I agree.
    I've been testing iOS apps with MIDI Clock support for about six years now, always with hardware from Roland, Korg, Yamaha and Kurzweil.
    Try Groove Rider and see that it's about the app, not about iOS.

    Even with LINK 3, which I agree can be very handy in some cases and when WiFI is available, MIDI Clock and SPP/Status is the only way of instant synchronization because it's not based on relative beat phase but rather on absolute positioning and absolute increments that can change much more rapidly than with LINK.
    Different mechanisms for different scenarios.

  • @rs2000 said:

    @BroCoast said:
    MIDI clock on iOS is simply not good. People saying otherwise are unaware of what "good" MIDI clock is.

    Ableton Link is jitter free so while still having high latency is able to be manually corrected post recording.

    You must be kidding. Replace "iOS" with "many apps" and I agree.
    I've been testing iOS apps with MIDI Clock support for about six years now, always with hardware from Roland, Korg, Yamaha and Kurzweil.
    Try Groove Rider and see that it's about the app, not about iOS.

    Even with LINK 3, which I agree can be very handy in some cases and when WiFI is available, MIDI Clock and SPP/Status is the only way of instant synchronization because it's not based on relative beat phase but rather on absolute positioning and absolute increments that can change much more rapidly than with LINK.
    Different mechanisms for different scenarios.

    If you have data to prove iOS MIDI clock can get anywhere near what an MPC60 is like then let's see it.

    I am not saying this to be a dick. This is just the reality.

  • @BroCoast said:

    @rs2000 said:

    @BroCoast said:
    MIDI clock on iOS is simply not good. People saying otherwise are unaware of what "good" MIDI clock is.

    Ableton Link is jitter free so while still having high latency is able to be manually corrected post recording.

    You must be kidding. Replace "iOS" with "many apps" and I agree.
    I've been testing iOS apps with MIDI Clock support for about six years now, always with hardware from Roland, Korg, Yamaha and Kurzweil.
    Try Groove Rider and see that it's about the app, not about iOS.

    Even with LINK 3, which I agree can be very handy in some cases and when WiFI is available, MIDI Clock and SPP/Status is the only way of instant synchronization because it's not based on relative beat phase but rather on absolute positioning and absolute increments that can change much more rapidly than with LINK.
    Different mechanisms for different scenarios.

    If you have data to prove iOS MIDI clock can get anywhere near what an MPC60 is like then let's see it.

    I am not saying this to be a dick. This is just the reality.

    Sure! Like I said, that's unfortunately true for many but definitely not all iOS apps.
    If I have the time I'm indeed going to do kinda "MIDI Clock Sync shootout" soon because I want to know too.
    Hardware is driven by software just like iOS.
    But I'm sure that hardware developers have always put a stronger focus on timing than most software-only devs, maybe that's because in a hardware box, you cannot blame anything else than your own box when timing is bad :D

  • @rs2000 said:

    @BroCoast said:

    @rs2000 said:

    @BroCoast said:
    MIDI clock on iOS is simply not good. People saying otherwise are unaware of what "good" MIDI clock is.

    Ableton Link is jitter free so while still having high latency is able to be manually corrected post recording.

    You must be kidding. Replace "iOS" with "many apps" and I agree.
    I've been testing iOS apps with MIDI Clock support for about six years now, always with hardware from Roland, Korg, Yamaha and Kurzweil.
    Try Groove Rider and see that it's about the app, not about iOS.

    Even with LINK 3, which I agree can be very handy in some cases and when WiFI is available, MIDI Clock and SPP/Status is the only way of instant synchronization because it's not based on relative beat phase but rather on absolute positioning and absolute increments that can change much more rapidly than with LINK.
    Different mechanisms for different scenarios.

    If you have data to prove iOS MIDI clock can get anywhere near what an MPC60 is like then let's see it.

    I am not saying this to be a dick. This is just the reality.

    Sure! Like I said, that's unfortunately true for many but definitely not all iOS apps.
    If I have the time I'm indeed going to do kinda "MIDI Clock Sync shootout" soon because I want to know too.
    Hardware is driven by software just like iOS.
    But I'm sure that hardware developers have always put a stronger focus on timing than most software-only devs, maybe that's because in a hardware box, you cannot blame anything else than your own box when timing is bad :D

    What I am saying is I have done the extensive testing. :)
    I haven't tested every app ever made but a hell of a lot of them. Audiobus has scored the best so far for MIDI clock. Every other app I tried either gave about the same results as Garageband, Patterning, AUM, Funkbox etc.

    There is an oldish video where Michael explains why MIDI clock on iOS is not great. It's fine for just syncing FX though.

  • I wonder, do you guys use some kind of specially designed analysis tool for measuring MIDI clock? (I know of at least one by Audeonic, but not sure how useful it is in practice).

    @rs2000 if you can, please include Xequence in that shootout, I'm interested in the results 🙂

  • @SevenSystems said:
    I wonder, do you guys use some kind of specially designed analysis tool for measuring MIDI clock? (I know of at least one by Audeonic, but not sure how useful it is in practice).

    @rs2000 if you can, please include Xequence in that shootout, I'm interested in the results 🙂

    I'd love to, although I could only test Xequence as a clock master of course ;)
    The way I do it:
    1. To test stability and jitter, I'll take a sequencer that has good MIDI resolution, put thousands of short-spaced notes into a clip and either let these trigger audio or record the "serial audio" on the hardware MIDI port. By using an fft analyzer in spectrogram mode, I can get something like a pitch map that reflects fine tempo deviations but even just listening to the audio will already give you a good impression about the results.
    2. To test latency, I'm using a hardware box sequencing and playing a few short samples in a loop and let it send MIDI Clock, then connect the iOS app in slave mode and let it play the same. Apart from the audio buffer length setting, if there is any kind of offset correction I'll use it to minimize the delay between clock master and slave. To make the measurements somewhat comparable, I'm always using the headphone outputs of the iDevices to avoid additional iOS audio processing and differences between by 3rd party audio interfaces. I do try different class-compliant MIDI interfaces though.

    I always try to make the comparisons repeatable, related to music production and I also try to isolate the app under test from unrelated influences as much as possible by keeping the chain short and by taking care that the test conditions are the same for all apps.

  • @SevenSystems said:
    I wonder, do you guys use some kind of specially designed analysis tool for measuring MIDI clock? (I know of at least one by Audeonic, but not sure how useful it is in practice).

    @rs2000 if you can, please include Xequence in that shootout, I'm interested in the results 🙂

    Swing me a trial if you want and I'll test it. Or I can just buy it I guess but it's something I have no need for.

  • @rs2000 that's a very in-depth and advanced testing setup, respect! 🤛 yes would be interesting to know how stable the master clock from Xequence is (I don't think it is too bad...)

  • OP here. Thank you for all the suggestions, and I'm glad to see this thread expanded to the broader question of how good iOS MIDI clock is (or isn't). That should help other people too.

    @rs2000 : a MIDI clock shootout would be great. Solve the arguments with hard data.

    For my situation, I'm going to try a few things as my MIDI source (AB3 vs Loopy, first) and see what works. I'll report back.

    For the record, I use Logic Pro only for recording live tracks. My setup is for live performance sans laptop and Logic contributes nothing to the sound creation. Been there, done that. "No laptop" is an intentional constraint on my music performance method. Clarinet > stomp boxes > iPad > speakers.

    Steve
    ThinAirX.com

  • I think the major problem is changing tempo on the fly . Every piece of hardware I used to have had different behavior going down eg. from 130 to 90 bpm and were never into sync afterwards

  • edited June 29

    @Korakios said:
    I think the major problem is changing tempo on the fly . Every piece of hardware I used to have had different behavior going down eg. from 130 to 90 bpm and were never into sync afterwards

    Yes, being a MIDI slave is tricky. It comes down to how much you 'smooth' the incoming stream of MIDI clock messages. If you prioritise smoothing you get a more steady-feeling tempo (with less jitter, but with a slower response to lots of sudden tempo changes). This is good if you know tempo is going to stay steady most of the time.

    If you apply less smoothing, the MIDI slave can respond to tempo changes much quicker, but if your incoming stream comes from a software source with less-than-perfect stability, you will see the tempo readout jump around a lot. Good for catching lots of rapid tempo changing, but not good when you're dealing with a flaky MIDI clock source or an overloaded OS doing lots of other things.

    Whatever way you choose is a matter of preference. There is no one perfect solution.

    Being a clock master is a lot easier.

  • edited June 29

    @brambos if you choose to receive MIDI packets ahead of time, and the clock source sends them with timestamps ahead of time too, then there should be absolutely no jitter and no need for smoothing either... I mean, you essentially even get a "preview" of the incoming timeline depending on how much prebuffering the clock source does...

    (OK, this is not always possible and an utopian best-case scenario...)

  • edited June 29

    @SevenSystems said:
    @brambos if you choose to receive MIDI packets ahead of time, and the clock source sends them with timestamps ahead of time too, then there should be absolutely no jitter and no need for smoothing either... I mean, you essentially even get a "preview" of the incoming timeline depending on how much prebuffering the clock source does...

    Yes, but we've been over this before. Being able to receive timestamped MIDI packets is only possible if you have specific hardware which barely anyone owns. Standard MIDI does not have timestamps.

    Would be great if it did B)

  • @brambos said:

    @SevenSystems said:
    @brambos if you choose to receive MIDI packets ahead of time, and the clock source sends them with timestamps ahead of time too, then there should be absolutely no jitter and no need for smoothing either... I mean, you essentially even get a "preview" of the incoming timeline depending on how much prebuffering the clock source does...

    Yes, but we've been over this before. Being able to receive timestamped MIDI packets is only possible if you have specific hardware which barely anyone owns. Standard MIDI does not have timestamps.

    Would be great if it did B)

    Yeah, I was talking mostly about iOS App <> iOS App, where this already works... but for hardware, that would also require that all devices had a common, near-perfectly synchronous clock reference to begin with (as otherwise, the timestamps wouldn't make any sense)... this would be a good thing for MIDI 2.0 to address (didn't look at the spec draft yet myself.)

  • edited June 29

    @SevenSystems said:

    @brambos said:

    @SevenSystems said:
    @brambos if you choose to receive MIDI packets ahead of time, and the clock source sends them with timestamps ahead of time too, then there should be absolutely no jitter and no need for smoothing either... I mean, you essentially even get a "preview" of the incoming timeline depending on how much prebuffering the clock source does...

    Yes, but we've been over this before. Being able to receive timestamped MIDI packets is only possible if you have specific hardware which barely anyone owns. Standard MIDI does not have timestamps.

    Would be great if it did B)

    Yeah, I was talking mostly about iOS App <> iOS App, where this already works... but for hardware, that would also require that all devices had a common, near-perfectly synchronous clock reference to begin with (as otherwise, the timestamps wouldn't make any sense)... this would be a good thing for MIDI 2.0 to address (didn't look at the spec draft yet myself.)

    Indeed, and for iOS->iOS usecases I would pick Ableton Link any day. It’s so much more robust.

  • edited June 29

    Ableton link all day for ios->ios and PC/Mac to ios host like AUM.

  • Maybe Ableton Link 4 will support the last missing "link" (haha), absolute song position sync, so that finally it is a full replacement for MIDI sync.

  • edited June 29

    OSC has all but never took off...
    http://opensoundcontrol.org/introduction-osc

  • In the past I had to use my own trick . Instead of flooding midi clock to the hardware devices ,I set them all as master and send CC or Sysex tempo commands (to the ones that supported) and for hardware sequencers I used a “dummy” note to measure the offset and “react” time to tempo changes . But complicated , time consuming stuff....

  • @SevenSystems said:
    Maybe Ableton Link 4 will support the last missing "link" (haha), absolute song position sync, so that finally it is a full replacement for MIDI sync.

    Good point! But I doubt that's even possible. The latency of LINK, at least over WiFi, is so much higher that such control will never be as tight as Midi Clock, and for live jams i prefer to only use apps that have slave clock sync implemented well.

Sign In or Register to comment.