Broadcast Wave (BWF)

Broadcast Wave is an ordinary WAV file with one extra block of information: what the recording is, who made it, when — and exactly where it belongs on the timeline. Most DAW recordings you have are already Broadcast Wave files.

What it is

The Broadcast Wave Format (BWF) was defined by the European Broadcasting Union in 1997 (EBU Tech 3285) so broadcasters could exchange audio files together with the information needed to use them. It adds a bext (broadcast extension) chunk to a regular WAV file:

Because it's still a WAV file — same .wav extension, same audio — every program that plays WAV plays Broadcast Wave. Programs that don't know about bext simply skip it. Pro Tools records Broadcast Wave files, and so do most field recorders and many other DAWs.

The fields

FieldSizeContains
Description256 charsFree text describing the content.
Originator32 charsThe person, organization or device that created the file — often the DAW or recorder model.
Originator reference32 charsA reference that identifies the file uniquely, chosen by the originator.
Origination date10 charsDate of creation, YYYY-MM-DD.
Origination time8 charsTime of creation, HH:MM:SS.
Time reference64-bit numberWhere the first sample belongs on the timeline, in samples since midnight.
Versionnumber0, 1 or 2 — which edition of the spec the chunk follows.
UMID64 bytesUnique Material Identifier (version 1 and later).
Loudness5 valuesIntegrated loudness, loudness range, max true peak, max momentary and max short-term loudness (version 2).
Coding historyany lengthHow the audio was produced, one line per step.

The text fields have fixed sizes and use plain Western (ASCII / Latin-1) characters. Longer text is cut off, and characters such as emoji or non-Latin scripts can't be stored.

The time reference

The most important field for studio work is one you rarely see: the time reference. It records where the file's first sample sits on the timeline, as a number of samples counted from midnight (00:00:00).

Example A Pro Tools session starts at timecode 01:00:00:00 and runs at 48 kHz. You record a vocal starting at 01:02:30:00 — 1 hour, 2 minutes and 30 seconds after midnight = 3,750 seconds. The file's time reference is 3,750 × 48,000 = 180,000,000 samples.

This is how a clip finds its way back to the right place:

The time reference only makes sense together with the sample rate: the same number means a different time at 44.1 kHz than at 48 kHz.

Easily lost Many converters and editors write a new WAV file without the bext chunk — and the time reference is gone. The clip still plays, but no longer knows where it belongs. The StudioTools Media Manager keeps the chunk when converting files to mono, and never changes the time reference when editing metadata.

Coding history

The coding history is a small log: one line for each step the audio went through — recording, conversion, processing. Each line is a comma-separated list of codes defined in EBU R 98:

A=PCM,F=48000,W=24,M=stereo,T=Pro Tools
A=PCM,F=48000,W=24,M=mono,T=StudioTools Media Manager
A=
Coding algorithm — PCM for uncompressed audio, or e.g. ANALOGUE for a tape source.
F=
Sample rate in Hz.
W=
Word length (bit depth).
M=
Mode — mono, stereo, …
T=
Free text: the device or software, settings, notes.

Archives and broadcasters use the coding history to trace a file's origin. The Media Manager adds a line like the second one above when it converts a file to mono (this can be turned off).

Versions

Version 0 (1997)
Description, originator, dates, time reference, coding history.
Version 1 (2001)
Adds the UMID.
Version 2 (2011)
Adds the five loudness fields.

Newer versions only fill in space that was reserved in older ones, so all versions are read by the same programs.

UMID

The Unique Material Identifier (SMPTE 330M) is a globally unique ID for a piece of material, used by broadcast asset management systems to track it across copies and edits. Most music workflows leave it empty.

Loudness fields

Version 2 stores the result of an EBU R128 loudness measurement in the file — integrated loudness (LUFS), loudness range (LU), maximum true peak (dBTP), maximum momentary and maximum short-term loudness. A file can then prove it meets a delivery specification without being measured again. Values are stored to 0.01; unused fields are marked as "not set". Loudness explained →

iXML
An XML chunk for production sound: project, scene, take, tape, track names, timecode rate and more. Written by professional field recorders and read by post-production tools.
cart
A chunk for radio automation (AES46): title, artist, cue and timer points for playout systems.
RF64 / BW64
WAV variants without the 4 GB size limit. They can carry a bext chunk just like WAV.
ADM (axml, chna)
The Audio Definition Model (ITU-R BS.2076) describes object-based and immersive audio, such as Dolby Atmos masters in BW64 files.

Broadcast Wave in StudioTools

Further reading