A VST plug-in implementation of a parametric Ambisonic decoder for headphones [1], based on the Cross-Pattern Coherence (CroPaC) spatial post-filter. Developed using JUCE and the Spatial_Audio_Framework.
- [1] McCormack, L., and Delikaris-Manias, S. 2019. Parametric First-order Ambisonic Decoding for Headphones Utilising the Cross-Pattern Coherence Algorithm. In Proceedings of the 1st EAA Spatial Audio Signal Processing Symposium, Paris, France, September 6-7th 2019.
The plug-in may be downloaded from here [Mac OSX (10.10 or higher), Linux (x86_64), and Windows (64-bit)].
First clone the repository (including submodules) with:
git clone --recursive https://github.com/leomccormack/CroPaC-Binaural
# or if you have already cloned the repository, update with
git submodule update --init --recursive
The VST2_SDK should be placed in the 'SDKs' folder like so:
SDKs/VST2_SDK
By default, MacOSX, Linux and Windows (x86_64/amd64) users need to install Intel oneAPI (MKL and IPP) and run the install-safmkl.sh/.bat and install-safipp.sh/.bat scripts found in SDKs/Spatial_Audio_Framework/scripts. Whereas, Raspberry Pi (ARM) users instead require OpenBLAS and LAPACKE libraries:
sudo apt-get install liblapack3 liblapack-dev libopenblas-base libopenblas-dev liblapacke-dev
Note, however, that alternative performance libraries may also be used, with more information provided here.
Linux (x86_64/amd64 and ARM) users must also install the following libraries required by JUCE:
sudo apt-get install x11proto-xinerama-dev libwebkit2gtk-4.0-dev libgtk-3-dev x11proto-xext-dev libcurl4-openssl-dev libasound2-dev
The plug-in may be built with CMake (version 3.15 or higher):
mkdir build
cmake -S . -B build -DSAF_ENABLE_SOFA_READER_MODULE=1
cd build
make
Or for Visual Studio users (using x64 Native Tools Command Prompt as administrator):
cmake -S . -B build -G "Visual Studio 15 Win64" -DSAF_ENABLE_SOFA_READER_MODULE=1
cd build
msbuild ALL_BUILD.vcxproj /p:Configuration=Release /m
Note: when installing CMake on Windows, make sure to allow the intaller to add CMake to the system PATH list or it won't be found.
You may also manually open the .jucer file with the Projucer App and click "Save Project". This will generate Visual Studio (2015/2017) solution files, Xcode project files, Linux Makefiles (amd64), and Raspberry Pi Linux Makefiles (ARM), which are placed in:
audio_plugin/_CroPaC_Binaural_/make/
To generate project files for other IDEs, you may open and configure the included .jucer files accordingly.
- Leo McCormack - C/C++ programmer and algorithm design (contact: leo.mccormack(at)aalto.fi)
- Symeon Delikaris-Manias - algorithm design
Note that the CroPaC spatial filter was originally proposed in 2013 for single channel output enhancing applications, and is covered by this patent:
- Delikaris-Manias, S, and Pulkki V. "Method for spatial filtering of at least one sound signal, computer readable storage medium and spatial filtering system based on cross-pattern coherence." U.S. Patent Application No. 14/648,379
If you wish to use the algorithm for a commercial product (and not under the GPLv3 license), please contact the authors - see the LICENSE file for details.