Skip to content
Spatial Audio 3DOF Head Tracker (requires Arduino Pro Micro + MPU-9250 / MPU-9150)
C++ C Objective-C++
Branch: master
Clone or download
Latest commit 4a40bf8 Sep 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
head-tracker-arduino Initial commit Mar 17, 2019
head-tracker-osc-bridge Added SALTE output Sep 23, 2019
images Initial commit Mar 17, 2019
.gitignore Initial commit Mar 17, 2019
LICENSE Initial commit Mar 17, 2019
README.md Update README.md Mar 18, 2019

README.md

nvsonic 3DOF Head Tracker

alt text

nvsonic 3DOF Head Tracker is a low-cost solution for spatial audio monitoring using headphones

Head tracking is a key element of the headphone based spatial audio. Virtual Reality headsets like Rift, Vive and VR ready mobile phones use built-in inertial sensors to track user’s head movements. For those who would like to experience spatial sound without wearing a VR headset, we have created a DIY head tracker that can be attached to the user’s headphones. With nvsonic 3DOF Head Tracker, you can monitor audio produced with spatial audio plugins, e.g, ambiX, IEM Plug-in Suite, Facebook 360 Spatial Workstation. The total cost of the components is around $20. After assembling the device you can use our interfacing software to control plugins within your DAW.

Project Authors

  • Tomasz Rudzki - PhD Student at AudioLab, University of York, UK
  • Jacek Majer - PhD Student at Warsaw University of Technology, Poland

The IMU code is based on: https://github.com/rpicopter/ArduinoMotionSensorExample

Required Components

  1. MPU-9250 or MPU-9150 orientation sensor
  2. Arduino Pro Micro board
  3. Gold pin connectors, wires and Micro USB cable

alt text alt text alt text alt text alt text

You can source necessary components from eBay:

Assembling the Head Tracker

Connect the IMU sensor with Arduino board according to the schematic presented below.

alt text

Flashing Arduino

  • Connect the assembled Head Tracker to your computer using Micro USB cable.
  • Clone / download this repository.
  • Open the Arduino sketch in Arduino IDE. Choose 'Leonardo Arduino Board' in Tools menu as well as the appropriate COM port.
  • Compile and upload the sketch to your device.

Attaching to Your Headphones

Mount the sensor on the top of the headband, centered. The wires should be oriented towards the left ear side. The Arduino board can be attached to the side of the headband. You can use zip ties or velcro straps to fix the elements. Use your creativity:)

alt text

Interfacing Software

  • Download the latest release of the Head Tracker OSC Bridge or compile it yourself.
  • Run Head Tracker OSC Bridge.exe / .app. The current release was designed to work with Reaper and Matthias Kronlachner's Ambisonic rotation (ambix_rotator) plugin. Set the Euler rotation order inside the plugin to: roll-pitch-yaw.

alt text

For assigning the OSC messages to plugin parameters use “learn” DAW functionality. Toggle “M” (mute) buttons to control which parameter is being sent. Sending one type of parameter (Roll, Pitch or Yaw) at a time is required for this process.

alt text

You can also have a look at the tutorial posted by Gabriel Zalles at the NYU Immersive Audio Group blog.

Drift Performance

You can experience some drift during the first few minutes of operation. Stay calm, the sensor needs to stabilize its temperature to provide accurate direction in horizontal plane.

Head Tracking in Reaper

To remove the nasty latency caused by Reaper's audio processing, turn off the anticipative FX processing in preferences.

alt text

You can’t perform that action at this time.