PortAudio/portaudio logo

PortAudio/portaudio

Free

PortAudio is a cross-platform, open-source C language library for real-time audio input and output.

FreeFree tier
Inputs: audioOutputs: audio
Type
Open Source

About PortAudio/portaudio

PortAudio is a portable, open-source C library for real-time audio input and output, designed to work across multiple operating systems. It provides a unified API that abstracts underlying audio hardware and host APIs, enabling developers to write audio applications that run on Windows, macOS, Linux, and other Unix-like systems. The library supports both callback-driven and blocking read/write models, handles audio in various formats (including 32-bit floating point), and includes implementations for popular host APIs such as ALSA, ASIO, CoreAudio, DirectSound, JACK, OSS, PulseAudio, WASAPI, WDM-KS, and MME. PortAudio is widely used in music software, voice communication tools, and digital audio workstations, and is accompanied by comprehensive documentation, a mailing list, and example programs.

Key Features

Cross-platform support (Windows, macOS, Linux, etc.)
Callback mechanism for real-time audio processing
Blocking read/write I/O for simpler applications
Supports multiple audio formats, including 32-bit floating point
Host API implementations: ALSA, ASIO, CoreAudio, DirectSound, JACK, OSS, PulseAudio, WASAPI, WDM-KS, MME, and more
Test programs for device listing, latency measurement, and self-tests
Comprehensive API documentation and tutorial
Active mailing list for user and developer discussions

Pros & Cons

Pros
  • Truly cross-platform, reducing porting efforts
  • Open-source with generous MIT-like license (see LICENSE.txt)
  • Supports a wide range of host audio APIs
  • Low-latency performance via callback model
  • Mature library with extensive community and documentation
  • Includes built-in test and example programs
Cons
  • Requires programming in C (or C++ bindings)
  • No built-in audio effects or signal processing (you provide the processing)
  • Platform-specific quirks in some host API implementations
  • Learning curve for the callback-driven architecture

Best For

Real-time audio synthesis and processingAudio recording and playback applicationsDigital audio workstations (DAWs) and music softwareVoice-over-IP and communication appsAudio analysis and visualization toolsEducational projects exploring audio programming

FAQ

What platforms does PortAudio support?
PortAudio supports Windows (via WASAPI, WDM-KS, MME, DirectSound, ASIO), macOS (CoreAudio), Linux (ALSA, OSS, PulseAudio, JACK), and other Unix-like systems (audioio, sndio).
Does PortAudio handle audio effects?
No, PortAudio is a low-level I/O library. It provides audio input/output and sample format conversion, but does not include audio processing effects. You supply the processing algorithm.
How do I get started with PortAudio?
Documentation is available at http://www.portaudio.com/docs/. A tutorial at http://portaudio.com/docs/v19-doxydocs/tutorial_start.html covers compiling and using the library. Example programs are in the examples/ and test/ directories.