Coder Social home page Coder Social logo

leomccormack / ho-sirr-gui Goto Github PK

View Code? Open in Web Editor NEW
17.0 5.0 1.0 3.06 MB

A VST/App implementation of the Higher-order Spatial Impulse Response Rendering (HO-SIRR) algorithm

Home Page: https://leomccormack.github.io/sparta-site/docs/plugins/hosirr/

License: GNU General Public License v3.0

C 31.50% C++ 64.81% Batchfile 1.16% CMake 2.53%
spatial-impulse-responses spatial-audio microphone-array-processing vst-plugin ambisonics

ho-sirr-gui's Introduction

HO-SIRR-GUI

A VST and standalone App implementation of the Higher-order Spatial Impulse Response Rendering (HO-SIRR) method [1,2]. Developed using JUCE and the Spatial_Audio_Framework.

HO-SIRR can synthesise output loudspeaker array room impulse responses (RIRs) using input spherical harmonic (Ambisonic/B-Format) RIRs of arbitrary order. The method makes assumptions regarding the composition of the sound-field and extracts spatial parameters over time, which allows it to map the input to the output in an adaptive and more informed manner; when compared to linear methods such as Ambisonics. The idea is that you then convolve a monophonic source with this loudspeaker array RIR, and it will be reproduced and exhibit all of the spatial characteristics of the captured space.

Pre-built plug-in and App

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

Building the plug-in and App yourself

First clone the repository (including submodules) with:

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

Prerequisites

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

Building the plug-in via CMake

The plug-in and App may be built with CMake (version 3.15 or higher):

mkdir build
cmake -S . -B build
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"
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.

Building the plug-in and App without CMake

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/_HOSIRR_/make/

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

Contributors

  • Leo McCormack - C/C++ programmer and algorithm design (contact: leo.mccormack(at)aalto.fi)
  • Archontis Politis - algorithm design
  • Ville Pulkki - algorithm design

License

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

ho-sirr-gui's People

Contributors

leomccormack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

mtmccrea

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.