Jashwanth Bamidi

Signal processing research Ongoing · undergraduate research

Spatial Audio Research

Sound in headphones should stay put in the room when you turn your head. That means updating its direction as fast as you move.

Role
Undergraduate Researcher, advised by Prof. Yu-Lin Wei
When
August 2025 – present · UIUC
Tools
Python, SciPy, MPU6050, I2C, CIPIC HRTF data
north, 0°source
World frame, from above
−90+90±180nose, 0°
Head frame, what the renderer needs
Source, world
40°
Head yaw
0°
Source, head-relative
+40°
Heard
ahead and to the right

Degrees clockwise, positive to the right. Relative bearing = wrap(source − yaw).

Illustrative. A fixed source seen from a turning head. Turn the head with the slider; the fixed source moves the other way. Coordinate illustration, not a measured result. Two dials: the world view with a fixed source and a rotating head, and the head frame showing where the source should be rendered.

What I did

I built a real-time pipeline that reads an MPU6050 head tracker and renders binaural audio with FFT convolution in Python.

I also trained a sequence model on inertial and audio features to predict head pose 100 ms ahead.

Result

  • Sources stay world-locked under live head motion.
  • Interpolating between measured ear responses replaced nearest-neighbour lookup, so filters change smoothly.
  • Head pose predicted 100 ms ahead from inertial and audio features.
  • 100 ms is how far ahead the model predicts, not a measured latency reduction.
  • Model details, accuracy and listening tests aren't published yet.

Design decision

Blend, don't snap

Using the nearest measured direction makes the sound jump as you turn. Blending the three nearest directions with barycentric weights keeps it smooth, at the cost of more computation per update.

bearingpredicted poseHead IMUMPU6050, I2COrientationhead yawCoordinate mapsource − yawHRTF blendbarycentricFFT convolutionleft and rightHeadphonesPose predictor100 ms horizonMeasured HRIRsCIPIC
  1. Head IMUMPU6050, I2C
  2. Orientationhead yaw
  3. Coordinate mapsource − yaw
  4. HRTF blendbarycentric
  5. FFT convolutionleft and right
  6. Headphones
  7. Pose predictor100 ms horizon
  8. Measured HRIRsCIPIC
Illustrative. Research pipeline. Main blocks of the research pipeline; no measured timing shown. IMU orientation, coordinate mapping, barycentric HRTF blending and FFT convolution to headphones, with a pose predictor feeding the mapping.

More detail

How world-locked audio works

Binaural rendering filters a sound with one impulse response per ear, chosen for the direction it should come from. If the filters don't follow the head, the sound turns with you.

So the renderer needs head orientation, the source's direction relative to the head, ear filters for that direction, and convolution fast enough to still match the head when heard.

Pipeline

The coordinate step subtracts head yaw from the source's world bearing; a predicted pose can stand in for the measured one. The result picks a blend of measured HRIR directions from CIPIC data, applied block by block.

Other design decisions
  • Predict the pose

    A learned predictor with a 100 ms horizon. Instead of: rendering with the latest measured pose.

    Can offset pipeline delay, but prediction error becomes its own source of misplacement and has to be evaluated separately.