Does CoreAudio and/or CoreMidi have a non-callback API available?

What I'm considering is this:  When using a non-callback API, Hydrogen would 
spawn a the processCaller thread instead of the audio driver.  This can help to 
sync up the audio and midi data in non-callback API's... having them both trace 
back to Hydrogen's process() callback.

The issue is this:  When the audio and MIDI drivers are both callback API's... 
but *different* API's... what do we do?  For example, if I'm using CoreAudio... 
it requires me to provide a callback.  When using CoreMidi... I also have to 
provide a callback.  That makes my nice neat system all messy.  :-)

As part of the transport redesign, I'm planning some rearranging of how the 
drivers interact with Hydrogen.  One of those has to do with the so-called 
"processCaller" threads.  If you don't know what I'm talking about... take a 
look at the ALSA audio and MIDI drivers.  Notice how they start a thread that 
repeatedly calls the audioEngine_process() callback.

In contrast, with JACK, CoreAudio, and CoreMidi... we instead register our 
callback with the audio server.  The audio server is then responsible for 
spawning a thread that calls our callback.

For those that don't know, doing the "processCaller" threads keeps our code 
portable between callback-driven API's and the non-callback API's.

Peace,
Gabriel

------------------------------------------------------------------------------
_______________________________________________
Hydrogen-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hydrogen-devel

Reply via email to