• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Has nobody used CoreAudio Clock?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


References: 
 >Has nobody used CoreAudio Clock? (From: Tom Jeffries <email@hidden>)
 >Re: Has nobody used CoreAudio Clock? (From: Paul Davis <email@hidden>)
 >Re: Has nobody used CoreAudio Clock? (From: Tom Jeffries <email@hidden>)
 >Re: Has nobody used CoreAudio Clock? (From: Brian Willoughby <email@hidden>)
 >Re: Has nobody used CoreAudio Clock? (From: Tom Jeffries <email@hidden>)
 >Re: Has nobody used CoreAudio Clock? (From: Brian Willoughby <email@hidden>)
 >Re: Has nobody used CoreAudio Clock? (From: Tom Jeffries <email@hidden>)

  • Prev by Date: Re: Has nobody used CoreAudio Clock?
  • Next by Date: Re: Multimedia timing on OS X
  • Previous by thread: Re: Has nobody used CoreAudio Clock?
  • Next by thread: Re: Has nobody used CoreAudio Clock?
  • Index(es):
    • Date
    • Thread