nvsonic 3DOF Head Tracker
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.
- 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
- MPU-9250 or MPU-9150 orientation sensor
- Arduino Pro Micro board
- Gold pin connectors, wires and Micro USB cable
You can source necessary components from eBay:
Assembling the Head Tracker
Connect the IMU sensor with Arduino board according to the schematic presented below.
- 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:)
- 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.
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.
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.