All Projects → leomccormack → Sparta

leomccormack / Sparta

Licence: gpl-3.0
A collection of spatial audio related VST plug-ins (loudspeaker/binaural panners, Ambisonics encoders/decoders/visualisers, etc.)

Labels

Projects that are alternatives of or similar to Sparta

Regrader
VST delay plugin where the repeats degrade in resolution
Stars: ✭ 44 (-73.33%)
Mutual labels:  vst
Eventsource
The Hoa\Eventsource library.
Stars: ✭ 99 (-40%)
Mutual labels:  hoa
Frequalizer
Equalizer using JUCE new dsp module
Stars: ✭ 130 (-21.21%)
Mutual labels:  vst
Owlplug
Audio plugin manager. Small tool to manage VST plugin folders on Windows and MacOS.
Stars: ✭ 64 (-61.21%)
Mutual labels:  vst
Kitab
Kitab is the ideal companion for Documentation-Driven Quality: Render and Test your documentation.
Stars: ✭ 79 (-52.12%)
Mutual labels:  hoa
Obs Vst
Use VST plugins in OBS
Stars: ✭ 101 (-38.79%)
Mutual labels:  vst
Rtb Rs
Window and event library for rust audio plugins.
Stars: ✭ 30 (-81.82%)
Mutual labels:  vst
Zam Plugins
Collection of LADSPA/LV2/VST/JACK audio plugins for high-quality processing
Stars: ✭ 150 (-9.09%)
Mutual labels:  vst
Wolf Shaper
Waveshaper plugin with a spline-based graph editor (LV2, VST, DSSI and Jack)
Stars: ✭ 93 (-43.64%)
Mutual labels:  vst
Retroplug
A VST wrapper around the SameBoy GameBoy emulator, with Arduinoboy emulation
Stars: ✭ 118 (-28.48%)
Mutual labels:  vst
Node Audio
Graph-based audio api for Node.js based on LabSound and JUCE
Stars: ✭ 67 (-59.39%)
Mutual labels:  vst
Jamba
A lightweight VST2/3 framework
Stars: ✭ 73 (-55.76%)
Mutual labels:  vst
Central
Hoa is a modular, extensible, and structured set of PHP libraries.
Stars: ✭ 105 (-36.36%)
Mutual labels:  hoa
Audiobench
Open source modular synthesizer
Stars: ✭ 63 (-61.82%)
Mutual labels:  vst
Audio Plugin Development Resources
Various resources related to developing plugins for audio production.
Stars: ✭ 136 (-17.58%)
Mutual labels:  vst
Baseplug
MVC audio plugin framework for rust
Stars: ✭ 44 (-73.33%)
Mutual labels:  vst
Mime
The Hoa\Mime library.
Stars: ✭ 100 (-39.39%)
Mutual labels:  hoa
Vst Js
native node addon that allows for instantiation of natively installed VST3 audio plugins
Stars: ✭ 153 (-7.27%)
Mutual labels:  vst
Dexed
DX7 FM multi plaform/multi format plugin
Stars: ✭ 1,969 (+1093.33%)
Mutual labels:  vst
Dawdreamer
Digital Audio Workstation with Python; VST instruments/effects, parameter automation, and native processors
Stars: ✭ 119 (-27.88%)
Mutual labels:  vst

SPARTA

Spatial Audio Real-Time Applications (SPARTA) [1]. A collection of VST audio plug-ins for spatial audio production, reproduction and visualisation. Developed using JUCE and the Spatial_Audio_Framework.

Plug-in descriptions

This repository contains the following VST plug-ins:

  • AmbiBIN - A binaural Ambisonic decoder (up to 7th order) with a built-in SOFA loader and head-tracking support via OSC messages. Includes: Least-Squares (LS), spatial re-sampling (SPR), time-alignment (TA), and magnitude least-squares (Mag-LS) decoding options.
  • AmbiDEC - A frequency-dependent loudspeaker Ambisonic decoder (up to 7th order) with user specifiable loudspeaker directions (up to 64), which may be optionally imported via JSON configuration files. Includes: All-Round (AllRAD), Energy-Preserving (EPAD), Spatial (SAD), and Mode-Matching (MMD) Ambisonic decoding options. The loudspeaker signals may also be binauralised for headphone playback.
  • AmbiDRC - A frequency-dependent dynamic range compressor for ambisonic signals (up to 7th order).
  • AmbiENC - An Ambisonic encoder/panner (up to 7th order), with support for up to 64 input channels; the directions for which may also be imported via JSON configuration files.
  • AmbiRoomSim - An Ambisonic encoder that also includes room reflections based on the image-source method using a shoebox room model. Multiple sources and multiple receivers are supported up to 64 channels (e.g. 16x 1st-order, 4x 3rd-order, or 1x 7th order receiver).
  • Array2SH - A microphone array spatial encoder (up to 7th order), with presets for several commercially available A-format and higher-order microphone arrays. The plug-in can also present objective evaluation metrics for the currently selected configuration.
  • Beamformer - A spherical harmonic domain beamforming plug-in with multiple beamforming strategies (up to 64 output beams).
  • Binauraliser - A binaural panner (up to 64 input channels) with a built-in SOFA loader and head-tracking support via OSC messages.
  • DirASS - A sound-field visualiser based on re-assigning the energy of beamformers. This re-assignment is based on DoA estimates extracted from "spatially-constrained" regions, which are centred around each beamformer look-direction.
  • MatrixConv - A basic matrix convolver with an optional partitioned convolution mode. The user need only specify the number of inputs and load the filters via a wav file.
  • MultiConv - A basic multi-channel convolver with an optional partitioned convolution mode. Unlike "MatrixConv", this plug-in does not perform any matrixing. Instead, each input channel is convolved with the respective filter; i.e. numInputs = numFilters = numOutputs.
  • Panner - A frequency-dependent 3-D panner using the VBAP method (up to 64 inputs and outputs).
  • PitchShifter - A very basic multi-channel pitch shifter, based on the phase-vocoder approach.
  • PowerMap - A sound-field visualisation plug-in based on Ambisonic signals as input (up to 7th order), with PWD/MVDR/MUSIC/Min-Norm options.
  • Rotator - A flexible Ambisonic rotator (up to 7th order) with head-tracking support via OSC messages.
  • SLDoA - A frequency-dependent sound-field visualiser (up to 7th order), based on depicting the direction-of-arrival (DoA) estimates derived from spatially localised active-intensity vectors. The low frequency estimates are shown with blue icons, mid-frequencies with green, and high-frequencies with red.

