Aristotel Digenis

Spatial Audio Software

News

22/02/08 - Updated Ambisonic Bidules.
09/06/07 - Universal OS X builds of all Bidules.
19/05/07 - Ambisonic C++ Library available.

Ambisonic 3rd Order Decoder VST Plug-in with speaker distance-amplitude compensation, and fully adjustable per-speaker order balance

30th May 2004 - University of York 

The plug-in was developed on a Windows XP platform and tested with Plogue Bidule version 0.6502, and Steinberg Nuendo version 2.0. It was later compiled for Apple’s OS X 10.3 platform using Apple’s XCode. It was tested with Plogue Bidule version 0.6600 where it loaded and appeared fine but the sliders do not seem to work properly. More testing needs to be done and with different hosts. Download your version bellow (Windows, OS X, Source Code). 

Download Windows    Download OS X(PPC)    Download Source Code

Dave Malham from the University of York, was sponsored by Hochschule Fur Musik Winterthur Zurich and the Swiss Center for Computer Music, to develop a suite of VST Ambisonic plug-ins. They were made available for free on the Internet, along with their source code. One of those plug-ins was a first order decoder. Later versions of the decoder featured second and third order decoding.

The decoder plug-in offers controls for the azimuth, elevation, and volume of sixteen individual speakers. In addition, it offers controls for balancing spherical harmonics orders to be used.

In an email exchanged with Dave Malham on the 12th of March, he suggested that useful additions to the plug-in included: “The programmable decoders could have the ratios of 0/1/2/3 order channels settable on a per-speaker basis, not just globally. The decoders could have speaker distance and level compensation.”

Speaker Distance-Amplitude Compensation 

The ability to specify the individual speaker distance from the center of the listening area, allows decoding for speaker array configurations where the speakers are not equally distanced from the center of the listening area. With the currently available decoder plug-in, if a speaker is moved away from the speaker array perimeter, the user must adjust the volume slider of the moved speaker to compensate for the volume change caused by the distance moved.

Changes made to the plug-in now allow the user to set the speaker’s distance from the center only, and the volume is automatically adjusted by the plug-in. If the volume of a speaker reaches the maximum, and its distance setting is further increased, the volume will not be increased, instead the volume for all the other channels will be decreased accordingly. This prevents amplifiers and speakers from distorting, while maintaining an accurately volume balanced speaker array.

Sixteen distance sliders have been added for the sixteen channels of the decoder. They have a range of zero to ten meters with the default being five meters. While the distance sliders affect the volume sliders, the volumes sliders do not affect the distance sliders.

Fully Adjustable Order-Balance Per Speaker

One way of implementing Dave Malham’s suggestion for per-speaker order control, would be to add a slider for every speaker, with a range of zero to three. The slider would only be able to select values 0, 1, 2, or 3. If the user selected 2 for 2nd order then the variables for the third order processing of that channel would be set to zero. As a result processing would only include the channels of the zero, first, and second order of spherical harmonics.

However a second approach, and the one which was implemented is to add four sliders for all sixteen individual speakers, in addition to the four sliders at the end of the plug-in that control the order balance of the decoder. The sliders control the percentage of the zero, first, second, and third base. They are by default set to 70.7%, 75%, 50%, and 30% just like the initial four ‘global’ order balance sliders. The user can now control the orders on a per speaker basis. The original four order sliders are still available at the end of the plug-in and act as ‘global’ controls. For example, the movement of the global first order slider will set all the first order sliders of all the speakers. The advantage of this approach is that the user can select distinctively between order sets, but also mix orders together in variable amounts.

Future Work

Future additions to the plug-in could include higher order capabilities as well as a graphical user interface that would allow hiding of detailed controls such as per channel individual order balancing. At present the decoder can decode up to sixteen speakers. This number could be increased. If Ambisonics proves to be an effective way to playback audio over a large listening environment such as a concert, then the distance controls could be changed to suit a range greater than zero to ten meters. Also it might be interesting to include air-absorption filters and delays for great distances.