PortAudio is a free, cross platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' that will compile and run on many platforms including Windows, Macintosh (8,9,X), Unix (OSS), SGI, and BeOS. PortAudio is intended to promote the exchange of audio synthesis 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.
News: The PortAudio mail list has been restored thanks to douglas repetto at Columbia University. Users will need to 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.