University of Derby
 
SPARG
Signal Processing Applications Research Group

   SPARG / Group Public Area / Staff Contacts / Bruce Wiggins
Todays Date: 03/09/2010
UserName
Password
w
 
Group Members - Click on a Picture for Staff Pages
asdfsd
Dr. Bruce Wiggins

dfgdfgdf

Areas of Interest

Audio Digital Signal Processing.

Surround Sound Algorithmic research including work on Ambisonics, binaural and transaural approaches.

Use of Heuristic Methods in the optimisation of multi-speaker decodes.

Dr. Bruce Wiggins
Principal Researcher

+44 (0)1332 591775
b.j.wiggins@derby.ac.uk

     
Downloads:
     

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. DL Icon
Angelo Farina's Public Files DL Icon
Ambisonic Bootlegs Website DL Icon

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:

WAD_VST

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 more less
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 more less
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 more less
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!

BAD Screenshot

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 more less
    1. Added support for three channel files (W, X & Y only).

    Changes from 0.3.1 to 0.3.1b (Quad only) more less
    1. Fixed decoding coefficients for a Quad decode!

    Changes from 0.3 to 0.3.1 more less
    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 more less
    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 more less
    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 more less (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 more less
    1. Fixed a bug in the shelf filters causing them to not work correctly!

    Changes from v0.2 to v0.2.1 more less
    1. Fixed a bug where the back right speaker was outputting exactly the same sound as the back left speaker....ooops.

         
    Publications:

    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 MethodsProceedings 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 SoundProceedings 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 data19th 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.

         


    SPARG: Signal Processing Applications Research Group
    Iain Paterson-Stephens - 2002