On Wed, Jun 3, 2009 at 10:37 AM, Xavier Glattard
<address@hidden> wrote:
I just have a quick look on OpenAL: it's is a powerful API, dedicated to 3D audio and gaming. The project is mostly supported by Creative.
Creative is the main contributer to the spec but only maintains the Windows implementation. OpenAL-Soft maintains the *nix version and Apple has it's own implementation. OpenAL is also great for regular sound, not just 3D.
Jack API is quite simple: it only routes audio (and MIDI) streams between applications (and/or audio hardware!) with only one format for audio data. It provides tools to measure and reduce latency and handles synchronization between apps (very important for serious real-time audio applications). It's very similar to CoreAudio.
Well, looking more into it I have 2 major problem with JACK, even though it is a great API. JACK now has 2 APIs, JACK1 and JACK2. JACK1 doesn't support Windows, meaning we wouldn't be able to play sound there. JACK2 does support Windows but is C++ base which means I'd have to write code in Obj-C++, and I don't think that's desirable for the core libraries.
I'd like to add that I really want more input on the library being used. Although OpenAL is great, it doesn't implement callbacks, which are needed for the -sound:didFinishPlaying: delegate method (this method is currently not called).