Re: core midi time stamping
Re: core midi time stamping
- Subject: Re: core midi time stamping
- From: Bob Lang <email@hidden>
- Date: Sat, 16 Jul 2005 23:50:54 +0100
Hi All
It's worth remembering that the "original" MIDI (using five-pin DIN
cables) transmits data at around 31250 baud, or 3125 characters per
second. Given that a note on or off is 3 bytes (with a possible
small saving for running status) then this system allows around 1000
messages per second, or around 1msec per message. Playing 10 notes
simultaneously across various channels takes around 10 msecs. Using
a MIDI controller keyboard for input and echoing from the computer to
an external synth then we get a monitoring delay ("latency") of at
least 2 msecs.
USB and FireWire devices may be inherently faster, but we know that
the five-pin DIN cable system was fast enough for practical use so I
suggest that trying to achieve sub-millisecond timings is unlikely to
give any tangible or noticeable benefits to the user. I don't think
anyone will notice the improvement, except for the odd pathological
situation. And, of course, any improvements you get will be wiped
out if the user is still operating with five-pin DIN equipment - and
there's plenty of that around.
Bob
--
On 16 Jul 2005, at 19:06, Herbie Robinson wrote:
At 4:40 AM -0700 7/15/05, Brian Willoughby wrote:
A custom driver is required to get better MIDI latency performance
than this over USB.
Careful with terminology there. Depending on who you are talking
to (as in most Musicians who use computers), latency means the time
it takes to echo back an input event for monitoring purposes. No
fancy driver stuff can improve that over USB. Ideally for USB, it
would be 1 msec average (1/2 msec for input and 1/2 msec for
output). In practice, it seems to be more like 2-3 msec.
Time-stamping will improve the timing accuracy of both recording
and playback, but not monitoring during recording. One the
hardware I've tested, time-stamping didn't help very much (pulled
of maybe 1 msec). I suspect that the device firmware also
introduces a lot of delays, but don't have the means to really tell
for sure.
I have no experience with the limitations of FireWire for MIDI
time stamping.
The isochronous heartbeat it 1/8 msec. If MIDI is done
isochronously, then it would insert 1/16msec average latency. If
it's not isochronous (MIDI really shouldn't be, because we don't
want MIDI packets dropped), then it could be faster, but 1/16th
msec is probably faster than the OS can schedule; so, I suspect the
hardware isn't going to be the limiting factor.
--
-*****************************************
** http://www.curbside-recording.com/ **
******************************************
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40blueyonder.co.uk
This email sent to email@hidden
_______________________________________________
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