[music-dsp] Comparing cross-platform audio APIs

Earl Vickers sfx at sfxmachine.com
Wed Nov 2 12:02:06 EST 2005


(This is my N+1th try at sending this. Apologies if they all show up 
at once...)

I'm doing a comparison of some available cross-platform audio APIs. 
So far, the ones I'm considering are:

RtAudio		http://www.music.mcgill.ca/~gary/rtaudio/
PortAudio		http://www.portaudio.com/
JUCE		http://www.rawmaterialsoftware.com/juce/

My main criteria are:
1. The need to be able to work with whatever sound card or driver the 
user happens to have (mostly an issue for PCs), and
2. The ability for simultaneous sample-accurate microphone input and 
audio output.

Here's what I have so far:

  RtAudio
Platforms:        OS X, Windows, Linux, etc.
Drivers:          DirectSound, ASIO, CoreAudio, Can query for available devices
File formats:     Unknown (not supported?)
Sample-accurate:  Unknown
Mic Input:        ? (supports input, output streaming)

  PortAudio
Platforms:        OS X, Windows, UNIX, etc.
Drivers:          DirectSound, WMME, ASIO, CoreAudio
File formats:     No support, recommends using Libsndfile
Sample-accurate:  Unknown
Mic Input:        ? (supports streaming audio)

  JUCE             (also does lots of other stuff besides audio)
Platforms:        OS X, Windows, Linux
Drivers:          DirectSound, ASIO, CoreAudio
File formats:     Wav, AIFF (no MP3?)
Sample-accurate:  Unknown
Mic Input:        ? (supports input, output streaming)

Can anyone help flesh this out or provide general recommendations on 
which API might be best for a professional app? The main unknowns 
involve the sample-accuracy issue. Am I correct in thinking this is 
primarily a function of what driver is used, and that on Windows I'd 
be best off using WMME?

Thanks,

Earl
The Sound Guy, Inc.
sfx at sfxmachine.com



More information about the music-dsp mailing list