Allocator and vector arithmetic functions for C++ code using raw arrays
3d92298a5810 — Chris Cannam default tip 6 days ago
Add clamp
1dfb319fdb2c — Chris Cannam 13 days ago
Fix case where oldchannels < channels
6f92879b9448 — Chris Cannam 14 days ago
Add reference to other bqlibs


browse log




A small library for vector management and arithmetic in C++ using raw C pointer arrays, designed for simple audio buffer-shuffling. Also includes aligned malloc wrappers and a lock-free ring buffer.

The code can call out to vector arithmetic helpers (IPP, vDSP) in some places, and has loops written with an eye to auto-vectorising compilers, but mostly this is a convenience library rather than for performance -- it initially exists to give a fairly consistent API to useful functions over audio buffer arrays.

This code originated as part of the Rubber Band Library written by the same authors (see It has been pulled out into a separate library and relicensed under a more permissive licence.

Generally expected to be vendored in to local project builds rather than being installed as a system library.

C++ standard required: C++98 (does not use C++11 or newer features)

Build Status

Copyright 2007-2020 Particular Programs Ltd. See the file COPYING for (BSD/MIT-style) licence terms.