PortAudio is a free, cross platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, Unix (OSS/ALSA), SGI, and BeOS. PortAudio is intended to promote the exchange of audio software between developers on different platforms.
PortAudio provides a very simple API for recording and/or playing sound using a simple callback function. Example programs are included that synthesize sine waves and pink noise, perform fuzz distortion on a guitar, list available audio devices, etc.
Note: The PortAudio mail list crashed and was restored by douglas repetto at Columbia University on April 8, 2009. If you were subscribed before that date and no longer get emails then please resubscribe here.
The Portaudio Wiki is maintained by the community of PortAudio developers. It has the most up-to-date information and is recommended as a starting point for exploring PortAudio.
Latest information on: PortAudio Community Wiki
The PortAudio project and API was proposed by Ross Bencina to the music-dsp mailing list. Ross uses PortAudio in his AudioMulch synthesis application. Many people have since contributed to its development. Read Ross' recent paper on PortAudio and Media Syncronization.
This website is hosted and maintained by Phil Burk of SoftSynth.com. Phil uses PortAudio as the basis for audio I/O in JSyn, a real-time synthesis API for Java and 'C', and the JavaSonics ListenUp Applet.