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, and Unix (OSS/ALSA). It is intended to promote the exchange of audio software between developers on different platforms. Many applications use PortAudio for Audio I/O.
PortAudio provides a very simple API for recording and/or playing sound using a simple callback function or a blocking read/write interface. Example programs are included that play sine waves, process audio input (guitar fuzz), record and playback audio, list available audio devices, etc.
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. PortAudio developers and users keep in touch on the PortAudio mailing list. Please feel free to join.
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 PortAudio's development.
This website is hosted and maintained by Phil Burk of SoftSynth.com. Phil is also a co-designer of PortAudio and used it for audio I/O in JSyn, a real-time synthesis API for Java and 'C'.