Pre-built plug-ins

The plug-in suite may be downloaded from here [Mac OSX (10.10 or higher), Linux (x86_64), and Windows (64-bit)].

Building the plug-ins yourself

First clone the repository (including submodules) with:

git clone --recursive https://github.com/leomccormack/SPARTA
# or if you have already cloned the repository, update/init with:
git submodule update --init --recursive

Prerequisites

The VST2_SDK should be placed in the 'SDKs' folder like so:

SDKs/VST2_SDK

MacOSX, Linux and Windows (x86_64/amd64) users must install a custom Intel MKL library. Detailed instructions on how to do this can be found here.

Raspberry Pi (ARM) users instead require OpenBLAS and LAPACKE libraries:

sudo apt-get install liblapack3 liblapack-dev libopenblas-base libopenblas-dev liblapacke-dev

Linux (x86_64/amd64 and ARM) users must also install the following libraries (the former line for JUCE, and the latter line for the Spatial_Audio_Framework):

sudo apt-get install x11proto-xinerama-dev libwebkit2gtk-4.0-dev libgtk-3-dev x11proto-xext-dev libcurl4-openssl-dev libasound2-dev
sudo apt-get install libhdf5-dev libnetcdf-dev libnetcdff-dev

Building the plug-ins via CMake

The plug-ins 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

Building the plug-ins via the included scripts

MacOSX/Linux users may run the following bash script via the Terminal to build all of the plugins:

./build-plugins.sh all
# Note: MacOSX users may need to first install and enable Xcode Command Line Tools:
xcode-select --install 
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 

Windows users may instead run the following batch script via the "x64 Developer Command Prompt for VS.exe":

build-plugins.bat <path/to/Projucer.exe>

Additional scripts and options for MacOSX/Linux users

The repository also includes the following install scripts:

./install-juce.sh      # builds a GPLv3 version of the Projucer App and copies it into "SDKs"
./install-vst2_sdk.sh  # downloads, unzips, and places the VST2_SDK into "SDKs"

The build.plugins.sh script also supports many additional options:

./build-plugins.sh --help    # help information
./build-plugins.sh projuce   # generates Linux makefiles and IDE project files for all plugins
./build-plugins.sh clean     # cleans all plugins 
./build-plugins.sh build     # builds all plugins
./build-plugins.sh all       # projuces, cleans, and then builds all plugins
./build-plugins.sh _SPARTA_ambiBIN_ all       # projuces+cleans+builds sparta_ambiBIN.vst
./build-plugins.sh _SPARTA_ambiENC_ build     # builds "sparta_ambiENC.vst"
./build-plugins.sh _SPARTA_array2sh_ projucer # opens "sparta_array2sh.jucer" with Projucer

Building the plug-ins without scripts or CMake

You may also manually open each .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_plugins/_SPARTA_X_/make/

To generate project files for other IDEs, you may open and configure the included .jucer files accordingly.

Contributing

Suggestions and contributions to the code are both welcomed and encouraged. Feel free to branch off and submit pull requests. Note, however, that if the changes/additions are major, then maybe consider first discussing it via a github "issue" or by contacting the developers directly via email. We may also be able to help with the implementation if needed :-)

Contributors

  • Leo McCormack - C/C++ programmer and algorithm design (contact: leo.mccormack(at)aalto.fi)
  • Symeon Delikaris-Manias - algorithm design
  • Archontis Politis - algorithm design
  • Ville Pulkki - algorithm design
  • Marc Lavallée - bash scripter

License

This project is provided under the GPLv3 License - see the LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].