Where to get some B-format files to try out with WAD (they may need converting, see WAD below, although Angelo's more recent WAVE-EX files seem to already be in the correct format!):
| B-format Download Links |
| Soundfield Ltd. |
 |
| Angelo Farina's Public Files |
 |
| Ambisonic Bootlegs Website |
 |
If you know of any more, please email me and let me know!
Wigware Ambisonic Decoder (WAD)
This program now comes in two flavours, as a Direct Show filter and a VST plugin. The Direct Show Filter allows any Direct Show capable audio player software (such as Windows Media Player) the ability to read and decode B-format wave files (the format of which is specified here on Richard Dobson's web page - details on the Waveformat extensible file format used can be found on Microsofts web site here - details on Ambisonics can be found here).
The VST version comes in 1st and 2nd order versions (3rd and 4th order versions to follow) and allows you to alter the polar patterns of the speaker feeds either across the whole frequency range or using 'Shelf Filters' with a variable cut-off. Both of the VST plugins will derive outputs for a standard ITU 5 speaker array, with higher orders giving better frontal resolution.
VST Version
A screen shot of the first and 2nd order plugins running in Audiomulch is shown below:

The pattern parameters control the polar patterns fed to the speaker feeds, with a value of 0.0 representing omni-directional, 1.00 representing cardioid and 2.00 representing a figure of 8 response (for the 1st order example). WHEN USING THE ITU SETTINGS LOW AND HIGH PATTERNS SHOULD BE SET TO 1.00 (unless you want to experiment, of course!)
If the Use Spatial EQ is set to YES, then both high and low patterns can be changed with the transistion frequency set by the Cut off F parameter. If Use Spatial EQ is set to NO then only the Low F pattern control is used and this affects the polar pattern for the entire frequency range. This has been included as the Spatial EQ code does create a small (around 10 degrees) phase mis-match at the transistion frequency that may want to be avoided! Supported speaker layouts are quad, ITU five speaker, hexagon1 (speaker at 0 degrees), hexagon2 (with no speaker at 0 degrees), octagon1, octagon2, 8 speaker cube (1st order only), 6 speaker octahedron (1st order only).
So far I have only tested this in Audiomulch and Plogue Bidule. Also note that there is a bug in Audiomulch (which they are aware of and are fixing!) that means when you change the VST program of a plugin, the standard GUI doesn't update; you need to reopen the GUI of the plugin for the changes to show (they do still happen in the plugin, however).
These plug-ins are for personal and educational use only, for research and commercial use, please contact me. BY DOWNLOADING THESE FILES, YOU ARE AGREEING TO THE USEAGE STATEMENT ABOVE!!!
Download WAD_VST version 0.4 (alpha) 1st order here.
Download WAD_VST version 0.4 (alpha) 2nd order here.
Changes from v0.3 to v0.4
1. Fixed MAJOR memory bug that caused Audiomulch (and other hosts) to crash (or kick out a DC offset on the output!). Many thanks to Ross Bencina for helping me track this one down!
Changes from v0.2 to v0.3
1. Added distance compensation filter and setting for the 1st order plugin 2. Fixed 2nd order ITU decodes (slight typo in code!)
Changes from v0.1 to v0.2
1. Added a 2nd order quad decode (use pattern settings of 1.0 for both high and low frequency) 2. Added an Octahedral layout and tweaked the cube layout fot the 1st order plugin.
Direct Show Version
In WADs current (alpha) state, it will process 16, 24 or 32-bit files files and decode them to a four, six or eight speaker, regular arrangement of speakers (including eight speaker with height) using a max rErV decode (i.e. using shelf filters) or an ITU arrangement using a max rE decode (no shelf filters).
I ACCEPT NO RESPONSIBILITY FOR ANY ILL EFFECTS THIS SOFTWARE CAUSES ON YOUR SYSTEM. It is in its early alpha stages and you use the software at your own risk! Details on how to install the software are to be found contained in the zip file downloadable below!

These plug-ins are for personal and educational use only, for research and commercial use, please contact me. BY DOWNLOADING THESE FILES, YOU ARE AGREEING TO THE USEAGE STATEMENT ABOVE!!!
Download version 0.3.2 (alpha) of WAD for a SQUARE array here.
Download version 0.3.2 (alpha) of WAD for an ITU array here.
Download version 0.3.2 (alpha) of WAD for a Hexagon with a speaker at 0 degrees here.
Download version 0.3.2 (alpha) of WAD for a Hexagon w/o a speaker at 0 degrees here.
Download version 0.3.2 (alpha) of WAD for an Octagon with a speaker at 0 degrees here.
Download version 0.3.2 (alpha) of WAD for an Octagon w/o a speaker at 0 degrees here.
Download version 0.3.2 (alpha) of WAD for a with-height Cube decode here
Instructions for use:
Download my plugin, extract, and then register it - ensuring the 'You have successfully registered the plugin' comes up.
Download Richard Dobsons CPD tools from here:
Assuming you are starting from four mono files called w.wav x.wav y.wav and z.wav do the following to convert them into a WAVEFORMAT EXTENSIBLE B-format file (using Richards command line tools, these commands are assuming that your wave files are in the same folder as the tools): To create a four channel waveformatex file called four.wav type at the command line:
interlx -x four.wav w.wav x.wav y.wav z.wav
To convert this (or any other four channel file you already have!) to a b-format file called bformat.wav type:
copysfx -t5 four.wav bformat.wav
then, double click the file to play in media player which will then automatically use my plugin.
Changes from 0.3.1b to 0.3.2
1. Added support for three channel files (W, X & Y only).
Changes from 0.3.1 to 0.3.1b (Quad only)
1. Fixed decoding coefficients for a Quad decode!
Changes from 0.3 to 0.3.1
1. Removed the debug window on public builds as it _seems_ to be causing
problems in Windows Media Player causing slightly irratic behaviour when
the plugin is called more than once (i.e. more than one wavefile is in the
playlist etc.)
2. Added a with-height cube decoder (order of channels is top front left and
then anti-clockwise from there, followed by bottom front left and then
anti-clockwise from there).
Changes from 0.2.4 to 0.3
1. Support for 16, 20, 24 & 32 bit (including 32-bit float) is now confirmed
as fully working.
2. Fixed a bug where I was creating buffers twice as long as I needed to!
That should save a few kB of memory usage (process_audio algorithm got
it correct, however, so no processor usage saving!)
3. Major code rewrite allowing me to easily add new decoders and support
for different numbers of inputted channels. As soon as there is software
available to create these files, I'll enable it!
4. Changed the decoding code so new decoders can be added easily, and I've
added support for:
a. 4 speaker quad
b. 4 speaker ITU
c. 6 speaker hex with a speaker at centre front
d. 6 speaker hex with speakers offset from centre front
e. 8 speaker hex with a speaker at centre front
f. 8 speaker hex with speakers offset from centre front
5. As windows doesn't support speakers in these locations (I don't think!), order of channels
are starting from centre front, going anti-clockwise.
Changes from 0.2.3 to 0.2.4
1. Support for 16-bit, 20-bit (packed as 24-bit), 24-bit and 32-bit PCM
(fixed point) now included. My system won't output 32-bit float, so
although it's included, I can't test it.....just get noise!
UPDATE: 32-bit floating point playback seems to be a bug in my soundblaster live 5.1 directx driver. It works fine if I use the Wave driver output.
UPDATE2: This is now confirmed, plugin is fine,
Soundblaster Driver is not! To find out what your soundcard can handle, try the stereo files found here.
2. Changed all processing to double floating point precision (64-bit) to
solve a problem with 32-bit int conversion causing very high processor
usage.
Known issues for 0.2.4
1. WARNING - if you you have AC-3 filter installed the AC-3 filter will
insert itself between my plugin and the audio device.
You can turn this feature off in AC-3Filter. If you leave it on,
be aware that it MAY ruin the decode if you don't have a standard
matrix setup in it (i.e. it is fine if you have a 1-to-1 mapping
of inputs to outputs)!
Changes from 0.2.2 to 0.2.3
(NOTE: even if you have a previous version installed, you will need to re-register this filter).
1. 24-bit fixed point now included, so now the decoder supports:
a. 16-bit fixed point files
b. 24-bit fixed point files
Known issues for 0.2.3
1. 32-bit floating point decoding is broken (and always has been, it seems).
Not sure why yet, I'm looking into it. UPDATE: Seems my system here at work won't even play stereo 32-bit files correctly,
so my software MIGHT work on other systems. If anyone tries it and it works, please let me know!
2. WARNING - if you play b-format files and you have AC-3 filter installed
the AC-3 filter will insert itself between my plugin and the audio device.
You can turn this feature off in AC-3Filter, but be aware that it MAY
ruin the decode if you don't have a standard matrix setup in it (i.e. a simple one-to-one mapping of input to output
channels)!
Changes from v0.2.1 to v0.2.2
1. Fixed a bug in the shelf filters causing them to not work correctly!
Changes from v0.2 to v0.2.1
1. Fixed a bug where the back right speaker was outputting
exactly the same sound as the back left speaker....ooops.
|
Conference contributions
Wiggins, B., (2007) The Generation of Panning Laws for Irregular Speaker Arrays Using Heuristic Methods. Proceedings of the 31st International AES conference, London, UK.
Wiggins, B., Paterson-Stephens, I., Lowndes, V., Berry, S. (2003) The Design and Optimisation of Surround Sound Decoders Using Heuristic Methods. Proceedings of UKSim 2003, Conference of the UK Simulation Society p.106-114.
Schillebeeckx, P., Wiggins, B., Paterson-Stephens, I. (2001) Using Matlab/Simulink as an implementation tool for Multi-Channel Surround Sound. Proceedings of the 19th International AES conference on Surround Sound, Germany, p. 366-372.
Wiggins, B., Paterson-Stephens, I., Schillebeeckx, P. (2001) The analysis of multi-channel sound reproduction algorithms using HRTF data. 19th International AES Surround Sound Convention, Germany, p. 111-123.
Professional journal
Paterson-Stephens, I; Wiggins, B; Denormal numbers in floating-point processor applications, GlobalDSP On-line Journal July 2003
Paterson-Stephens, I; Wiggins, B; Quadrature filtering using an optimised Hilbert transform, GlobalDSP On-line Journal March 2003
Other publications
Wiggins, B. (2004), An Investigation into the Real-time Manipulation and Control of Three-dimensional Sound Fields, PhD thesis, University of Derby, Derby, UK.
Other public output (reports, exhibitions)
Wiggins, B., Lennox P., Flat Worm – 2.5D. 12 speaker 1st and 2nd order Ambisonic installation demonstration, Maxis festival, 2003.
Wiggins, B., Lennox, P., Worm - Real-time 32 speaker 1st and 2nd order Ambisonic installation demonstration, Maxis festival, 2002. |