Zack Scholl

Faking ambisonics with SuperCollider

 / #supercollider #til 

There is a simple trick to make audio float around binaural headphones by using oscillating filters and delays on each channel.

SuperCollider has a pretty incredible Ambisonic Toolkit. However whenever I use it it gets very complicated, uses a bit too much CPU, and the result is not exactly what I hoped. The result I’m looking for is simply to project a stereo audio signal around the head so that it can appear to be randomly around you - to the left, to the right, and also behind and in front.

Turns out this can be done in a imprecise and coarse way that does have some semblance to random binaural positioning, by using slight delays between the two channels and some filtering. Here’s a small example:

b =, Platform.resourceDir +/+ "sounds/a11wlk01.wav");

In this example the channels are split and then each channel undergoes some random oscilation in its low-pass filter and the side of its small delay (40 ms). There is also a traditional equal-power pan at the end. Its certainly head-swirling, although not quite at the level of true ambisonics.