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

> A guided tour of an ADM WAV file: what the chna track map and the axml scene description contain, how beds, objects and movement are stored, the mistakes that break real masters, and a free 7.1.4 player to see your own file.

Web page: https://spatial9.ai/blog/inside-an-adm-wav-file
Author: Spatial9 Team
Published: 2026-11-03. Updated: 2026-11-03.

## 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.

Short answer: an ADM WAV (ADM BWF or BW64) is a normal multichannel WAV with two extra chunks. The chna chunk is a small table that says which audio track belongs to which part of the scene. The axml chunk is an XML document, written in the Audio Definition Model (ITU-R BS.2076), that says what each part is: a speaker bed, a moving object or an ambisonic scene, and where it sits over time. Read both and you can rebuild the whole mix in a room.

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:

| Chunk | What it holds | Needed for ADM? |
| fmt | Sample rate, bit depth, channel count | Yes |
| data | The audio, one interleaved track per channel | Yes |
| chna | The track map: track number to ADM IDs | Yes |
| axml | The scene description as XML | Yes |
| ds64 | 64-bit sizes for files over 4 GB | Only for large files |
| bext | Broadcast WAV description and timecode | Optional |
| dbmd | Dolby-specific metadata | Optional, 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:

| Field | Size | Example |
| Track index | 2 bytes | 3 |
| Audio track UID | 12 characters | ATU_00000003 |
| Track format reference | 14 characters | AT_00031001_01 |
| Pack format reference | 11 characters | AP_00031001 |
| Padding | 1 byte | 0 |

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:

| Element | Role |
| audioProgramme | The whole programme, with its name and loudness |
| audioContent | A part of it, such as dialogue or music |
| audioObject | A playable group of tracks, with a start time |
| audioPackFormat | The type and layout of a group of channels |
| audioChannelFormat | One channel and its description over time |
| audioBlockFormat | A time slice of that channel: position, gain, size |
| audioTrackUID | The 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:

```xml
<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:

- Azimuth is positive to the left. In ADM polar coordinates, +90 is hard left and -90 is hard right. Tools that assume the opposite will mirror the whole mix.
- Blocks interpolate. By default the renderer glides from the previous position to the new one across the block. Setting jumpPosition to 1 makes it jump instead, or glide over a shorter interpolationLength.
- Two coordinate systems exist. Polar positions use azimuth, elevation and distance. Cartesian positions use X, Y and Z between -1 and 1, describing a point in the room rather than a direction. Dolby Atmos masters use the cartesian form.

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:

- 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.
- Objects with no positions. An object exists but has no usable audioBlockFormat, so every renderer guesses where it goes.
- Overlapping blocks. A block starts before the previous one ends, and renderers disagree on what to do.
- 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.
- 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?


## 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

- ITU-R BS.2076: Audio Definition Model, International Telecommunication Union.
- ITU-R BS.2088: Long-form file format for the international exchange of audio programme materials with metadata (BW64), International Telecommunication Union.
- ITU-R BS.2094: Common definitions for the Audio Definition Model, International Telecommunication Union.
- ITU-R BS.2051: Advanced sound system for programme production, International Telecommunication Union.
- ITU-R BS.2127: Audio Definition Model renderer for advanced sound systems, International Telecommunication Union.
- 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.

