I have an issue with the MidiMessage positionning into the buffer. It seems that some messages are regularly shifted from the duration of the buffer. This is obvious: if I have a buffer of 20ms, some pulse occur 20ms too late, and the time shift change depending on the buffer size.
I'm working on a proxy plug-in aimed to control hardware equipment through CopperLan. I'm monitoring digital output with a scope to accurately measure the jitter. The idea is that the MidiMessages received in the processBlock are forwarded through CopperLan with a timestamp (calculated from the samplepos) telling exactly when it must be applied. This timestamp is referenced to the CopperLan's global time shared between all equipment, this is reliable (already validated).
I send also a (not-timestamped) message on each processBlock call, so I can monitor this call regularity on the scope: there is sub-millisecond jitter on processBlock.
So in my opinion the message shift is due to a bad MidiMessage positionning, sometimes a message is schedduled in the next buffer instead of the current one... This has been observed on Mac, AU plug-in, under Ableton Live and Numerology.
It goes completely unnoticed if you're using small buffers, but my customer does not pay much attention to the buffer size since he plays preprogrammed sequence. However, he requires high precision trigger (drum context).
Is this a known issue? Is there a solution?