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

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.

Homage to Luciano Berio (1925–2003)

Lithuanian Ensemble NetworkI was invited to perform with the Lithuanian Ensemble Network (LEN/LAT) at the „Jauna muzika“ Festival 2013 in Vilnius and played the live electronics for the pieces:

  • Naturale for viola, percussion and recorded voice (1985)
  • Différences for ensemble and tape (1958-1959)
  • Altra voce for mezzo-soprano, alto flute and live electronics (1999)


The Kinect distance sensor as human-machine-interface in audio-visual art projects

excerpt of project thesis

excerpt of project thesis

I finished my project thesis including general information about the Microsoft Kinect sensor device as well as a detailed documentation about it’s application in combination with Pure Data and Gem.

This document might be useful for people working with the Kinect in combination with interactive sound and video installations and performances.

Get the PDF document here!

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:


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 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.


Pure Data Workshop – Vilnius, Lithuania

A Pure Data workshop series will be held on Wednesdays starting from September, 26th 2012 at 18:00-19:30.

Location: Lithuanian Academy of Music and Theatre (LMTA), LMTA main building, Gedimino pr. 42, LT-01110 Vilnius, room 306

The course is open for everyone interested and will start from zero. It will cover topics relevant for sound artists, visual artists, composers, engineers, …

Please register per email:  mail (at) matthiaskronlachner.com .

What is Pure Data (Pd)?
Pure Data is a very flexible visual programming environment, developed by Miller Puckette for creating electronic music. It is available for free and many people contribute in extending it’s functionality. Today it is widely used for creating sound, visuals, data, multimedia installations, music composition, signal processing and analysis, … It can be seen as Open-Source alternative to MAX/MSP.
Due to its visual programming nature its usage is very intuitive.

Live Interfaces

I’ll be presenting my work for the Kinect sensor and Pure Data/Gem at the LIVE INTERFACES: Performance, Art, Music[1] conference.

Find the material here:

A substantial project report about all Kinect plugins and examples will be available soon.

  1. [1]Live Interfaces http://icsrim.org.uk/liveinterfaces/


Find some examples about the usage of the externals pix_freenect, pix_openni, pix_threshold_depth, pix_depth2rgba, pix_head_pose_estimation on the Github page http://github.com/kronihias/pd-kinect-examples

In the moment just Mac OSX binaries of the externals are included. Windows binaries coming soon. Linux – please get the source from Github and build them by yourself.