Allocator and vector arithmetic functions for C++ code using raw arrays
Increase alignment in allocate
321a035f16d6 — Chris Cannam a day ago
More meaningful timing code
0b12d71e9961 — Chris Cannam a day ago
Some tidying, + make simple dispatch functions inline


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-2021 Particular Programs Ltd. See the file COPYING for (BSD/MIT-style) licence terms.