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
| Field | Size | Contains |
|---|---|---|
| Description | 256 chars | Free text describing the content. |
| Originator | 32 chars | The person, organization or device that created the file — often the DAW or recorder model. |
| Originator reference | 32 chars | A reference that identifies the file uniquely, chosen by the originator. |
| Origination date | 10 chars | Date of creation, YYYY-MM-DD. |
| Origination time | 8 chars | Time of creation, HH:MM:SS. |
| Time reference | 64-bit number | Where the first sample belongs on the timeline, in samples since midnight. |
| Version | number | 0, 1 or 2 — which edition of the spec the chunk follows. |
| UMID | 64 bytes | Unique Material Identifier (version 1 and later). |
| Loudness | 5 values | Integrated loudness, loudness range, max true peak, max momentary and max short-term loudness (version 2). |
| Coding history | any length | How 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).
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:
- In Pro Tools, Spot mode can move a clip to its original time stamp — read from the time reference.
- When files from one session are imported into another (or sent to a mixer), they can be placed exactly where they were recorded.
- Field recorders write the time of day, so recordings from several devices line up.
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.
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 —
PCMfor uncompressed audio, or e.g.ANALOGUEfor 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 →
Related chunks and formats
- 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
bextchunk 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
- View and edit the text fields, and add Broadcast Wave metadata to plain WAV files — Metadata.
- Store loudness in version 2 fields — Loudness.
- See the time reference as "starts at" in the preview — Preview.
- Convert dual-mono files without losing the chunk — Dual mono.
Further reading
- EBU Tech 3285 — Specification of the Broadcast Wave Format
- EBU R 98 — Format for the CodingHistory field
- EBU Tech 3306 — RF64; ITU-R BS.2088 — BW64