Allocator and vector arithmetic functions for C++ code using raw arrays
c3a8b10a15de — Chris Cannam default tip 4 days ago
Switch Linux CI from Travis to Sourcehut
95499bc80035 — Chris Cannam a month ago
Avoid compiler complaints about dynamic array syntax. This is no better code, but it's less sensitive to compile options.
3d92298a5810 — Chris Cannam 2 months ago
Add clamp


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.