RtAudio is a set of C++ classes that provide a common API (Application Programming Interface) for realtime audio input/output across Linux, Macintosh OS-X and Windows operating systems. RtAudio significantly simplifies the process of interacting with computer audio hardware. It was designed with the following objectives:
-
object-oriented C++ design
-
simple, common API across all supported platforms
-
only one source and two header files for easy inclusion in programming projects
-
allow simultaneous multi-api support
-
support dynamic connection of devices
-
provide extensive audio device parameter control
-
allow audio device capability probing
-
automatic internal conversion for data format, channel number compensation, (de)interleaving, and byte-swapping
RtAudio incorporates the concept of audio streams, which represent audio output (playback) and/or input (recording). Available audio devices and their capabilities can be enumerated and then specified when opening a stream. Where applicable, multiple API support can be compiled and a particular API specified when creating an RtAudio instance. See the API Notes section for information specific to each of the supported audio APIs.
Latest Updates (Version 4.0.12)
- new functionality to allow error reporting via a client-supplied function (thanks to Pavel Mogilevskiy)
- new function to return the version number
- updated RtAudio.cpp and ASIO files for UNICODE support (thanks to Renaud Schoonbroodt)
- updates to PulseAudio API support (thanks to Peter Meerwald and Tristan Matthews)
- updates for pkg-config support in configure script
- 24-bit format changed to true 24-bit format, not sub-bytes of 32-bits (thanks to Marc Britton)
- bug fixes to make sure stream status is closed if error during probeDeviceOpen
- updates / fixes to SCHED_RR code in ALSA (thanks to Marc Lindahl)
- various changes to avoid global variables (thanks to Martin Koegler)
Download
Latest Release (16 April 2013): Version 4.0.12
Documentation Links
- Error Handling
- Probing Device Capabilities
- Device Settings
- Playback
- Recording
- Duplex Mode
- Using Simultaneous Multiple APIs
- Debugging & Compiling
- API Notes
- Acknowledgements
- License
- Bug Tracker
- Possible Updates
- RtAudio at SourceForge