Re: Has nobody used CoreAudio Clock?
Re: Has nobody used CoreAudio Clock?
- Subject: Re: Has nobody used CoreAudio Clock?
- From: Brian Willoughby <email@hidden>
- Date: Tue, 03 May 2011 17:07:20 -0700
On May 3, 2011, at 16:18, Tom Jeffries wrote:
I'm a little unclear- there are several ways to play MIDI using
CoreAudio (although maybe I'm confused about what's considered
CoreAudio) including MIDIPackets and the built in sequencer
(MusicPlayer). The sequencer seems to have good timing accuracy
but won't work because we need to update the sequence in real
time. Are you talking about using the timer associated with
MIDIpackets?
I'm talking about CoreMIDI, although I'm not sure whether Apple
considers that a subset of CoreAudio or a peer. And, yes, I'm
talking about the MIDISend() API where you construct a MIDIPacketList
and send the data directly to the system without a MusicPlayer
sequence. CoreMIDI uses the MIDITimeStamp provided in the MIDIPacket
for precise timing.
As my previous message detailed, real time updates to a sequence must
be handled carefully. You should arrange to call MIDISend() a bit in
advance of the actual time needed, and then your timing can be a
little more relaxed. Despite your desire to update the sequence in
real time, you should not attempt to update it "instantly" because
this would result in random latency, or jitter, in the timing, which
is bad for musicality and performance.
I'm familiar with the Edirol device, unfortunately we need to cover
everything, including software synths. We can't do anything about
variations in timing caused by whatever synth the user is
employing. I want to do two things- keep the time between a note
is entered for playback and the time when it is played back as
short as possible, and keep our own output as accurate as we can
manage.
To be clear, CoreMIDI does not require anything special to take
advantage of the Edirol technology. All of the specific code lives
in the Edirol driver.
Also note that software synths will have latency that is independent
of CoreMIDI, and which depends upon the audio sample rate and buffer
size.
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