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.

ambiX v0.2.1 – Ambisonic plug-in suite

ambiX screenshot ReaperI 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)

A 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: http://www.matthiaskronlachner.com/?p=1910

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

download

Windows 32bit VST:
1st order: ambix_v0.2.1_win32_o1.exe
3rd order: ambix_v0.2.1_win32_o3.exe
5th order: ambix_v0.2.1_win32_o5.exe

ambix software presentation at the ICSA Erlangen

Windows 64bit VST:

1st order: ambix_v0.2.1_win64_o1.exe
3rd order: ambix_v0.2.1_win64_o3.exe
5th order: ambix_v0.2.1_win64_o5.exe

Windows Users: You might need to install the Visual C++ 2012 runtime components from here.

Mac OS X (>= 10.6) VST Universal Binaries:
1st order: ambix_v0.2.2_osx_o1.zip
3rd order: ambix_v0.2.2_osx_o3.zip
5th order: ambix_v0.2.2_osx_o5.zip

downloadYou 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)

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 ]
Weiterlesen

mcfx v0.3.1 – multichannel audio plug-in suite

mcfx_meter32mcfx is a suite of multichannel VST plug-ins for MacOS, Windows and Linux
(mcfx_convolver, mcfx_delay, mcfx_filter, mcfx_gain_delay, mcfx_meter)

these plug-ins are very handy if you want to process multiple channels in one go for example
* multiple loudspeaker setups, Ambisonics (see ambiX)
* Microphone array post productions (eg. Eigenmike)
….

currently high channel counts per track are only possible with the DAWs Reaper (Win, OSX) and Ardour (Linux, OSX)

- channel count is configurable with compile time flag
- cross plattform VST for MacOSX, Windows and Linux
- uses the JUCE framework (www.juce.com)
- ready to use binaries for MacOSX (≥ 10.6, 32/64 bit) and Windows (32/64 bit)

Source code: https://github.com/kronihias/mcfx

VST Binaries: (4, 8, 16, 24, 32, 36, 50, 64 channel version)

downloadOSX: mcfx_v0.3.1_osx_vst.zip
Win32:  mcfx_v0.3.1_win32.exe
Win64: mcfx_v0.3.1_win64.exe

Additionally you can download some example first order B-format reverb presets for mcfx_convolver: mcfx_convolver_presets_v0.1.zip
Note that you have to use ambix_converter after the convolver and choose the preset .amb -> ambix in case you want to use those impulse responses in combination with ambix_decoder or ambix_binaural.

midi2rms – midi volume fader curve sampling

volume-behaviorA very crucial and maybe often underestimated point for working with (volume) faders, especially in live electronics application is their curve/behavior. Which range does it cover? How fast does “it” get “loud”. What is the behavior around the +0 dB mark?

I sampled the midi volume fader behavior from several of the most popular Digital Audio Workstations. The difference is quite obvious as you can see in the graph to the right.

pd-fader-behavior-screenshotI made a Pure Data abstraction as replacement for the frequently used [fadtorms] or [dbtorms]. In connection with the .txt sample files it can be used to scale your midi fader input.
Get the abstraction including sample files and Matlab plots here:

midi2rms_0.11.zip

DarwiinRemoteOSC Mountain Lion

darwiinremote-oscI fixed the program DarwiinRemote for Mac OS 10.8 (Mountain Lion) and added Open Sound Control (OSC) support for the most recent version. Download it here:

DarwiinRemoteOSC-2012-12-24-09-47.dmg

DarwiinRemoteOSC allows to connect via Bluetooth to the WiiRemote controller. It also supports Nunchuk, Classic Controller and Balance Board.
All data from the Wii Controller is forwarded via OSC. IP and Port can be changed by command line argument. OSC can be sent to DarwiinRemoteOSC to turn on Force Feedback, LEDs and retrieve Battery status.

Sourcecode available on Github.

Weiterlesen

Jaaa, Japa 0.6.0 and Jnoise for Mac OS X

(C) Fons AdriaensenI compiled the real-time frequency analyzing tools jaaa, japa 0.6.0 and Jnoise by Fons for Mac OS X (>= 10.6) as easy-to-install package.

japa-0.6.0-installer.pkg
jaaa-0.6.0-installer.pkg

For generating a test signal (white or pink noise) you can use jnoise-0.6.0.zip.
Weiterlesen