Modest C++ libraries for audio tasks
These libraries provide C++ wrappers for things useful in audio
applications, such as FFTs, resamplers, and audio I/O. Most of them
wrap more than one alternative implementation, selectable at compile
time. They are intended to be vendored in to a project, not packaged
These are fairly long-standing libraries already in
use in multiple applications, and they are conservative about the C++
style used (all but bqaudioio are still C++98). They are all licensed
under permissive BSD/MIT-style terms and may be used at no cost in
proprietary or open-source applications.
- bqvec – Vector-of-float management and arithmetic using raw C pointer arrays, designed for simple audio buffer-shuffling. Also includes aligned malloc wrappers and a lock-free ring buffer.
- bqfft – Library wrapping various FFT implementations for some common audio processing use cases. Provides real-to-complex FFTs only, not a general FFT API. Contains a built-in FFT implementation, plus wrappers for FFTW3, KissFFT, Intel IPP, and Apple vDSP.
- bqresample – Library wrapping various audio sample rate conversion libraries. Covers libsamplerate and the Speex resampler.
- bqaudiostream – Library wrapping various audio file read/write implementations. Covers CoreAudio (on Mac), MediaFoundation (on Windows), libsndfile, Ogg/Vorbis, Opus, and MiniMP3.
- bqaudioio – Library wrapping various audio record/playback APIs. Covers PortAudio, PulseAudio, and JACK. Includes a sample-rate-converting adapter.