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 on the conference paper, "Autogenous Spatialization for Arbitrary Loudspeaker Setups" for design details.
Zerr* was meant to be available in different kinds of creative coding environment and different computer systems. The supported environment for now listed below:
Linux | MacOS(M1) | MacOS(Intel) | Windows | |
---|---|---|---|---|
Puredata | ✅ | ✅ | ✅ | 🚧 |
Jack | 🚧 | ✅ | 🚧 | 🚧 |
Supercollider | ❌ | ❌ | ❌ | ❌ |
Max/MSP | ❌ | ❌ | ❌ | ❌ |
✅: Support
🚧: Under development
❌: For future
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 pd-lib-builder submodule
git clone [email protected]:ringbuffer-org/Zerr.git cd Zerr git submodule init
-
Make sure you have installed Puredata. Building pd externals depends on the Puredata-API (m_pd.h)
-
Make sure you have Make installed :)
-
Zerr* depends on yaml-cpp and fftw3, the default dependency path is the the dependencies folder inside repo. You can change the paths in puredata/Makefie to point to your own install paths.
-
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