ambiX v0.3.0 – Ambisonic plug-in suite

I am happy to finally release my cross-platform Ambisonic processors useable as VST/LV2 plug-ins or standalone application under Windows, Mac OSX and Linux. They can be used in flexible hosts like Reaper, Ardour, MaxMSP, Bidule or as standalone applications with Jack.

The plug-ins can be used to produce 3D Ambisonic content or do post production on recordings. (eg. Soundfield or Eigenmike® microphone recordings)
The Ambisonic order is variable and can be choosen at compile time. A practical limitation for Reaper is 7th order due to the 64 channel limit. The processors use the ambiX convention (full 3D, ACN channel ordering, SN3D normalization)

ambiX screenshot ReaperA short video clip showing the plug-ins in action: https://vimeo.com/81073470

You may want to use these plug-ins in combination with the mcfx multichannel effect plug-in suite: https://www.matthiaskronlachner.com/?p=1910

Source code repository: https://github.com/kronihias/ambix

download

Download binaries from Github:

https://github.com/kronihias/ambix/releases

download

You will also need the binaural decoder presets if you want to listen with headphones:  ambix_binaural_presets_v0.1.5.zip
(download includes decoder matrices + binaural loudspeaker impulse responses)

Some more good presets from the BBC can be downloaded here: https://github.com/bbc/bbcrd-brirs

Install the decoder presets to:
Windows 7/8: C:\Users\username\AppData\Roaming\ambix\binaural_presets\
MacOS: ~/Library/ambix/binaural_presets/
Linux: ~/ambix/binaural_presets/

Currently there is no preset generator included, you have to generate your decoding matrix with other tools. For example with the Ambisonic Decoder Toolbox by Aaron Heller using Matlab/Octave: [Source repo] [LAC Article].

Read this article from the AES Design competition for some informations regarding the plug-ins!

A slightly outdated paper about the plug-ins can be found here: http://lac.linuxaudio.org/2013/papers/51.pdf

Ambisonic transformations are described here ICSA2014_KronlachnerZotter_AmbisonicTransformations.pdf

This software was developed during the work on my master thesis at the Institute of Electronic Music and Acoustic Graz. [ IEM ]

Continue reading

Headtracking for Binaural Ambisonic Playback

Low-Budget headtracker mounted on headphonesHere is a short tutorial about an inexpensive headtracking solution which you can use to improve the binaural listening experience with the ambix Ambisonic tools. The calibration software is currently Windows only, but the Pd patch is naturally cross-platform.

It uses the headtracker described here by Dennis Frie: http://www.rcgroups.com/forums/showthread.php?t=1677559
Parts: arduino nano, GY-85 sensor board.

A Pure Data patch provided by me receives the serial data from the Arduino based headtracker and sends OSC messages to the host of your choice. In this case I will describe the use within the digital audio workstation Reaper.

downloadFor the impatient, here is the Pure Data patch (use with Pd-extended):
pd-patch-headtracker-osc-sender


1)
First you have to get the Arduino and Sensor Board, some soldering and upload the firmware according to the instructions here.

Use the Axis Method for calibrationUse the provided Windows software to calibrate the tracker – for me the Axis Method works best. You might have to repeat the calibration from time to time.

2) Now you can use the Pd Patch I provide to communicate with the tracker. Use Pd-Extended to open it!
Download: pd-patch-headtracker-osc-sender
This patch will translate the serial data from the Arduino board to OSC messages.

reaper_control_surfaces3) Open up the Reaper preferences and add an OSC control surface. Important: Receive on port 8000 and Allow binding messages to REAPER actions and FX learn.

4) Add the ambix_rotator plug-in before ambix_binaural and use the OSC tracking data to control the parameters of ambix_rotator:
Click the Track Envelopes/Automation Button of thReaper Track Envelopes/Automatione Track with ambix_rotator to open up the Automation controls. Now click the Learn… Button next to the parameter Yaw.

Now you have to send a OSC message from the Pd patch to attach the correct message to Yaw, Pitch and Roll. Therefore don’t activate tracking yet (as it sends out all three messages Reaper OSC learn and Pd patchat once and thus does not allow to use the Learn functionality)
Instead click the buttons below OSC_LEARN in the Pd-patch to trigger single OSC messages.

5) You may have to change the serial port in Pd. First click the button list_dev to get a list of you serial devices. Enter the serial port id in the number box open_port.
Now you can activate head tracking and enjoy a stable binaural surround image. Use reset_orientation to define your zero degree direction.