C++ Audio Library Options (2018)

Gabor Szanto

Superpowered is the leading C++ Audio Library. Download it today.

C++ audio libraries are critical for high performance audio programming since C++ is a language designed for high performance computing. While other, more modern languages like Swift or Java may be easier to learn and pick up by developers; low latency audio development must be done in C and/or C++ because they are the closest languages to Assembly. C and C++ is said to “run close to the metal”, that is C++ audio code compiles down to native machine code for the CPU it is to run on. Furthermore, C and C++ libraries often contain Assembly code for the most performance-critical parts.

This means that the code has no “layers” it has to get through to get to the CPU at run time (eg as a Virtual Machine or interpreter). Which makes for better performance by manipulating RAM and hardware registers directly. Only Assembly runs closer, on top of “bare metal”.

The downside is that in C++, programmers have to deal with stack vs heap, pointers and memory allocation, synchronization and blocking that other languages do for you automatically albeit much less efficiently. This is why real-time audio cannot be programmed in JAVA, for example. Today there are a number of options for C++ audio processing libraries available.

Examples of C++ Audio Libraries

The best C++ audio libraries offer a wide-ranging, ready-built collection of audio classes, from decoders to players to audio filters, all of which should improve the development process and run equally well on desktop and mobile processors to make cross-platform development easy.

Libraries should include efficient algorithms for digital signal processing (such as FFT, polar FFT and IIR filter) and audio analysis (eg BPM, key detection). It is critical they also offer low-level DSP functions, paramount for low-latency and jitter-free audio performance. Moreover, a good c++ dsp library or good C++ music library will provide multiple levels of audio abstraction, from low-level abstractions such as primitives like FFTs and IIR filters to mid-level abstractions like reverbs and flanger effects to high-level abstractions such as advanced audio players with built-in time-stretching. This allows developers to choose the appropriate level of abstraction needed for their project.

Lastly, a good C++ audio dsp library should be easy to integrate into existing code. C++ audio DSP (such as C++ audio filters, like biquads) should be as efficient and fast as possible, both for user audio experience and for longer battery life.

1. Superpowered Audio SDK.

Superpowered is the leading real-time, cross-platform C++ Audio Library for Desktop, Mobile, IoT and Embedded Devices on Android, iOS, macOS, tvOS, Linux and Windows.

2. Aquila.

Aquila is an open-source software and cross-platform DSP (Digital Signal Processing) library written in C++, focusing on frequency domain analysis.

3. Aubio.

Aubio is a tool designed for the extraction of annotations from audio signals (mostly for audio analysis).

4. BASS.

BASS is a cross-platform audio library with players (using third-party/OS codecs) and effects.

5. CLAM.

CLAM is a software framework mostly for research in the audio and music domain.

6. FMOD.

FMOD is a proprietary sound effects engine and authoring tool for video games and applications.

7. IrrKlang.

irrKlang is a high level 2D and 3D cross platform (Windows, Mac OS X, Linux) sound engine and audio library focusing on games.

8. JUCE.

JUCE is a partially open-source cross-platform C++ application framework most frequently used in audio plugins (such as synthesizers).

9. KFR.

KFR is an open-source C++ DSP framework with frequency domain features and SIMD functions.

10. Maximilian.

Maximillian is a C++ Audio and Music DSP Library.

11. OpenAL.

OpenAL is a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications.

12. PortAudio.

PortAudio is an open-source cross-platform audio library for managing audio input/output.

13. RtAudio.

RtAudio is a set of C++ classes that provide a common API for realtime audio input/output.

14. SoLoud.

SoLoud is a C/C++ audio engine for games with audio players, sample playback and filters.

15. SoundFile.

SoundFile is an audio library for reading and writing audio files, based on libsndfile, CFFI, and NumPy.

16. SoundTouch.

SoundTouch is an open-source audio processing library for changing the Tempo, Pitch and Audio Playback Rates of audio streams or audio files. The library additionally supports estimating stable beats-per-minute rates for audio tracks.

17. Synthesis Toolkit (STK).

The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language.

18. Gamma.

Gamma is a cross-platform, C++ library for doing generic synthesis and filtering of signals.

19. Oboe.

A C++ library for audio input/output on Android.

20. YSE.

A cross-platform, 3D audio engine for audio art professionals and game developers.

C++ Audio Library FAQs

What is needed in a C++ audio library for games?

A C++ audio library for games should offer cross-platform support allowing developers to target multiple tech platforms simultaneously. It should offer real-time audio latency (sub-10ms) for intuitive gameplay. App lifecycle management should be easy and the API needs to be modular, allowing developers to choose the best level of abstraction. All of this should be supported with both free and paid support options.

Where can I find a helpful C++ audio programming tutorial?

Benefits of Using Superpowered Audio as a C++ Audio Library

Time is a developer's most precious resource. This is why with Superpowered, source code is written once in C++ (for performance reasons) and easily portable to multiple platforms. Not only is code portability important but audio output is bit-perfect identical on any and all platforms.

1. Cross-platform Support and Code Portability.

With Superpowered, developers only need to write audio source code once, and can deploy with identical audio playback, sound and performance anywhere.

Copy-paste C++ audio code between Android, iOS, macOS, tvOS, Linux and Windows.

2. Low Latency, Real-time Audio Processing.

Audio processing is a real-time process in which developers have to perform complex DSP transformations in a few milliseconds to queue up the audio stream in the buffer.

Superpowered offers the lowest latency audio processing on mobile devices, faster than OpenSL ES, Core Audio or vDSP/Accelerate.

3. No Operating System Dependencies.

Superpowered operates independently of the operating system media stack (except using audio I/O), so updates to platforms such as Android, iOS, macOS, tvOS, Linux and Windows won’t break audio code. Superpowered C++ audio library works out of the box and provides standalone audio processing because it isn’t a software wrapper atop another C++ dsp library.

4. Flexible and Modular API.

Superpowered offers multiple levels of abstractions. Developers can code their own audio effects and players, or use Superpowered built-in audio effects and player classes. The simple Superpowered API is consistent across Android, iOS, macOS, tvOS, Linux and Windows versions. This means no more fragmentation issues, identical audio features and quality on all devices starting from Android 4.4, iOS 8, Windows Vista and higher. Thoughtful API design removes messy connection and unnecessary audio graph abstractions, making it easier to integrate with existing and/or custom processing code.

5. Professional Support & SLA.

Superpowered offers three levels of free and paid support options for developer code, programming logic, bug fixes and applications developed and deployed using Superpowered SDKs.

Our support group is staffed by developers who are dedicated to providing timely, accurate and useful information. Superpowered also provides free C++ audio programming tutorials for the Superpowered example projects.

Superpowered is the leading C++ Audio Library. Download it today.

  • C++
  • C++ audio
  • C++ audio library
  • Superpowered Audio