Midi Latency via ASIO vs USB Direct

I am new to BMT but have used Cantabile for years. We (me on Sylphyo WindSynth, Peter on Keyboard) tried synching our two loopers (RC-505s) using MIDI Synch a while ago and had a dismal failure.

When routed directly (i.e. DIN cables), the loopers synched nicely. However …

When routed through a laptop and into and out of Cantabile (a DAW designed for live performance), we got MIDI Sync jitter. Bad enough to cause the slave looper to detect a varying tempo in the range of, for example, 116 to 124 BPM (with the source looper at 120 BPM). We figured out that the culprit was that the MIDI notes get tacked onto the ASIO buffer. Even with a low 48 sample buffer size, MIDI Synch messages were arriving at arbitrary points in the assembly of an audio sample buffer, and the jitter on the receiving side cause the tempo to vary.

(The reason we were going through the Laptop and Cantabile was so that we could switch which looper was the master and which was the slave).

So … the question I have is … How does BMT handle MIDI? … through an ASIO (or similar) buffer, or some more direct route?

I am wondering whether to revisit our dual-looper setup using BMT rather than Cantabile …

Hi and welcome to the Bome community!

Well ASIO has nothing to do with MIDI so the culprit may be jitter caused by Cantabile itself. It could also be caused by network jitter, especially if you are using WiFi.

Since Bome Product do nothing with Audio (IE ASIO) signals, there would be nothing ASIO related that would introduce jitter.

My recommendation would be to check with Brad at Cantabile about possible issues with MIDI jitter introduced there. If they can’t solve it, you could always run your MIDI through Bome MIDI Translator Pro (if on computer).

I use Cantabile light but just to handle few audio plugins for audio processing only. No MIDI.

I doubt this is the issue as ASIO buffer would have nothing to do with MIDI, however if you are doing a lot of audio processing, it could take away from MIDI performance if the same processor is handling both.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thanks so much @SteveC!

So here is a link to the thread on the Cantabile forum that I’m basing my thinking ‘MIDI rides along with the ASIO sample buffer’ … Does incoming MIDI go through the ASIO Sample Buffer? - Cantabile - Cantabile Community

Here’s a excerpt from a post in that thread by the long-standing Cantabile guru Torsten Ecke:

all MIDI input is processed in blocks in parallel to audio input, and then forwarded along the processing chain. MIDI plugins always get a buffer-load of MIDI commands to process, just like audio plugs get a buffer-load of samples to process - in fact, there is no architectural difference between MIDI and audio plugins - they are just plugins that process their input in chunks of “sample buffer size”.

Every MIDI command received or sent also has a “sample offset” timestamp within the audio buffer, so MIDI plugins are supposed to process a whole buffer at a time.

It looks like this mechanism is one of the key reasons for the sample buffer quantization.

In addition to measurements, we subsequently did some testing and found that:

  • MIDI jitter increased as buffer size increased and in proportion to those increases.

  • As we increased the frequency of MIDI Clock messages, the issue became worse for a given ASIO buffer size.

… both of which seem to indicate to me that the issue is related to the ASIO buffer size.

Of course, a solution would be to set the slave looper to average its observed BPM over more MIDI Sync messages, but there is no such setting on the RC-505 (nor would most looper users need such a setting).

I realize this is all pretty arcane stuff - not likely to be encountered by most musicians …

Anyway … I guess a side-by-side test would be in order, but that’s a project to set up … was hoping to just get a ballpark read of ‘Nawww, BMT doesn’t use an ASIO buffer’ … and you’ve given me that … so again …

Thanks!!

Yes, so it appears it is not the ASIO buffer itself, it is the time it takes to process the ASIO buffer then calculate the syncing with MIDI.

Nothing like this in Bome so it would probably work better but best to test it. You can use the free trial version for that. It is fully functional but times out every 20 minutes (which just requires Bome MIDI Translator restart.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Oh, I’m way beyond the free trial!

All set up with BMT Pro and busy converting many of the gnarly Ableton processing entries for my SoftStep2, MidiMix, MPD218, LaunchPad MINI, and EC4 from Cantabile bindings to BMT … Thanks!

1 Like

Hi Clint, nice to meet you over here!

Good luck with Bome Translator - and consider getting a BomeBox at some point. Good for your setup, I think. My Sylphyo loves the BomeBox.

1 Like