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
