A cross-platform, open-source C library for real-time audio input and output with support for multiple host APIs.
PortAudio is a cross-platform, open-source C library that provides a uniform API for real-time audio input and output across different operating systems. It abstracts platform-specific audio subsystems like ALSA, Core Audio, and WASAPI, allowing developers to write audio applications that work consistently on Windows, macOS, Linux, and other platforms. The library handles audio streaming with low latency and supports both callback-based and blocking I/O models.
Audio software developers, embedded systems engineers, and researchers who need to build cross-platform audio applications, real-time audio processing tools, or audio hardware interfaces.
Developers choose PortAudio for its proven stability, extensive platform support, and lightweight abstraction that doesn't compromise performance. It's the de facto standard C library for portable audio I/O, with decades of development and widespread adoption in both commercial and open-source projects.
PortAudio is a cross-platform, open-source C language library for real-time audio input and output.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a uniform API over multiple host APIs like ALSA, ASIO, and Core Audio, enabling consistent audio applications across Windows, macOS, and Linux as highlighted in the key features.
Designed for real-time audio with minimal latency, making it suitable for interactive applications such as effects processors or synthesizers, per the philosophy of prioritizing performance.
Supports both callback-based and blocking I/O, allowing developers to choose the best approach for audio handling, as described in the README for flexible audio processing.
Handles various audio formats including 32-bit floating point and converts to native formats internally, simplifying data integration without manual conversion.
Requires manual memory management and error handling in C, which can be error-prone and less intuitive for developers used to modern languages with higher-level abstractions.
Focuses solely on audio I/O without providing codecs, effects, or higher-level abstractions, necessitating additional libraries for comprehensive audio applications, as it's a thin abstraction layer.
Documentation is split between online resources, Doxygen output, and header files, making it less centralized and potentially harder to navigate for quick troubleshooting.