“Engine-Swap” on Two Spatial Audio Plugins Will Be Easy, Right?
Lessons Learned
Tackling a project that involves swapping the cores of two audio plugins seemed straightforward at first:
Yes, spatial audio is complex, but these are two similar JUCE plugins and I can just swap the core code components, it will be easy, right?
It wasn't, and it uncovered many unexpected challenges and learning opportunities.
In this talk, I will share my experience of improving an existing spatial audio plugin (SPARTA 6DoFConv) by replacing its convolution engine with a more efficient alternative. This process required deep dives into complex and sparsely commented audio DSP code and problem-solving.
The core of this presentation will focus on the general learning points from this endeavor. I will discuss some of the strategies I employed to understand and navigate complex codebases and the practical steps taken to embed a new convolution engine in an audio plugin. Additionally, I will explore the unforeseen issues that arose, such as dealing with the drawbacks of highly optimized algorithms and integrating a crossfade system, compromising between efficiency and level of integration.
This talk aims to provide valuable insights for developers, especially those who are starting out and want to start understanding and customizing other people's code. Join me in exploring the lessons learned, strategies employed, and trade-offs considered in creating a more efficient six-degrees-of-freedom spatial audio plugin.
Key Points:
- Addressing challenges with optimized algorithms and accepting tradeoffs;
- General lessons learned and best practices when working with other people's plugin code;
- Practical knowledge of different multichannel convolution engines for Ambisonics reverberation and 6 degrees-of-freedom navigation for extended reality applications.
Domenico Stefani
Postdoctoral Researcher
University of Trento
Postdoctoral researcher at the CIMIL group at the University of Trento, Italy. I received my PhD in early 2024 with a thesis on real-time deep learning on embedded computers for Music Information Retrieval.
In the last 4 years I have been developing audio plugins for embedded computers and PCs, and most of the time these plugins included neural network execution.
The work of these years has been published in the proceedings of conferences such as the International Conference on Digital Audio Effects (DAFx), New Interfaces for Musical Expression (NIME), Audio Mostly, and in journals such as the International Journal of Human-Computer Studies.
Since graduating, I have worked on spatial audio plugins for navigation in VR environments with 6 degrees of freedom.