Zerr* is a channel-based spatialization concept for an arbitrary audio source. It distributes audio signals to multiple loudspeakers, based only on the signals’ inherent features as well as the properties of the speaker array setup. Although various aspects of the algorithm can be tuned, also during runtime, the audio signal itself defines the spatial distribution. Depending on the parametrization, the approach can alter the original signal significantly, similar to modulation and distortion effects. Please check the conference paper, "Autogenous Spatialization for Arbitrary Loudspeaker Setups" for design details.
Zerr* was was intended to be available in various creative coding environments. The currently supported environments are listed below:
Linux | MacOS(M1) | MacOS(Intel) | Windows | |
---|---|---|---|---|
Puredata | ✅ | ✅ | ✅ | 🛠️ |
JACK | 🛠️ | ✅ | 🛠️ | 🛠️ |
SuperCollider | ⏳ | ⏳ | ⏳ | ⏳ |
Max/MSP | ➖ | 🛠️ | 🛠️ | 🛠️ |
✅: Fully Supported
🛠️: In Development
⏳: Planned
➖: Not available
You can download the precompiled version of each environment and system from Releases. Please check the readme of each environment for detail instructions.
Otherwise, you can also build it for your own machine.
-
Clone this repo and initialize the submodules( pd-lib-builder, min-devkit )
git clone --recurse-submodules git@github.com:ringbuffer-org/Zerr.git && cd Zerr
- Zerr* uses Conan for dependency management, please refer to its documentation for details
- Zerr* depends only on yaml-cpp and fftw3. Use the following Conan command to install them
conan install . --output-folder=build --build=missing
- You can also edit the paths in MakefIle/CMakeLists.txt to point to your own
-
Make sure you have installed Puredata. Building pd externals depends on the Puredata-API (m_pd.h)
-
Build/Install with following commands
# build puredta externals
./build.sh puredata
# build and install puredata package
./build.sh -i puredata
# build Jack client
./build.sh jack