Re: Multimedia timing on OS X
Re: Multimedia timing on OS X
- Subject: Re: Multimedia timing on OS X
- From: Brian Willoughby <email@hidden>
- Date: Wed, 04 May 2011 02:59:34 -0700
On May 4, 2011, at 01:39, Ross Bencina wrote:
I agree with what you've said about CoreMIDI scheduling. I do not
advocate the use of the timer code I posted as the optimal way to
schedule MIDI events. However note that the question (and the
subject line) is about multimedia timers in general, not about
CoreMIDI.
Sorry. I may have gotten confused between multiple threads, since
there have been some CoreMIDI-specific questions here lately.
One thing I would note about MIDI is that it is not a high
performance channel. A 3 byte MIDI message takes about 1ms to
transmit, with running-status you can do a bit better. Trying to
send more than one message at once is going to lead to significant
jitter no matter what you do at the driver level or with fancy
hardware scheduling. Perhaps this is a good reason to seek to
remove all other sources of jitter to avoid adding even more jitter.
Yes, MIDI has data-dependent jitter on the timing. But note that USB
has an average jitter of about 1 ms depending upon the USB load, with
a minimum average jitter of 0.5 ms, no matter what data is flowing.
In fact, USB jitter depends more upon other things in the system that
have nothing to do with the MIDI data. In contrast, when the MIDI
message rate drops to one at a time, the jitter drops to a very low
0.032 ms - something USB cannot touch.
CoreMIDI allows a multi-port MIDI interface to put one message per
port, with maybe 8 ports, and thus you achieve a 0.032 ms jitter much
of the time. That's because advance delivery takes USB uncertainty
out of the picture. Of course, this doesn't work with standard USB-
MIDI.
Brian Willoughby
Sound Consulting
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden