A translucent WAV file opened in layers, showing a glowing XML tree, a track table and a wireframe room with moving sound objects around a listener

Inside an ADM WAV File: chna, axml and How Objects Move

Spatial9 Team · · 7 min read

Key takeaways

  • An ADM WAV is an ordinary multichannel WAV plus two chunks: chna, the track map, and axml, the scene description defined by ITU-R BS.2076.
  • Each chna entry links one audio track to an audioTrackUID, a track format and a pack format. Without it, the XML cannot be tied to the audio.
  • Beds are DirectSpeakers channels with fixed speaker labels such as M+030; objects are channels whose audioBlockFormats give a position for each slice of time.
  • In ADM polar coordinates, positive azimuth is to the left. Getting this wrong mirrors the mix.
  • The free Spatial9 inspector checks chna and axml for mismatches and shows beds and objects moving live in a 7.1.4 player on your device.

This is a guided tour of one file, chunk by chunk. If you only need the overview, start with our guide to ADM BWF files. If you want to see your own master come apart the same way, drop it into the inspector at the end of this page and open the 7.1.4 player.

The file at a glance

An ADM WAV is a RIFF file, like any WAV. ITU-R BS.2088 defines the BW64 version, which adds a ds64 chunk so files can grow beyond 4 GB. Inside, you will usually find these chunks:

ChunkWhat it holdsNeeded for ADM?
fmtSample rate, bit depth, channel countYes
dataThe audio, one interleaved track per channelYes
chnaThe track map: track number to ADM IDsYes
axmlThe scene description as XMLYes
ds6464-bit sizes for files over 4 GBOnly for large files
bextBroadcast WAV description and timecodeOptional
dbmdDolby-specific metadataOptional, Dolby tools

The audio in the data chunk is just tracks. Nothing in it says "this is the helicopter". That knowledge lives only in chna and axml, which is why a file that loses those chunks during an edit becomes an ordinary multichannel WAV.

chna: the track map

The chna chunk is binary and compact. It starts with two 16-bit numbers, the number of tracks and the number of entries, then lists one 40-byte entry per track:

FieldSizeExample
Track index2 bytes3
Audio track UID12 charactersATU_00000003
Track format reference14 charactersAT_00031001_01
Pack format reference11 charactersAP_00031001
Padding1 byte0

Track indexes start at 1. So the entry above says: track 3 in the data chunk is audio track ATU_00000003, its format is AT_00031001_01, and it belongs to the pack AP_00031001. The IDs follow a pattern. The four digits after the prefix give the type: 0001 for DirectSpeakers, 0002 for Matrix, 0003 for Objects, 0004 for HOA (ambisonics) and 0005 for Binaural.

axml: the scene description

The axml chunk holds XML, usually wrapped in an EBU Core document. ADM describes a mix as a chain of linked elements:

ElementRole
audioProgrammeThe whole programme, with its name and loudness
audioContentA part of it, such as dialogue or music
audioObjectA playable group of tracks, with a start time
audioPackFormatThe type and layout of a group of channels
audioChannelFormatOne channel and its description over time
audioBlockFormatA time slice of that channel: position, gain, size
audioTrackUIDThe bridge from chna to the XML

To go from audio to meaning, a reader follows the links. The chna entry gives an audioTrackUID. In the current version of BS.2076, that UID can point straight at an audioChannelFormat. In older files it points at an audioTrackFormat, which points at an audioStreamFormat, which points at the audioChannelFormat. The audioObject that lists the UID supplies the start time and the name.

Beds: channels with a fixed place

A bed is a set of DirectSpeakers channels. Each channel has one audioBlockFormat with a speaker label and a fixed position. Labels use the BS.2051 naming scheme: M+030 is the front left speaker at ear level, M-030 front right, U+030 the upper front left height speaker, and so on. The letter gives the layer (B for bottom, M for middle, U for upper, T for top) and the number gives the azimuth in degrees.

Many files do not spell the bed out at all. They refer to the common definitions in ITU-R BS.2094 instead. AC_00010001 always means the front left channel, AC_00010004 always means the LFE, and a reader is expected to know the table. A good reader has that table built in.

Objects: positions that change over time

An object is an Objects-type channel with a list of audioBlockFormats. Each block has a start time (rtime), a duration and a position. Here is a short object that starts in front of the listener and moves to the right over one second:

<audioChannelFormat audioChannelFormatID="AC_00031001" audioChannelFormatName="Car" typeDefinition="Objects">
  <audioBlockFormat audioBlockFormatID="AB_00031001_00000001" rtime="00:00:00.00000" duration="00:00:01.00000">
    <position coordinate="azimuth">0</position>
    <position coordinate="elevation">0</position>
    <position coordinate="distance">1</position>
  </audioBlockFormat>
  <audioBlockFormat audioBlockFormatID="AB_00031001_00000002" rtime="00:00:01.00000" duration="00:00:01.00000">
    <position coordinate="azimuth">-90</position>
    <position coordinate="elevation">0</position>
    <position coordinate="distance">1</position>
  </audioBlockFormat>
