Beginners Guide to MIDI Latency
I am an absolute beginner so this may be a rather trivial question; yet I haven’t found anything on it on the web, so that’s why I’m posting here.
I route my BCR2000 into a Max-Patch (stand-alone) for processing and from there into Ableton Live (using Maple virtual MIDI connection). When I do that, the parameters in Live only respond with a certain latency to input by the BCR. If I turn a knob really fast, the corresponding knob in Live responds immediately, but turns much slower. If I add up different knob movements on the BCR, for example turning one knob up and down really fast for 3 seconds, the knob in Live will do the same but due to the slow motion there is an accumulating delay which is really killing any feeling of direct hardware connection. After the slow motion is completed, the knobs respond immediately again, accumulating delay on fast movements again. The whole issue is not the case when I connect the BCR directly to Live.
For a test, I created a Max-patch with a MIDI-In to MIDI-parse to MIDI-format to MIDI-Out, which should be kind of a bypass, but still there is the same problem.
I use a 32bit Windows Vista system.
Have you tried another virtual midi port, such as midiOx? If the issue disappears when you connect directly to Live then the probelm is clearly a bottleneck in Maple.
A quick search of the forum using "midi AND latency" keywords rendered this thread, which may help:
ps my Vista midi is laggy too :(
For an additional test, make your MIDI loopback a hardware loopback if you have a spare out/in port – plug a MIDI cable from a physical output to a physical input, use the output in Max, the input in the target app.
If that behaves OK for fast controller moves, then you have a problem with the software loopback. If it doesn’t, your problem is probably in Max.
Thanks for the fast answers.
Unfortunately MIDI-Yoke (the MIDI-cable of MIDI-Ox) doesn’t work on my system. Instead I tested the following: I routed the BCR in Bomes MIDI-translator and via Maple MIDI into Live – it worked without delay. Then I did the hardware MIDI loopback as connection between Max and Live, here still the same delay as via Maple MIDI.
As it is an accumulating delay which sets back to zero once all MIDI-data is delivered, I don’t think it is related to the issues debated in the other thread.
So I think the source of the delay is within Max … I imagine the problem would be something like a missing "voice combiner", speaking Reaktor-wise, but I don’t know what the corresponding tool in Max would be.
If you have any ideas or similar problems, please let me know.
Allright I tried the MIDI-in -> MIDI-out in a new patcher and now the delay is gone. So it has something to do with my patch which is somehow interacting with MIDI-traffic, even though within that patch MIDI-in was directly routed to MIDI-out. I will take a look into that. Thanks anyway.
Ableton live introduces an delay on MIDI in to avoid jitter. The delay time depend on the latency settings of your audio driver. That might be the cause.