bext chunk
The broadcast extension chunk turns a WAV file into a Broadcast Wave Format file, the European Broadcasting Union’s standard for exchanging audio in radio and television (EBU Tech 3285). It records who made the audio, when, where it sits in time and how loud it is.
Fields
Text fields are ASCII, padded with NULs. Offsets are from the start of the chunk’s data. The fixed part is 602 bytes.
| Offset | Size | Type | Name | Description |
|---|---|---|---|---|
| 0 | 256 | char[256] | Description | a free text description of the audio |
| 256 | 32 | char[32] | Originator | the organisation or person that made it |
| 288 | 32 | char[32] | OriginatorReference | a unique reference given by the originator |
| 320 | 10 | char[10] | OriginationDate | the date, as yyyy-mm-dd |
| 330 | 8 | char[8] | OriginationTime | the time, as hh-mm-ss |
| 338 | 8 | u64 | TimeReference | the first sample’s position, as a count of samples since midnight |
| 346 | 2 | u16 | Version | 0, 1 (adds the UMID) or 2 (adds the loudness values) |
| 348 | 64 | bytes | UMID | a SMPTE unique material identifier, version 1 and later |
| 412 | 2 | i16 | LoudnessValue | integrated loudness in LUFS × 100, version 2 |
| 414 | 2 | i16 | LoudnessRange | loudness range in LU × 100, version 2 |
| 416 | 2 | i16 | MaxTruePeakLevel | maximum true peak in dBTP × 100, version 2 |
| 418 | 2 | i16 | MaxMomentaryLoudness | highest momentary loudness in LUFS × 100, version 2 |
| 420 | 2 | i16 | MaxShortTermLoudness | highest short-term loudness in LUFS × 100, version 2 |
| 422 | 180 | bytes | Reserved | zeros |
| 602 | varies | char[] | CodingHistory | lines of text recording each step the audio went through |
Time reference
TimeReference places the recording on a clock. Divide it by the sample
rate to get seconds since midnight. Editors use it to line up files recorded at the same
time on different machines. It is stored as two 32-bit halves, low then high, which
together read as one little-endian 64-bit number.
Coding history
Each line of CodingHistory describes one stage, as comma-separated
values such as the coding algorithm (A=PCM), the sample rate
(F=48000), the word length (W=24) and the mode
(M=stereo), ending in a carriage return and line feed.