|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]|
Herbie Robinson <email@hidden> wrote:
[ There probably needs to be some attributes on the endpoints that
[ specify the transmission delays. Then the application can correct
[ for them if it wants to. It's probably not a good idea to have
[ drivers try and correct for MIDI delays, because the algorithm
[ can get somewhat complex and would require constant re-computation
[ because the driver doesn't see all the data. The application can
[ adjust for transmission (and other) timing delays as edits are
[ being done. Attributes would be per character time, whether or
[ not running status is used and possible some info about whether
[ the device can respond to incomplete Events..
After my previous post on time stamping, I had some further thoughts about the possibilities.
If you consider the exact case of a Human Interface Device (keyboard, expression controller, etc.) connected via MIDI 1.0, it seems like it would be a good thing if the CoreMIDI driver subtracted 320 microseconds from the time stamp of the receive interrupt and reported that adjusted time as the actual absolute time of the real event.
This seems like a way to improve the accuracy of time stamps. The problem is how to determine whether the input is coming from a live event or a sequencer. In the case of a sequencer, there's no way to know if the sequencer has already adjusted its timing to account for MIDI 1.0 delays.
Also, more modern "MIDI" devices could use more advanced connections like USB instead of MIDI 1.0, and could thus communicate the time stamp directly so that adjustment is
I like your idea of per-endpoint attributes for transmission delays. Aren't there already there? or is that for output latency only?
In some respects it may not be needed if the driver can "adjust" the time stamps on incoming data before the app sees the events, but it might still help to have this information around in the cases where it cannot be determined without human help as to whether the incoming data is live or playback of a recorded
|>Re: Questions on data in MIDIPackets (From: RolandCorp R&D <email@hidden>)|
|>Re: Questions on data in MIDIPackets (From: Herbie Robinson <email@hidden>)|
|>Re: Questions on data in MIDIPackets (From: Brian Willoughby <email@hidden>)|
Visit the Apple Store online or at retail locations.
Copyright © 2011 Apple Inc. All rights reserved.