shoat aims to provide a common set of tools to work with Higher-Order Ambisonics, similar to those provided by the IEM Plugin-Suite, but without the need to use VST Plugins in environments like Pure Data, Max/MSP, SuperCollider, and Python.
The project structure is based on medusa, a versatile template for building:
- Pure Data/Max/MSP: Objects
- SuperCollider: UGens/Classes
- Python: Modules/Classes
All these wrappers utilize the same core DSP Processors to perform synthesis, effects, or analysis algorithms, ensuring consistency and efficiency across different platforms.
This project is currently under development. Bugs may occur, and features are subject to change. So far, the focus has been on Pure Data integration.
- CMake 3.15+
- A C++17 toolchain (tested on macOS with AppleClang)
- A local installation of Pure Data and/or PlugData so the install step can place the externals in your user folders
cmake -S . -B build
cmake --build build -j$(sysctl -n hw.ncpu)The build creates the PD externals and supporting assets inside build/dist/shoat-pd.
The top-level CMakeLists.txt defines cache variables that default to the usual user folders on macOS:
PLUGDATA_EXTERNALS_DIR→~/Documents/plugdata/ExternalsPUREDATA_EXTERNALS_DIR→~/Documents/Pd/externals
Adjust them when configuring (e.g., cmake -S . -B build -DPLUGDATA_EXTERNALS_DIR=/custom/path).
Once the project is built, run the install component:
cmake --install build --component pd_externalsThis command mirrors build/dist/shoat-pd into plugdata/Externals/shoat and Pd/externals/shoat, copying the externals, help patches, and shared library so they are immediately available inside both environments.
This project is licensed under the GPLv3 License. See the LICENSE file for more details.
