[LAD] Again MIDI jitter - tested with Fons test applications

fons at kokkinizita.net fons at kokkinizita.net
Sat Mar 27 16:43:26 UTC 2010


On Sat, Mar 27, 2010 at 09:09:38AM +0100, Ralf Mardorf wrote:

> Regular it shifted between 2395 and 2404, but with a few exceptions,
> one time 2302, three times 2304, two times 2305 and two time 2494.
> See attachment.
> What might cause this exceptions? Could it be access to the RAM by
> the graphics? Is there something bad because of the IRQs?
> 
> Regular shift 2404 - 2395 = 9 frames of jitter, exceptional maximal
> shift 2494 - 2302 =  192 frames of jitter.
> 
> I guess this does mean ...
> 5.3 ms / 512 frames = 0.010351562 ms/frame
> Maximal difference for regular jitter 0.093164062 ms.
> Maximal difference for exceptional jitter 1.9875 ms.
> ... am I wrong?

Wrong once or twice, if twice in such a way that the two
errors cancel out.

First note that the test prints the difference between 
events. That means that e.g. if *one* note is 100 samples
late you could see  2400 2500 2300 2400.

The '2300' is just because the previous one was late,
not because this one arrives too early. So you should
divide the jitter as you measure it by two.

Second, 5.33 ms = 256 frames at 48 kHz. But maybe you
are using 96 kHz ??

> If you play one drum sound after the other using hardware MIDI and
> you record one sound after the other to audio tracks, than jitter
> needs to be less 2 ms. I don't know how much under 2 ms, but more
> than 2 ms is audible and sounds horrible.

I have some difficulty in believing this. It will sound
horrible of you mix sounds that have more or less the same
spectrum - any delay there will lead to cancellations.
But doing that is a bad idea anyway, even without using
MIDI. You get the same problem if the same sound is captured
by two mics at a different distance.

Second, 2ms is 0.6m, which is less than the size of a drum
kit. It is also less than the time required to send a 3-note
chord over MIDI.

Finally, Jack MIDI uses ALSA when talking to HW ports.
If Jack can do it right, any application using ALSA 
should be capable of doing that as well.

Ciao,

-- 
FA

O tu, che porte, correndo si ?
E guerra e morte !



More information about the Linux-audio-dev mailing list