HOA Technical Notes - B-Format
B-Format is the main audio format used for Higher Order Ambisonics. This is a multichannel audio format where the individual channels do not correspond directly to speaker feeds. There is no "front left" channel. Instead, the channels contain aspects of the soundfield that are combined during a later decoding step.
With traditional multichannel audio, the channels do correspond to speaker feeds. This is great when the channels in the audio correspond to the speakers that are going to be used to listen, but can be a major problem when they don't.
B-Format allows multichannel audio to be generated, recorded and transferred from place to place without worrying about the speakers that are going to be used for playback in the end. It's slightly more complex to work with, but it means you'll normally only need to master your content once, rather than separately for stereo, 5.1, 7.1 etc. Oh, and B-Format supports full 3D too.
Order
B-Format has an "order" which corresponds to the level of spatial detail provided. This determines the number of channels present - new channels are added on each time you increase the order. At "zero" order, there is just one mono channel. At "first" order, three additional spatial channels, corresponding to each of the X, Y and Z axes. At "second" order, another five channels are added, with rather less straightforward meaning. And so on. For the mathematicians out there, the channels correspond to the "spherical harmonics".
Coordinate System
In Ambisonics, the coordinate system is normally set up so that X is forwards, Y is to the left and Z is upwards.
Content
There are a few ways to get hold of B-Format content. These include:
- Panning
- Recording
- Upmixing
Panning
The easiest way to encode audio into Higher Order Ambisonics is to use mono sources and to "pan" them into the B-Format stream. There are a few different variants of B-Format, but we discuss Furse-Malham ("FuMa") encoding here.
| Label | Order | Angle/Elevation Representation | Cartesian Representation |
|---|---|---|---|
| W | 0 | sqrt(1/2) |
sqrt(1/2) |
| X | 1 | cos(A)cos(E) |
x |
| Y | 1 | sin(A)cos(E) |
y |
| Z | 1 | sin(E) |
z |
| R | 2 | (1/2)(3sin(E)sin(E)-1) |
(1/2)(3zz-1) |
| S | 2 | cos(A)sin(2E) |
2zx |
| T | 2 | sin(A)sin(2E) |
2yz |
| U | 2 | cos(2A)cos(E)cos(E) |
xx-yy |
| V | 2 | sin(2A)cos(E)cos(E) |
2xy |
| K | 3 | (1/2)sin(E)(5sin(E)sin(E)-3) |
(1/2)z(5zz-3) |
| L | 3 | sqrt(135/256)cos(A)cos(E)(5sin(E)sin(E)-1) |
sqrt(135/256)x(5zz-1) |
| M | 3 | sqrt(135/256)sin(A)cos(E)(5sin(E)sin(E)-1) |
sqrt(135/256)y(5zz-1) |
| N | 3 | sqrt(27/4)cos(2A)sin(E)cos(E)cos(E) |
sqrt(27/4)z(xx-yy) |
| O | 3 | sqrt(27/4)sin(2A)sin(E)cos(E)cos(E) |
sqrt(27)xyz |
| P | 3 | cos(3A)cos(E)cos(E)cos(E) |
x(xx-3yy) |
| Q | 3 | sin(3A)cos(E)cos(E)cos(E) |
y(3xx-yy) |
The table above provides two different ways to pan to B-Format, depending on whether you would prefer to say where the sound should be using angle and elevation, or a Cartesian representation. If you use the former, the angle is measured anticlockwise and elevation upwards. If you use the latter, the x, y, z coordinates must be the components of a unit vector in the direction of the sound (i.e. xx+yy+zz must equal 1).
The equations give gains which can be used to pan a mono sound into the B-Format. Multiple panned sounds can be mixed together.
Each order introduces some new channels, but you must include the channels from the earlier orders. So, at second order, you will be including channels WXYZRSTUV (in that sequence). First order contains channels WXYZ, which correspond directly to the B-Format used by Michael Gerzon in classic Ambisonics.
There are other forms of B-Format in use. In particularly, N3D is available in some software packages and is easier to work with mathematically than FuMa.
Recording
There are four-channel microphones available that record first order B-Format, either directly (e.g. Soundfield's B-Format microphones) or indirectly (e.g. Core Sound's TetraMic).
Upmixing
If you have material in a multichannel format and wish to convert it to B-Format, there are various ways to do it. The simplest way is to imagine each of the speakers is a sound source and use the panning technique above. However, there are better ways to do this (we've done some research in this area).
Now, What Do I Do With It?
Once you have B-Format material, what can you do with it? There are various manipulations (for instance rotation) that can be applied naturally to the material in this form, but what you probably really want to do is listen to it. For this, you need a Higher Order Ambisonic decoder of some type.
B-Format is a great mastering/archive format, as you can come back to it later and produce a stereo mix, or a 5.1 mix, or a 7.1 mix or...