Ambisonic Transcoder for ProTools

ProTools Transcoder Screen Shot

Ambisonics

Ambisonics is a method of recording and reproducing surround sound that was originally developed in the 1970s, mostly by Michael Gerzon.  A transcoder is a device, or in this case mixer setup, that allows the use of stereo pan pots to create a surround mix. This mix comes out in b-format (with no Z, sorry). It is then decoded to feed a square speaker rig.  The following describes how I've implemented an ambisonic transcoder and decoder in ProTools LE (for Windows (it shouldn't matter)).

For more information about ambisonic recording see www.ambisonic.net.
An article describing ambisonic decoding on a analog mixer.
An article on ambisonic mixing techniques.

Transcoder

The idea is to be able to position tracks around a box by using pairs of busses for each of the four walls and panning between the busses in each pair.  I use aux busses one through eight as shown below.  (The three/four pair may look backwards at first, but I tried it the other way first and this works better for me.)


Aux Busses

These busses are then brought back into a series of aux input channels called PFrnt1, PFrnt2, etc.  Where needed, a bus is brought back in on two channels, one of which will have a single band eq. acting as a polarity inverter.  These aux channels are mixed back to aux busses like this:

Bus 14 = W
Bus15 = X
Bus16 = Y

B-Format

If you record the W, X & Y tracks what you have is what is known as horizontal only b-format.  B-format properly includes height on a fourth channel to record the complete three dimensional soundfield (see the ambisonic FAQ at www.ambisonic.net).  In fact, I think I'm going to start recording a silent Z track when I mix just to have one of the right length.  Much of the available ambisonic software will either require this track or make you translate the three (or four) wav files into a four channel single file (usually with extension '.wxyz').  You also see b-format in two stereo wav files or even two mp3 files.  Here are a few b-format files of mine:
xyz.wxyz (xyz_wx.mp3, xyz_yz.mp3) features me saying "plus X, plus X, ... minus X, etc."  This file was created from a mono souce by simple past/mix games in CoolEdit.  Useful for checking that your speakers are placed right.

Decoder

The decoder starts with the W, X & Y audio tracks and  aux tracks for the inverse of X and Y. Note that the three audio tracks must be in record mode for the decoder to work right.  You get sound here and there when these tracks are not record enabled so don't forget (as I often do, they could be aux tracks with audio tracks added later for the bounce). These five tracks are mixed to the first four outputs  to generate speaker feeds for a square speaker layout (no shelf filters).  There are grouped master sliders on the four speaker feed channels for monitor gain control.  The speakers are fed as follows: 


Speakers

A couple of points about this decoder. First, it is not a proper ambisonic decoder because it does not use 'shelf filters.' An important part of the theory behind ambisonic reproduction is that humans use different mechanisms for localization of sounds in different frequency ranges. Gerzon, the brilliant originator of much ambisonic theory, devised a system of simple shelf filters and gain matrices to take advantage of this fact. This decoder works, but a real ambisonic decoder could make the same b-format file sound better. There are links to a couple of software versions on the ambisonic home page.

One quirk of b-format that I should probably explain here.  It is traditional to have the W track 3dB down from the others.  This was originally done to make the best use of the dynamic range available, since W is generally (always?) louder.  I implement this tradition by having all the sends to W at -3dB and then mixing W at +3dB into the output decoder.

If your only contact with ambisonics is this ProTools session, then you will miss the fascinating fact that, unlike any discrete surround system be it old quad or the latest 5.1/6.1/7.2/etc., ambisonic techniques can drive any number of speakers from the same source material.  And more is better. The only caveat here is that all the speakers and amplifiers should be matched. Also a symmetric layout is easier to decode but other layouts, like 5.1, can be decoded from a b-fomat source as well.

Creating a Mix

To create your own mix using this session, first save a copy under a new name.  Since I have thus far been remixing existing material, I start by importing the tracks I want from another session.  And since my stereo monitoring system (Beyer DT770 headphones and NS-10s) is much better than my surround monitoring system (the cheapest four speaker plus sub computer speakers I could find, $30) I will probabaly continue to track in stereo and remix for surround later.  Obviously a piece that makes essential use of localization needs surround monitoring from the beginning.

When you have the tracks you want, just assign each one to one of the first four aux bus pairs according to the diagram above, then use the pan slider to position each track along a wall.  There are some other tricks you can do as well.  If you have existing b-format source material, you can obviously mix that directly into the WXY busses.  If you add a little send to W (bus 14) on a track it will add dispersion to that sound.  This is similar to bringing the sound closer, except that some of the other distance ques like early reflections and loudness won't change.  If you want a sound to pan around the whole space in real time, I'd suggest using a program called vspace which can take a script and a wav file and create a b-format result.  Things can fly around in circles, etc.  Then just mix the resulting b-format output into you session.

Virtual Microphones

Another fun thing you can do with b-format material, whether mixes or original field recordings, is derive virtual microphone signals.  There is enough information in a b-format source to calculate what a microphone pointed at a given angle and with a given directionality (omni, cardiod, figure-8) would pick up.  I have written a program that does this for two virtual microphones producing stereo from b-format in real time.  It's called 

Visual Virtual Microphone.

Download

All this to explain the contents of a single small file which you can download below.  This is a 24 bit, 44.1K session created in ProTools LE for Windows.  You can easily save a copy in another format.

square24.pts

Feedback

If you find this utility useful, or have questions or comments, please contact me at david@mcgriffy.com