Binaural Panner – VST plugin

I’ve written a Binaural Panner VST plugin using algorithms described in the previous post. I used the popular JUCE C++ library (which is a no-brainer choice for writing VST plugins these days). JUCE doesn’t offer any API for FIR filtering so i needed to write fast convolution myself and for that I used kiss_fft which is a small, but quite fast FFT library. The GUI elements (like head icon) are hard-coded as C arrays. You can choose between 3 different HRTFs from the CIPIC database. There is a lot of room for optimization, for example crossfading between previous and next impulse response could be stopped at some point, interpolation could be done doing adjacent walk…but i wrote it as an experiment (I always wanted to make my own VST plugin someday!) so it’s not meant for any serious use. In the future, I plan to dive into Ambisonics, so I’ll probably include this HRTF panner as part of the ambisonics decoder plugin…I hope to have more knowledge and experience with HRTFs by that time so I could create an average HRTF that sounds reasonable for most people and that’s when I’ll consider this plugin for serious use.
Source is available at my repo on github. Here is the screenshot:


3 thoughts on “Binaural Panner – VST plugin

  1. alyssos

    Hi, I’m amazed by your work. I’m planning to build an effect plugin using HRTF. I’m worried about getting a good interpolation of the HRIR. Which method may I use? Is there some ready library for this scope? I’ll use C++.


    1. t.wozniak Post author

      Hi alyssos,

      You can try simple bilinear interpolation (in case of a 2-dimensional grid of points) where your output HRIR is a weighted sum of 4 closest HRIRs or you can go with more advanced approach and use triangulation. I would personally suggest the triangulation approach as it produces better sounding results. Bilinear interpolation is described in Chapter 2 of paper INTERPOLATION OF HEAD-RELATED TRANSFER FUNCTIONS (HRTFS): A
      by Fábio P. Freeland, Luiz W. P. Biscainho, Paulo S. R. Diniz (available online). As for the triangulation method, I’ve described it in one of my posts: Implementing Binaural (HRTF) Panner Node with Web Audio API


  2. Pingback: #SounDoer Viewpoint# 科普:影视/游戏领域的虚拟现实音频技术(Virtual Reality Audio)第四篇 | SounDoer

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s