Advice: Convolution, head-tracking and dipping my toe in

Hey all, just getting my bearings in this completely new field to me. Hoping someone might be able to offer a couple of lines of advice on if JUCE is a good way forward with a personal project.

I like to try and build a rough and ready head-tracked zero-latency convolution plugin. It would need to take inputs from an audio stream and 3 head-location numbers from EDTracker. Then some math happens and out comes a zero-latency convolution of the source and a head related transfer function. The project is for me to learn to code the math of interpolating the head function and convolving it with a real-time data stream (all new to me). Its also part of a feasibility test for a product idea.

Will JUCE be a good fit for this do you think?

Would love any advice from you guys.


Hey stewart!
Looks like you are going to do some 3d audio there :slight_smile:

JUCE is definitely the right platform for it! I successfully build a couple of Ambisonic plug-ins also with head-tracking support and convolution of IRs. I did the interpolation in the spherical harmonics domain -> Ambisonics, made the interpolation way easier! However you can also perform your interpolation algorithms. JUCE provides many useful tools like FFT and also a zero latency convolution engine, with which you can even crossfade between IRs. Saves you quite a lot of hassle.

My headtracker has MIDI CC output, so that made it quite easy to access the IMU data. EDTracker is using a serial protocol, right? Actually not sure if JUCE has already a class for that, in the worst case you have to use a external library for that, no biggy.

Have fun! :slight_smile:

Hey Daniel, thanks for this reply. Great to hear this is a sensible road to head down for this project!

Yes, I must explore ambisonics. I remember skimming some papers by …was it Gerzon the inventor? … and it looked amazing - way ahead of its time. Is the interpolation easier because you are rotating the source in the spherical ambisonics domain?

Anyway, thanks for the reassurance! Yes, I think this is going to be alot of fun!

Michael Gerzon, yes! He invented first order Ambisonics (4 channels), meanwhile over 50 years later, there’s higher order Ambisonics (HOA), with a better spatial resolution, however also with higher channel count (most people use 3rd order -> 16 channels, my plug-ins however support up to 7th order -> 64 channels).
Interpolation is easier, as the filters I use are already in the spherical harmonics domain and perceptually optimized to fit in there. So they are basically spatially band-limited (if you want to compare that to frequency spectrum), so there won’t be any aliasing.

I recommend using this forum for any questions you have, it’s so valuable and helped me a lot when I started with JUCE! Many great minds in here, very valuable!