</audioChannelFormat>

Three details trip people up:

Blocks can also carry gain, width, height and depth (the size of the object), diffuseness and screen-related flags.

Ambisonics and binaural tracks

HOA-type channels carry a scene-based recording rather than one sound per track. Each channel names its order and degree, which gives its place in the ACN channel order, and its normalisation, usually SN3D. Binaural-type channels are a ready-made headphone render: two tracks, left and right ear, that should never be sent to speakers.

What can go wrong in a real file

When we read ADM masters, these are the problems that come up most:

  1. chna and axml disagree. The XML mentions a track UID that has no entry in chna, or chna points at a track number the file does not have. That part of the mix cannot play.
  2. Objects with no positions. An object exists but has no usable audioBlockFormat, so every renderer guesses where it goes.
  3. Overlapping blocks. A block starts before the previous one ends, and renderers disagree on what to do.
  4. Out-of-range values. An azimuth beyond 180 degrees or a cartesian value above 1 gets clamped, which can move a sound without anyone noticing.
  5. Lost chunks. An editor that does not know ADM saves the WAV without chna and axml, and the scene is gone.

The inspector below checks every one of these and lists what it finds in its notes.

See it in your own file

Drop an ADM WAV into the inspector, then select Open the 7.1.4 player. Beds light up their speakers, each object becomes a coloured dot that follows its blocks in time, and you can mute or solo any group to hear it alone. The optional quality check adds loudness, true peak and clipping per channel. All of it runs on your device; nothing is uploaded. For what the other results mean, see Is this file really immersive?

Spatial9 File Inspector and 7.1.4 Player

A free interactive tool that runs in your browser and never uploads your file. It reads WAV, BWF/ADM (RF64, BW64), W64, AIFF, CAF, FLAC, MP3, AAC, Ogg, Opus, MP4, MOV, MKV, WebM, IAMF, AC-3, E-AC-3, DTS, WMA, DSD and more, and reports:

  • Container, duration, sample rate and channel count
  • The declared speaker layout (WAVE_FORMAT_EXTENSIBLE channel mask)
  • ADM metadata (chna and axml chunks), audio objects and programme names
  • IAMF profile, codec, audio elements and mix presentations
  • 360 degree video and ambisonic audio metadata

ADM, Dolby and surround files open in a 7.1.4 player that shows beds and objects moving live, on headphones or 12 discrete outputs. Eclipsa Audio (IAMF) and ambisonic files open in a stereo versus binaural A/B player. Stereo, mono and video files get a plain explanation and the right next step. Full page: Try your current files. An optional quality check measures BS.1770 loudness, true peak, clipping, silence and DC offset, with a downloadable report.

It is a preview, not a reference monitor, and it cannot guarantee platform playback.

Frequently asked questions

Is an ADM WAV the same as a Dolby Atmos master?

A Dolby Atmos master file is one kind of ADM BWF, written with Dolby's profile of the model. Many other tools, such as broadcast and open renderers, write ADM too. The format is an open ITU standard, not a Dolby format.

Can I open an ADM WAV in any audio editor?

Most editors can play the tracks, because the audio is ordinary PCM. Few understand chna and axml. If you edit and re-save the file in such a tool, check afterwards that both chunks are still there.

Why does my ADM file have more tracks than speakers?

Objects are not speakers. A 7.1.4 bed uses 12 tracks, and each object adds one more. The renderer decides at playback how each object is shared across the speakers that are actually present.

Can an ADM master become Eclipsa Audio?

Yes. The beds and objects can be rendered to the channel and scene layouts that IAMF supports. See how to convert Dolby Atmos to Eclipsa Audio.

Sources

  1. ITU-R BS.2076: Audio Definition Model, International Telecommunication Union.
  2. ITU-R BS.2088: Long-form file format for the international exchange of audio programme materials with metadata (BW64), International Telecommunication Union.
  3. ITU-R BS.2094: Common definitions for the Audio Definition Model, International Telecommunication Union.
  4. ITU-R BS.2051: Advanced sound system for programme production, International Telecommunication Union.
  5. ITU-R BS.2127: Audio Definition Model renderer for advanced sound systems, International Telecommunication Union.
  6. EBU ADM guidelines: BW64 and ADM, European Broadcasting Union.

From ADM to every screen

Once you can read an ADM master, you can move it anywhere. Spatial9 turns ADM masters and stereo tracks into Eclipsa Audio for YouTube, TVs and soundbars.

Dolby and Dolby Atmos are trademarks of Dolby Laboratories. Spatial9 is not affiliated with or endorsed by Dolby Laboratories.

Try Spatial9 free