Drambo receiving and sending MIDI clock having inconsistent timing & clock issues...

I do a series of VERY nerdy livestreams (BusCrates & Richard Nicol of Pittsburgh Modular) and public performances with various collaborators sharing MIDI clock among multiple electronic setups. We've done extensive testing to establish the most stable and consistent sync. Generally Drambo (which I use) tends to have to be lead clock as we have found it to be unreliable as follower. The usual configuration is that I send MIDI clock to my Presonus 1810C, out to a splitter to my synth and the other collaborators. Would folks be up to sharing their experiences, challenges and solutions with these kinds of setups? I'm using a more robust USB hub, I know this one looks a little flaky but it's fine. BusCrates and I absolutely LOVE Drambo BTW!


https://www.youtube.com/watch?v=5lvhCFxuExs&t=3997s

Comments

  • edited July 2023

    I've done a lot of measurements of iOS performance receiving midi clock in general. My conclusion is the problem is with Core MIDI receiving clock and not with any particular app such as Drambo. Every app I tried has unacceptable jitter no matter how stable the connection.

    The only app I found that was able to smooth the clock signal and stay in reliable sync is Audiobus 3. It works as an excellent clock receiver and can be used to reliably bridge midi clock to Ableton Link, which does work smoothly with virtually all iOS apps. It also has offset settings for fine tuning.

    All one needs to do is set the midi clock source in Audiobus and to turn on Ableton Link. (Midi clock can also be sent to other apps, but Link is generally a better choice. No apps need to be loaded in Audiobus though it is necessary to have an audio output at least to the system audio output to keep Audiobus from shutting down in the background. No audio will be output from audiobus. Some object to the idea of the added overhead of another but I've found it to be immaterial.

    I've done a lot of testing. This is the only stable way I've found to use iOS as a midi clock follower. Of course using iOS as the clock master is the simpler and more problem free alternative when possible.

  • @number37 Have you included BM3 and Groove Rider in your measurements?

    Sorry I can't confirm but my measurements have all been done on iOS 13.7 and earlier major versions.

    Also, on which iOS versions did you see unacceptable jitter?

  • I'm using OS 15.2.1 on an ipad pro (12.9-inch) 5th gen BTW

  • I'll admit I didn't keep great notes. It was more like trying every app I could, finding clock unstable, then moving to the next. Groove Rider was one that was too unstable. BM3 I probably didn't try. I'm sure I was on at least iOS 13.7 at the time.

    Maybe it's time for another round of tests. On the other hand I have no need. I don't use outboard hardware, and if I did I'd find a way to have iOS as the master if I could. Or just use Audiobus bridging to Link, which I find totally acceptable.

    When I was testing it was more to establish if the clock from a device I was making was unstable or if it was iOS being unable to receive it properly. Tests against a known good clock source confirmed it was iOS, and that the only app I could find that did a good job of smoothing things out was Audiobus.

  • Interesting @number37. Although I agree that I've seen more apps with issues following MIDI clock properly than apps working well, in my tests it has always been the app, not iOS.

    I've always used hardware sending MIDI clock: KORG Electribe MX, elektron Digitakt and DIgitone, Roland XP-80 and Yamaha RM1x because I love it when hitting hardware transport buttons, the iDevice just follows.

    My guess is that there must have been something wrong in your setup (including a bad MIDI interface for example), or it could've been high enough CPU load to make the receiving app drop clock pulses. Roland have a beautiful implementation sending song position pointer messages with every pattern loop iteration (Status STOP, then SPP, then Status START, all between 2 clock pulses) which makes it as stable as LINK, but support for these on iOS is ... well, it's iOS 😋

    Time for a Pi Zero MIDI Clock to LINK converter maybe? It could have a knob for timing offset to make the synced boxes and apps run in tight sync 😉

  • edited July 2023

    @soysos A "cheap re-sync" option could be to have one app send a MIDI Status=STOP message, immediately followed by a START message, very close to the end of a pattern. This would fix the effect of dropped clock pulses during the length of a pattern.

    When playing live and using hardware, you could also hit the stop and play button on the clock master in time to re-sync everything, should things drift apart at some point.

    Mind you, although MIDI Clock isn't a bad idea, you can run into all kinds of issues, depending on which part of the MIDI spec the respective developer decided to implement.

    A more common phenomenon is MIDI Clock support in synths that really only means syncing LFO speed but not LFO phase. A lazy developer would only implement the evaluation of clock pulses, not status messages, which means that the LFO runs at the correct speed but won't re-start when starting the clock master. Needless to say that a sawtooth LFO modulating filter cutoff would sound bad when running off-beat 😄

    A good MIDI monitor (I can recommend Hexler's Protokol for iOS) and some understanding of the MIDI protocol is mandatory if you need to debug clock problems. Sometimes you even have to count clock pulses and check them vs. their time stamps. That's how I found the long-standing MIDI Clock bug introduced in Cubasis around v2.2 that Steinberg never fixed (timing drifts apart with every loop cycle in the arranger): They forgot to send one single clock pulse in each cycle.

  • edited July 2023

    To be clear, blaming iOS is an assumption on my part. It could well be that it was only true for the apps I tested. (Though the same tests to miRack on MacOS yielded good results on the Mac and poor results on iOS. That was the only cross-platform test I did.)

    I know for sure it wasn't a setup or connection problem. But that's neither here nor there so I won't bother with details. My only point was that Audiobus did an excellent job of smoothing clock issues and also serves as an excellent Clock to Link bridge for iOS apps that either work only with Link or work better with it than with clock.

  • This is all great info, I'm looking to get BusCrates more involved on the forum.

    We're both major Drambo heads, there's just no one else we know in Pittsburgh that uses it.

Sign In or Register to comment.