The Ambisonic G-Format (AMBG) chunk

The ".amg" Format

This document describes a soundfile information chunk that may be added
to WAVE-EX soundfiles to indicate the file is in Ambisonic G-Format. The
information in the chunk can be used to recover the B-Format components
for subsequent decoding to a different speaker layout.

A G-Format file contains an Ambisonic soundfield pre-decoded to a set of
speaker feeds. This allows listeners who do not own an Ambisonic decoder
to enjoy Ambisonics. When producing the G-Format file, the sound engineer
creates a set of speaker feeds for a particular number and arrangement of
speakers. This is typically four speakers arranged in a square or five
speakers arranged in a regular pentagon. However, other speaker
arrangements are possible.

As unrecognized chunks are always skipped, use of this chunk is benign and
players that do not recognise it will see a normal multi-channel WAVE-EX
file. The dwChannelMask in the WAVE-EX file should be set to the value
appropriate for the set of speaker feeds the file contains.

Use of a
Speaker
Position (SPOS) chunk, in addition to the AMBG chunk, is not
required in G-Format files but is recommended. The SPOS chunk can give
guidance to the listener on the speaker arrangement which was assumed
during the production of the G-Format file (square, regular pentagon, etc).
The SPOS and AMBG chunks are completely independent, and their relative
order is unimportant.

The AMBG chunk contains conversion coefficients which can be used
to recover the original B-Format channels. The recovered B-Format
channels can be fed to a decoder in the listener's living room, and so
accommodate a speaker arrangement different from the one used when the
G-Format file was produced. Each B-Format channel is recovered using a
weighted combination of the speaker feeds in the G-Format file. The
conversion coefficients must be such that the recovered B-Format channels
conform to the Furse-Malham set of weighting factors described in
the ".amb"
specification.

The B-Format channel label; for example, W. It is an
enumerated integer constant in the range 1 to 16.

<BformatConv.coeffs>

The array of conversion coefficients to perform the recovery,
one weighting coefficient for every speaker feed in the file.
The 64-bit floating point numbers are in IEEE 754 format. The
B-format channel is recovered using a weighted combination of
the speaker feeds in the file. The coefficients are in the
same speaker feed order as the samples are interleaved.

File extension

A file containing the AMBG chunk will have the ".amg" file
extension. This is to allow the operating system to route G-Format files
to an Ambisonic decoder. Note that when creating files, software must
use this file extension. However, when reading files, software should
peek inside any WAVE-EX file, irrespective of its extension, to see if it
contains the AMBG chunk. (This is an example of the robustness principle,
"Be liberal in what you read, and conservative in what you write".)

Example 1: Nimbus 4.0

Nimbus 4.0 presents the listener with speaker feeds decoded for
speakers positioned at FrontLeft, FrontRight, BackLeft,
BackRight. The samples in a WAVE-EX file must be interleaved
in this order. The speakers feeds are for speakers arranged in
a square.

Example 2: Regular pentagon 5.0

Regular pentagon 5.0 presents the listener with speaker feeds
decoded for speakers positioned at FrontLeft, FrontRight,
FrontCentre, BackLeft, BackRight. The samples in a WAVE-EX
file must be interleaved in this order. The speakers feeds are
for speakers arranged in a regular pentagon with 72 degrees
between adjacent speakers.