WRIDs
A WRID is intended to be a stable reference to a specific metadata element, including which chunk it is from.
ex: chunk>chunk>chunk>inner/data
- Chunks are separated by
>
characters, with chunks on the left containing chunks on the right. - If the chunk's data format itself supports heirarchies of data (XML, JSON, etc) then
/
is used as the separator.
NOTE: WRIDs can contain whitespace, because chunk ids themselves are technically binary and several common chunks use a space (ASCII 32) as part of the chunk id.
TODO: write detailed WRID spec and reference here.
All WRIDs
This is a list of all WRIDs defined in this book:
Chunk | Group | Name | Name as Specified | Bytes | Type | Type as Specified | condition | Description | WRID | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RIFF-WAVE | id |
ckID | 4 |
u8[4] |
FOURCC |
id = RIFF
|
WRID>RIFF-WAVE>id | ||||||||||||||||||
RIFF-WAVE | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>size | ||||||||||||||||||
RIFF-WAVE | form_type |
formType | 4 |
u8[4] |
FOURCC |
form_type = WAVE
|
WRID>RIFF-WAVE>form_type | ||||||||||||||||||
data | id |
ckID | 4 |
u8[4] |
FOURCC |
id = data
|
WRID>RIFF-WAVE>data>id | ||||||||||||||||||
data | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>data>size | ||||||||||||||||||
data | data |
ckData | size |
u8[size] |
ckData[ckSize] |
|
WRID>RIFF-WAVE>data>data | ||||||||||||||||||
LIST-INFO | id |
ckID | 4 |
u8[4] |
FOURCC |
id = LIST
|
WRID>RIFF-WAVE>LIST-INFO>id | ||||||||||||||||||
LIST-INFO | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>size | ||||||||||||||||||
LIST-INFO | list_type |
(text) | 4 |
u8[4] |
FOURCC |
list_type = INFO
|
WRID>RIFF-WAVE>LIST-INFO>list_type | ||||||||||||||||||
IARL | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IARL
|
WRID>RIFF-WAVE>LIST-INFO>IARL>id | ||||||||||||||||||
IARL | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IARL>size | ||||||||||||||||||
IARL | text |
(text) | size |
ZSTR |
ZSTR |
|
Archival Location. Indicates where the subject of the file is archived. | WRID>RIFF-WAVE>LIST-INFO>IARL>text | |||||||||||||||||
IGNR | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IGNR
|
WRID>RIFF-WAVE>LIST-INFO>IGNR>id | ||||||||||||||||||
IGNR | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IGNR>size | ||||||||||||||||||
IGNR | text |
(text) | size |
ZSTR |
ZSTR |
|
Genre. Describes the original work, such as "landscape", "portrait", "still life", etc. | WRID>RIFF-WAVE>LIST-INFO>IGNR>text | |||||||||||||||||
IKEY | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IKEY
|
WRID>RIFF-WAVE>LIST-INFO>IKEY>id | ||||||||||||||||||
IKEY | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IKEY>size | ||||||||||||||||||
IKEY | text |
(text) | size |
ZSTR |
ZSTR |
|
Keywords. Provides a list of keywords that refer to the file or subject of the file. Separate multiple keywords with a semicolon and a blank. For example, "Seattle; aerial view; scenery". | WRID>RIFF-WAVE>LIST-INFO>IKEY>text | |||||||||||||||||
ILGT | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ILGT
|
WRID>RIFF-WAVE>LIST-INFO>ILGT>id | ||||||||||||||||||
ILGT | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ILGT>size | ||||||||||||||||||
ILGT | text |
(text) | size |
ZSTR |
ZSTR |
|
Lightness. Describes the changes in lightness settings on the digitizer required to produce the file. Note that the format of this information depends on hardware used. | WRID>RIFF-WAVE>LIST-INFO>ILGT>text | |||||||||||||||||
IMED | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IMED
|
WRID>RIFF-WAVE>LIST-INFO>IMED>id | ||||||||||||||||||
IMED | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IMED>size | ||||||||||||||||||
IMED | text |
(text) | size |
ZSTR |
ZSTR |
|
Medium. Describes the original subject of the file, such as "computer image", "drawing", "lithograph", and so forth. | WRID>RIFF-WAVE>LIST-INFO>IMED>text | |||||||||||||||||
INAM | id |
ckID | 4 |
u8[4] |
FOURCC |
id = INAM
|
WRID>RIFF-WAVE>LIST-INFO>INAM>id | ||||||||||||||||||
INAM | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>INAM>size | ||||||||||||||||||
INAM | text |
(text) | size |
ZSTR |
ZSTR |
|
Name. Stores the title of the subject of the file, such as "Seattle From Above". | WRID>RIFF-WAVE>LIST-INFO>INAM>text | |||||||||||||||||
IPLT | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IPLT
|
WRID>RIFF-WAVE>LIST-INFO>IPLT>id | ||||||||||||||||||
IPLT | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IPLT>size | ||||||||||||||||||
IPLT | text |
(text) | size |
ZSTR |
ZSTR |
|
Palette Setting. Specifies the number of colors requested when digitizing an image, such as "256". | WRID>RIFF-WAVE>LIST-INFO>IPLT>text | |||||||||||||||||
IPRD | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IPRD
|
WRID>RIFF-WAVE>LIST-INFO>IPRD>id | ||||||||||||||||||
IPRD | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IPRD>size | ||||||||||||||||||
IPRD | text |
(text) | size |
ZSTR |
ZSTR |
|
Product. Specifies the name of the title the file was originally intended for, such as "Encyclopedia of Pacific Northwest Geography". | WRID>RIFF-WAVE>LIST-INFO>IPRD>text | |||||||||||||||||
ISBJ | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ISBJ
|
WRID>RIFF-WAVE>LIST-INFO>ISBJ>id | ||||||||||||||||||
ISBJ | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ISBJ>size | ||||||||||||||||||
ISBJ | text |
(text) | size |
ZSTR |
ZSTR |
|
Subject. Describes the contents of the file, such as "Aerial view of Seattle". | WRID>RIFF-WAVE>LIST-INFO>ISBJ>text | |||||||||||||||||
ISFT | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ISFT
|
WRID>RIFF-WAVE>LIST-INFO>ISFT>id | ||||||||||||||||||
ISFT | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ISFT>size | ||||||||||||||||||
ISFT | text |
(text) | size |
ZSTR |
ZSTR |
|
Software. Identifies the name of the software package used to create the file, such as "Microsoft WaveEdit". | WRID>RIFF-WAVE>LIST-INFO>ISFT>text | |||||||||||||||||
ISHP | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ISHP
|
WRID>RIFF-WAVE>LIST-INFO>ISHP>id | ||||||||||||||||||
ISHP | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ISHP>size | ||||||||||||||||||
ISHP | text |
(text) | size |
ZSTR |
ZSTR |
|
Sharpness. Identifies the changes in sharpness for the digitizer required to produce the file (the format depends on the hardware used). | WRID>RIFF-WAVE>LIST-INFO>ISHP>text | |||||||||||||||||
IART | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IART
|
WRID>RIFF-WAVE>LIST-INFO>IART>id | ||||||||||||||||||
IART | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IART>size | ||||||||||||||||||
IART | text |
(text) | size |
ZSTR |
ZSTR |
|
Artist. Lists the artist of the original subject of the file. For example, "Michaelangelo". | WRID>RIFF-WAVE>LIST-INFO>IART>text | |||||||||||||||||
ISRC | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ISRC
|
WRID>RIFF-WAVE>LIST-INFO>ISRC>id | ||||||||||||||||||
ISRC | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ISRC>size | ||||||||||||||||||
ISRC | text |
(text) | size |
ZSTR |
ZSTR |
|
Source. Identifies the name of the person or organization who supplied the original subject of the file. For example, "Trey Research". | WRID>RIFF-WAVE>LIST-INFO>ISRC>text | |||||||||||||||||
ISRF | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ISRF
|
WRID>RIFF-WAVE>LIST-INFO>ISRF>id | ||||||||||||||||||
ISRF | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ISRF>size | ||||||||||||||||||
ISRF | text |
(text) | size |
ZSTR |
ZSTR |
|
Source Form. Identifies the original form of the material that was digitized, such as "slide", "paper", "map", and so forth. This is not necessarily the same as IMED. | WRID>RIFF-WAVE>LIST-INFO>ISRF>text | |||||||||||||||||
ITCH | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ITCH
|
WRID>RIFF-WAVE>LIST-INFO>ITCH>id | ||||||||||||||||||
ITCH | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ITCH>size | ||||||||||||||||||
ITCH | text |
(text) | size |
ZSTR |
ZSTR |
|
Technician. Identifies the technician who digitized the subject file. For example, "Smith, John." | WRID>RIFF-WAVE>LIST-INFO>ITCH>text | |||||||||||||||||
ICMS | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ICMS
|
WRID>RIFF-WAVE>LIST-INFO>ICMS>id | ||||||||||||||||||
ICMS | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ICMS>size | ||||||||||||||||||
ICMS | text |
(text) | size |
ZSTR |
ZSTR |
|
Commissioned. Lists the name of the person or organization that commissioned the subject of the file. For example, "Pope Julian II". | WRID>RIFF-WAVE>LIST-INFO>ICMS>text | |||||||||||||||||
ICMT | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ICMT
|
WRID>RIFF-WAVE>LIST-INFO>ICMT>id | ||||||||||||||||||
ICMT | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ICMT>size | ||||||||||||||||||
ICMT | text |
(text) | size |
ZSTR |
ZSTR |
|
Comments. Provides general comments about the file or the subject of the file. If the comment is several sentences long, end each sentence with a period. Do not include newline characters. | WRID>RIFF-WAVE>LIST-INFO>ICMT>text | |||||||||||||||||
ICOP | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ICOP
|
WRID>RIFF-WAVE>LIST-INFO>ICOP>id | ||||||||||||||||||
ICOP | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ICOP>size | ||||||||||||||||||
ICOP | text |
(text) | size |
ZSTR |
ZSTR |
|
Copyright. Records the copyright information for the file. For example, "Copyright Encyclopedia International 1991." If there are multiple copyrights, separate them by a semicolon followed by a space. | WRID>RIFF-WAVE>LIST-INFO>ICOP>text | |||||||||||||||||
ICRD | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ICRD
|
WRID>RIFF-WAVE>LIST-INFO>ICRD>id | ||||||||||||||||||
ICRD | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ICRD>size | ||||||||||||||||||
ICRD | text |
(text) | size |
ZSTR |
ZSTR |
|
Creation date. Specifies the date the subject of the file was created. List dates in year-month-day format, padding one-digit months and days with a zero on the left. For example, "1553-05-03" for May 3, 1553. | WRID>RIFF-WAVE>LIST-INFO>ICRD>text | |||||||||||||||||
ICRP | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ICRP
|
WRID>RIFF-WAVE>LIST-INFO>ICRP>id | ||||||||||||||||||
ICRP | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ICRP>size | ||||||||||||||||||
ICRP | text |
(text) | size |
ZSTR |
ZSTR |
|
Cropped. Describes whether an image has been cropped and, if so, how it was cropped. For example, "lower right corner". IDIM Dimensions. Specifies the size of the original subject of the file. For example, "8.5 in h, 11 in w". | WRID>RIFF-WAVE>LIST-INFO>ICRP>text | |||||||||||||||||
IDPI | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IDPI
|
WRID>RIFF-WAVE>LIST-INFO>IDPI>id | ||||||||||||||||||
IDPI | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IDPI>size | ||||||||||||||||||
IDPI | text |
(text) | size |
ZSTR |
ZSTR |
|
Dots Per Inch. Stores dots per inch setting of the digitizer used to produce the file, such as "300". | WRID>RIFF-WAVE>LIST-INFO>IDPI>text | |||||||||||||||||
IENG | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IENG
|
WRID>RIFF-WAVE>LIST-INFO>IENG>id | ||||||||||||||||||
IENG | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IENG>size | ||||||||||||||||||
IENG | text |
(text) | size |
ZSTR |
ZSTR |
|
Engineer. Stores the name of the engineer who worked on the file. If there are multiple engineers, separate the names by a semicolon and a blank. For example, "Smith, John; Adams, Joe". | WRID>RIFF-WAVE>LIST-INFO>IENG>text | |||||||||||||||||
ISMP | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ISMP
|
WRID>RIFF-WAVE>LIST-INFO>ISMP>id | ||||||||||||||||||
ISMP | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>ISMP>size | ||||||||||||||||||
ISMP | text |
(text) | size |
ZSTR |
ZSTR |
|
SMPTE time code of digitization start point expressed as a NULL terminated text string "HH:MM:SS.FF". If performing MCI capture in AVICAP, this chunk will be automatically set based on the MCI start time. | WRID>RIFF-WAVE>LIST-INFO>ISMP>text | |||||||||||||||||
IDIT | id |
ckID | 4 |
u8[4] |
FOURCC |
id = IDIT
|
WRID>RIFF-WAVE>LIST-INFO>IDIT>id | ||||||||||||||||||
IDIT | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-INFO>IDIT>size | ||||||||||||||||||
IDIT | text |
(text) | size |
ZSTR |
ZSTR |
|
Digitization Time. Specifies the time and date that digitization commenced. The digitization time is contained in an ASCII string which contains exactly 26 characters and is in the format "Wed Jan 02 02:03:55 1990\n\0". The ctime(), asctime(), functions can be used to create strings in this format. This chunk is automatically added to the capture file based on the current system time at the moment capture is initiated. | WRID>RIFF-WAVE>LIST-INFO>IDIT>text | |||||||||||||||||
CSET | id |
ckID | 4 |
u8[4] |
FOURCC |
id = CSET
|
WRID>RIFF-WAVE>CSET>id | ||||||||||||||||||
CSET | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>CSET>size | ||||||||||||||||||
CSET | code_page |
wCodePage | 2 |
u16 |
WORD |
|
Specifies the code page used for file elements. If the CSET chunk is not present, or if this field has value zero, assume standard ISO 8859/1 code page (identical to code page 1004 without code points defined in hex columns 0, 1, 8, and 9). | WRID>RIFF-WAVE>CSET>code_page | |||||||||||||||||
CSET | country_code |
wCountryCode | 2 |
u16 |
WORD |
|
Specifies the country code used for file elements. See “ Country Codes,” following this section, for a list of currently defined country codes. If the CSET chunk is not present, or if this field has value zero, assume USA (country code 001). | WRID>RIFF-WAVE>CSET>country_code | |||||||||||||||||
CSET | language |
wLanguage | 2 |
u16 |
WORD |
|
Specify the language and dialect used for file elements. See “Language and Dialect Codes,” later in this chapter, for a list of language and dialect codes. If the CSET chunk is not present, or if these fields have value zero, assume US English (language code 9, dialect code 1). | WRID>RIFF-WAVE>CSET>language | |||||||||||||||||
CSET | dialect |
wDialect | 2 |
u16 |
WORD |
|
Specify the language and dialect used for file elements. See “Language and Dialect Codes,” later in this chapter, for a list of language and dialect codes. If the CSET chunk is not present, or if these fields have value zero, assume US English (language code 9, dialect code 1). | WRID>RIFF-WAVE>CSET>dialect | |||||||||||||||||
fact | id |
ckID | 4 |
u8[4] |
FOURCC |
id = fact
|
WRID>RIFF-WAVE>fact>id | ||||||||||||||||||
fact | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>fact>size | ||||||||||||||||||
fact | samples |
dwFileSize | 4 |
u32 |
DWORD |
|
Number of samples. RIFF1991 named this field dwFileSize, even though it's documented as "Number of samples" | WRID>RIFF-WAVE>fact>samples | |||||||||||||||||
cue | id |
ckID | 4 |
u8[4] |
FOURCC |
id = "cue "
|
WRID>RIFF-WAVE>cue>id | ||||||||||||||||||
cue | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>cue>size | ||||||||||||||||||
cue | cue_points |
dwCuePoints | 4 |
u32 |
DWORD |
|
Count of cue points. The number of times the cue-point struct repeats within this chunk. | WRID>RIFF-WAVE>cue>cue_points | |||||||||||||||||
cue | cue_point | name |
dwName | 4 |
u32 |
DWORD |
|
cue-point field: Specifies the cue point name. Each |
WRID>RIFF-WAVE>cue>name | ||||||||||||||||
cue | cue_point | position |
dwPostion | 4 |
u32 |
DWORD |
|
cue-point field: Specifies the sample position of the cue point. This is the sequential sample number within the play order. See plst chunk, for a discussion of the play order. |
WRID>RIFF-WAVE>cue>position | ||||||||||||||||
cue | cue_point | chunk_id |
fccChunk | 4 |
u8[4] |
FOURCC |
|
cue-point field: Specifies the name or chunk ID of the chunk containing the cue point. | WRID>RIFF-WAVE>cue>chunk_id | ||||||||||||||||
cue | cue_point | chunk_start |
dwChunkStart | 4 |
u32 |
DWORD |
|
cue-point field: Specifies the file position of the start of the chunk containing the cue point. This is a byte offset relative to the start of the data section of the ‘wavl’ LIST chunk. | WRID>RIFF-WAVE>cue>chunk_start | ||||||||||||||||
cue | cue_point | block_start |
dwBlockStart | 4 |
u32 |
DWORD |
|
cue-point field: Specifies the file position of the start of the block containing the position. This is a byte offset relative to the start of the data section of the ‘wavl’ LIST chunk. | WRID>RIFF-WAVE>cue>block_start | ||||||||||||||||
cue | cue_point | sample_offset |
dwSampleOffset | 4 |
u32 |
DWORD |
|
cue-point field: Specifies the sample offset of the cue point relative to the start of the block. | WRID>RIFF-WAVE>cue>sample_offset | ||||||||||||||||
plst | id |
ckID | 4 |
u8[4] |
FOURCC |
id = plst
|
WRID>RIFF-WAVE>plst>id | ||||||||||||||||||
plst | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>plst>size | ||||||||||||||||||
plst | segments |
dwSegments | 4 |
u32 |
DWORD |
|
Count of play segments. | WRID>RIFF-WAVE>plst>segments | |||||||||||||||||
plst | segment | name |
dwName | 4 |
u32 |
DWORD |
|
play-segment field: Specifies the cue point name. This value must match one of the names listed in the cue cue-point table. | WRID>RIFF-WAVE>plst>name | ||||||||||||||||
plst | segment | length |
dwLength | 4 |
u32 |
DWORD |
|
play-segment field: Specifies the length of the section in samples. | WRID>RIFF-WAVE>plst>length | ||||||||||||||||
plst | segment | loops |
dwLoops | 4 |
u32 |
DWORD |
|
play-segment field: Specifies the number of times to play the section. | WRID>RIFF-WAVE>plst>loops | ||||||||||||||||
JUNK | id |
ckID | 4 |
u8[4] |
FOURCC |
id = JUNK
|
WRID>RIFF-WAVE>JUNK>id | ||||||||||||||||||
JUNK | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>JUNK>size | ||||||||||||||||||
JUNK | padding |
padding | size |
u8[size] |
BYTE[ckSize] |
|
WRID>RIFF-WAVE>JUNK>padding | ||||||||||||||||||
PAD | id |
ckID | 4 |
u8[4] |
FOURCC |
id = PAD
|
WRID>RIFF-WAVE>PAD>id | ||||||||||||||||||
PAD | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>PAD>size | ||||||||||||||||||
PAD | padding |
padding | size |
u8[size] |
BYTE[ckSize] |
|
WRID>RIFF-WAVE>PAD>padding | ||||||||||||||||||
FLLR | id |
ckID | 4 |
u8[4] |
FOURCC |
id = FLLR
|
WRID>RIFF-WAVE>FLLR>id | ||||||||||||||||||
FLLR | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>FLLR>size | ||||||||||||||||||
FLLR | padding |
padding | size |
u8[size] |
BYTE[ckSize] |
|
WRID>RIFF-WAVE>FLLR>padding | ||||||||||||||||||
LIST-adtl | id |
ckID | 4 |
u8[4] |
FOURCC |
id = LIST
|
WRID>RIFF-WAVE>LIST-adtl>id | ||||||||||||||||||
LIST-adtl | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-adtl>size | ||||||||||||||||||
LIST-adtl | list_type |
list-type | 4 |
u8[4] |
FOURCC |
list_type = adtl
|
WRID>RIFF-WAVE>LIST-adtl>list_type | ||||||||||||||||||
labl | id |
ckID | 4 |
u8[4] |
FOURCC |
id = labl
|
The ‘labl’ chunk contains a label, or title, to associate with a cue point. | WRID>RIFF-WAVE>LIST-adtl>labl>id | |||||||||||||||||
labl | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-adtl>labl>size | ||||||||||||||||||
labl | name |
dwName | 4 |
u32 |
DWORD |
|
Specifies the cue point name. This value must match one of the names listed in the cue chunk' cue-point table. |
WRID>RIFF-WAVE>LIST-adtl>labl>name | |||||||||||||||||
labl | text |
data | size |
ZSTR |
ZSTR |
|
Specifies a NULL-terminated string containing a text label. | WRID>RIFF-WAVE>LIST-adtl>labl>text | |||||||||||||||||
note | id |
ckID | 4 |
u8[4] |
FOURCC |
id = note
|
The ‘note’ chunk contains comment text for a cue point | WRID>RIFF-WAVE>LIST-adtl>note>id | |||||||||||||||||
note | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-adtl>note>size | ||||||||||||||||||
note | name |
dwName | 4 |
u32 |
DWORD |
|
Specifies the cue point name. This value must match one of the names listed in the cue chunk' cue-point table. |
WRID>RIFF-WAVE>LIST-adtl>note>name | |||||||||||||||||
note | text |
data | size |
ZSTR |
ZSTR |
|
Specifies a NULL-terminated string containing comment text. | WRID>RIFF-WAVE>LIST-adtl>note>text | |||||||||||||||||
ltxt | id |
ckID | 4 |
u8[4] |
FOURCC |
id = ltxt
|
The “ ltxt” chunk contains text that is associated with a data segment of specific length | WRID>RIFF-WAVE>LIST-adtl>ltxt>id | |||||||||||||||||
ltxt | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-adtl>ltxt>size | ||||||||||||||||||
ltxt | name |
dwName | 4 |
u32 |
DWORD |
|
Specifies the cue point name. This value must match one of the names listed in the cue chunk' cue-point table. |
WRID>RIFF-WAVE>LIST-adtl>ltxt>name | |||||||||||||||||
ltxt | sample_length |
dwSampleLength | 4 |
u32 |
DWORD |
|
Specifies the number of samples in the segment of waveform data. | WRID>RIFF-WAVE>LIST-adtl>ltxt>sample_length | |||||||||||||||||
ltxt | purpose |
dwPurpose | 4 |
u32 |
DWORD |
|
Specifies the type or purpose of the text. For example, dwPurpose can specify a FOURCC code like 'scrp' for script text or 'capt' for close-caption text. | WRID>RIFF-WAVE>LIST-adtl>ltxt>purpose | |||||||||||||||||
ltxt | country_code |
wCountry | 2 |
u16 |
WORD |
|
Specifies the country code for the text. See "Country Codes" in CSET chunk, for a current list of country codes. |
WRID>RIFF-WAVE>LIST-adtl>ltxt>country_code | |||||||||||||||||
ltxt | language |
wLanguage | 2 |
u16 |
WORD |
|
Specify the language for the text. See "Language and Dialect Codes" in CSET chunk, for a current list of language and dialect codes. |
WRID>RIFF-WAVE>LIST-adtl>ltxt>language | |||||||||||||||||
ltxt | dialect |
wDialect | 2 |
u16 |
WORD |
|
Specify the dialect codes for the text. See "Language and Dialect Codes" in CSET chunk, for a current list of language and dialect codes. |
WRID>RIFF-WAVE>LIST-adtl>ltxt>dialect | |||||||||||||||||
ltxt | code_page |
wCodePage | 2 |
u16 |
WORD |
|
Specifies the code page for the text. See CSET chunk for details. |
WRID>RIFF-WAVE>LIST-adtl>ltxt>code_page | |||||||||||||||||
ltxt | text |
data | size-20 |
u8[size-20] |
BYTE[ckSize-20] |
|
WRID>RIFF-WAVE>LIST-adtl>ltxt>text | ||||||||||||||||||
file | id |
ckID | 4 |
u8[4] |
FOURCC |
id = file
|
The 'file' chunk contains information described in other file formats (for example, an 'RDIB' file or an ASCII text file). | WRID>RIFF-WAVE>LIST-adtl>file>id | |||||||||||||||||
file | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-adtl>file>size | ||||||||||||||||||
file | name |
dwName | 4 |
u32 |
DWORD |
|
Specifies the cue point name. This value must match one of the names listed in the cue chunk' cue-point table. |
WRID>RIFF-WAVE>LIST-adtl>file>name | |||||||||||||||||
file | media_type |
dwMedType | 4 |
DWORD |
DWORD |
|
Specifies the cue point name. This value must match one of the names listed in the |
WRID>RIFF-WAVE>LIST-adtl>file>media_type | |||||||||||||||||
file | file_data |
fileData | size-8 |
u8[size-8] |
BYTE[ckSize-8] |
|
Contains the media file. | WRID>RIFF-WAVE>LIST-adtl>file>file_data | |||||||||||||||||
md5 | id |
4 |
u8[4] |
id = "MD5 "
|
MD5 audio data checksum. | WRID>RIFF-WAVE>MD5 >id | |||||||||||||||||||
md5 | size |
4 |
u32 |
|
size is always 16 bytes. | WRID>RIFF-WAVE>MD5 >size | |||||||||||||||||||
md5 | md5 |
16 |
u128 |
|
MD5 checksum of the data chunk, not including the optional badding byte. | WRID>RIFF-WAVE>MD5 >name | |||||||||||||||||||
LIST-wavl | id |
ckID | 4 |
u8[4] |
FOURCC |
id = LIST
|
WRID>RIFF-WAVE>LIST-wavl>id | ||||||||||||||||||
LIST-wavl | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-wavl>size | ||||||||||||||||||
LIST-wavl | list_type |
list-type | 4 |
u8[4] |
FOURCC |
list_type = wavl
|
WRID>RIFF-WAVE>LIST-wavl>list_type | ||||||||||||||||||
slnt | id |
ckID | 4 |
u8[4] |
FOURCC |
id = slnt
|
The ‘slnt’ chunk represents silence, not necessarily a repeated zero volume or baseline sample. | WRID>RIFF-WAVE>LIST-wavl>slnt>id | |||||||||||||||||
slnt | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-wavl>slnt>size | ||||||||||||||||||
slnt | samples |
dwFileSize | 4 |
u32 |
DWORD |
|
Number of samples. | WRID>RIFF-WAVE>LIST-wavl>slnt>samples | |||||||||||||||||
data | id |
ckID | 4 |
u8[4] |
FOURCC |
id = data
|
This is the same as WRID>RIFF-WAVE>data, it can also be enclosed in this list type. | WRID>RIFF-WAVE>LIST-wavl>data>id | |||||||||||||||||
data | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>LIST-wavl>data>size | ||||||||||||||||||
data | data |
ckData | size |
u8[size] |
ckData[ckSize] |
|
WRID>RIFF-WAVE>LIST-wavl>data>data | ||||||||||||||||||
inst | id |
ckID | 4 |
u8[4] |
FOURCC |
id = "inst"
|
WRID>RIFF-WAVE>inst>id | ||||||||||||||||||
inst | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>inst>size | ||||||||||||||||||
inst | unshifted_note |
bUnshiftedNote | 1 |
u8 |
BYTE |
|
MIDI note number that corresponds to the unshifted pitch of the sample. Valid values range from 0 to 127. | WRID>RIFF-WAVE>inst>unshifted_note | |||||||||||||||||
inst | fine_tune |
chFineTune | 1 |
i8 |
CHAR |
|
Pitch shift adjustment in cents (or 100ths of a semitone) needed to hit unshifted_note value exactly. fine_tune can be used to compensate for tuning errors in the sampling process. Valid values range from -50 to 50. |
WRID>RIFF-WAVE>inst>fine_tune | |||||||||||||||||
inst | gain |
chGain | 1 |
i8 |
CHAR |
|
Suggested volume setting for the sample in decibels. A value of zero decibels suggests no change in the volume. A value of -6 decibels suggests reducing the amplitude of the sample by two. | WRID>RIFF-WAVE>inst>gain | |||||||||||||||||
inst | low_note |
bLowNote | 1 |
u8 |
BYTE |
|
Suggested usable MIDI note number range of the sample. Valid values range from 0 to 127. | WRID>RIFF-WAVE>inst>low_note | |||||||||||||||||
inst | high_note |
bHighNote | 1 |
u8 |
BYTE |
|
Suggested usable MIDI note number range of the sample. Valid values range from 0 to 127. | WRID>RIFF-WAVE>inst>high_note | |||||||||||||||||
inst | low_velocity |
bLowVelocity | 1 |
u8 |
BYTE |
|
Suggested usable MIDI velocity range of the sample. Valid values range from 0 to 127. | WRID>RIFF-WAVE>inst>low_velocity | |||||||||||||||||
inst | high_velocity |
bHighVelocity | 1 |
u8 |
BYTE |
|
Suggested usable MIDI velocity range of the sample. Valid values range from 0 to 127. | WRID>RIFF-WAVE>inst>high_velocity | |||||||||||||||||
smpl | id |
4 |
u8[4] |
FOURCC |
id = "smpl"
|
WRID>RIFF-WAVE>smpl>id | |||||||||||||||||||
smpl | size |
4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>smpl>size | |||||||||||||||||||
smpl | manufacturer |
dwManufacturer | 4 |
u32 |
DWORD |
|
Specifies the MMA Manufacturer code for the intended target device. The high byte indicates the number of low order bytes (1 or 3) that are valid for the manufacturer code. For example, this value will be 0x01000013 for Digidesign (the MMA Manufacturer code is one byte, 0x13); whereas 0x03000041 identifies Microsoft (the MMA Manufacturer code is three bytes, 0x00 0x00 0x41). If the sample is not intended for a specific manufacturer, then this field should be set to zero. | WRID>RIFF-WAVE>smpl>manufacturer | |||||||||||||||||
smpl | product |
dwProduct | 4 |
u32 |
DWORD |
|
Specifies the Product code of the intended target device for the manufacturer . If the sample is not intended for a specific manufacturer's product, then this field should be set to zero. |
WRID>RIFF-WAVE>smpl>product | |||||||||||||||||
smpl | sample_period |
dwSamplePeriod | 4 |
u32 |
DWORD |
|
Specifies the period of one sample in nanoseconds (normally 1/ samples_per_second from the WAVEFORMAT structure for the RIFF WAVE file -- however, this field allows fine tuning). For example, 44.1 kHz would be specified as 22675 (0x00005893). |
WRID>RIFF-WAVE>smpl>sample_period | |||||||||||||||||
smpl | midi_unity_note |
dwMIDIUnityNote | 4 |
u32 |
DWORD |
|
Specifies the MIDI note which will replay the sample at original pitch. This value ranges from 0 to 127 (a value of 60 represents Middle C as defined by the MMA). | WRID>RIFF-WAVE>smpl>midi_unity_note | |||||||||||||||||
smpl | midi_pitch_fraction |
dwMIDIPitchFraction | 4 |
u32 |
DWORD |
|
Specifies the fraction of a semitone up from the specified midi_unity_note . A value of 0x80000000 is 1/2 semitone (50 cents); a value of 0x00000000 represents no fine tuning between semitones. |
WRID>RIFF-WAVE>smpl>midi_pitch_fraction | |||||||||||||||||
smpl | smpte_format |
dwSMPTEFormat | 4 |
u32 |
DWORD |
|
Specifies the SMPTE time format used in the smpte_offset field. Possible values are (unrecognized formats should be ignored):
0 - specifies no SMPTE offset (smpte_offset should also be zero).
24 - specifies 24 frames per second.
25 - specifies 25 frames per second.
29 - specifies 30 frames per second with frame dropping ('30 drop').
30 - specifies 30 frames per second. |
WRID>RIFF-WAVE>smpl>smpte_format | |||||||||||||||||
smpl | smpte_offset |
dwSMPTEOffset | 4 |
u32 |
DWORD |
|
Specifies a time offset for the sample if it is to be syncronized or calibrated according to a start time other than 0. The format of this value is 0xhhmmssff. hh is a signed Hours value [-23..23]. mm is an unsigned Minutes value [0..59]. ss is unsigned Seconds value [0..59]. ff is an unsigned value [0..(smpte_format - 1)]. |
WRID>RIFF-WAVE>smpl>smpte_offset | |||||||||||||||||
smpl | sample_loop_count |
cSampleLoops | 4 |
u32 |
DWORD |
|
Specifies the number (count) of <sample-loop > records that are contained in the <smpl > chunk. The <sample-loop > records are stored immediately following the sampler_data field. |
WRID>RIFF-WAVE>smpl>sample_loop_count | |||||||||||||||||
smpl | sampler_data_size |
cbSamplerData | 4 |
u32 |
DWORD |
|
Specifies the size in bytes of the optional <sampler_data >. Sampler specific data is stored imediately following the <sample-loop > records. The sampler_data field will be zero if no extended sampler specific information is stored in the <smpl > chunk. |
WRID>RIFF-WAVE>smpl>sampler_data | |||||||||||||||||
smpl | sample_loop | identifier |
dwIdentifier | 4 |
u32 |
DWORD |
|
Identifies the unique 'name' of the loop. This field may correspond with a name stored in the <cue > chunk. The name data is stored in the <LIST-adtl > chunk. |
WRID>RIFF-WAVE>smpl>identifier | ||||||||||||||||
smpl | sample_loop | type |
dwType | 4 |
u32 |
DWORD |
|
Specifies the loop type: 0 - Loop forward (normal). 1 - Alternating loop (forward/backward). 2 - Loop backward. 3-31 - reserved for future standard types. 32-? - sampler specific types (manufacturer defined). | WRID>RIFF-WAVE>smpl>type | ||||||||||||||||
smpl | sample_loop | start |
dwStart | 4 |
u32 |
DWORD |
|
Specifies the startpoint of the loop in samples. | WRID>RIFF-WAVE>smpl>start | ||||||||||||||||
smpl | sample_loop | end |
dwEnd | 4 |
u32 |
DWORD |
|
Specifies the endpoint of the loop in samples (this sample will also be played). | WRID>RIFF-WAVE>smpl>end | ||||||||||||||||
smpl | sample_loop | fraction |
dwFraction | 4 |
u32 |
DWORD |
|
Allows fine-tuning for loop fractional areas between samples. Values range from 0x00000000 to 0xFFFFFFFF. A value of 0x80000000 represents 1/2 of a sample length. | WRID>RIFF-WAVE>smpl>fraction | ||||||||||||||||
smpl | sample_loop | play_count |
dwPlayCount | 4 |
u32 |
DWORD |
|
Specifies the number of times to play the loop. A value of 0 specifies an infinite sustain loop. | WRID>RIFF-WAVE>smpl>play_count | ||||||||||||||||
fmt | W_F_PCM | id |
ckID | 4 |
u8[4] |
FOURCC |
id = "fmt "
|
WRID>RIFF-WAVE>fmt >id | |||||||||||||||||
fmt | W_F_PCM | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>fmt >size | |||||||||||||||||
fmt | W_F_PCM | format_tag |
wFormatTag | 2 |
u16 |
WORD |
= 0x0001
|
A number indicating the WAVE format category of the file. The content of the |
WRID>RIFF-WAVE>fmt >format_tag | ||||||||||||||||
fmt | W_F_PCM | channels |
wChannels | 2 |
u16 |
WORD |
|
The number of channels represented in the waveform data, such as 1 for mono or 2 for stereo. | WRID>RIFF-WAVE>fmt >channels | ||||||||||||||||
fmt | W_F_PCM | samples_per_sec |
dwSamplesPerSec | 4 |
u32 |
DWORD |
|
The sampling rate (in samples per second) at which each channel should be played. | WRID>RIFF-WAVE>fmt >samples_per_sec | ||||||||||||||||
fmt | W_F_PCM | avg_bytes_per_sec |
dwAvgBytesPerSec | 4 |
u32 |
DWORD |
|
The average number of bytes per second at which the waveform data should be transferred. Playback software can estimate the buffer size using this value. | WRID>RIFF-WAVE>fmt >avg_bytes_per_sec | ||||||||||||||||
fmt | W_F_PCM | block_align |
wBlockAlign | 2 |
u16 |
WORD |
|
The block alignment (in bytes) of the waveform data. Playback software needs to process a multiple of block_align bytes of data at a time, so the value of block_align can be used for buffer alignment. The block_align field should be equal to the following formula, rounded to the next whole number: channels x ( bits_per_sample / 8 ) | WRID>RIFF-WAVE>fmt >block_align | ||||||||||||||||
fmt | W_F_PCM | bits_per_sample |
wBitsPerSample | 2 |
u16 |
WORD |
|
The bits_per_sample field specifies the number of bits of data used to represent each sample of each channel. If there are multiple channels, the sample size is the same for each channel. The block_align field should be equal to the following formula, rounded to the next whole number: channels x ( bits_per_sample / 8 ) | WRID>RIFF-WAVE>fmt >bits_per_sample | ||||||||||||||||
fmt | W_F_UNKNOWN | id |
ckID | 4 |
u8[4] |
FOURCC |
id = "fmt "
|
WRID>RIFF-WAVE>fmt >id | |||||||||||||||||
fmt | W_F_UNKNOWN | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>fmt >size | |||||||||||||||||
fmt | W_F_UNKNOWN | format_tag |
wFormatTag | 2 |
u16 |
WORD |
|
A number indicating the WAVE format category of the file. The content of the |
WRID>RIFF-WAVE>fmt >format_tag | ||||||||||||||||
fmt | W_F_UNKNOWN | channels |
wChannels | 2 |
u16 |
WORD |
|
The number of channels represented in the waveform data, such as 1 for mono or 2 for stereo. | WRID>RIFF-WAVE>fmt >channels | ||||||||||||||||
fmt | W_F_UNKNOWN | samples_per_sec |
dwSamplesPerSec | 4 |
u32 |
DWORD |
|
The sampling rate (in samples per second) at which each channel should be played. | WRID>RIFF-WAVE>fmt >samples_per_sec | ||||||||||||||||
fmt | W_F_UNKNOWN | avg_bytes_per_sec |
dwAvgBytesPerSec | 4 |
u32 |
DWORD |
|
The average number of bytes per second at which the waveform data should be transferred. Playback software can estimate the buffer size using this value. | WRID>RIFF-WAVE>fmt >avg_bytes_per_sec | ||||||||||||||||
fmt | W_F_UNKNOWN | block_align |
wBlockAlign | 2 |
u16 |
WORD |
|
The block alignment (in bytes) of the waveform data. Playback software needs to process a multiple of block_align bytes of data at a time, so the value of block_align can be used for buffer alignment. The block_align field should be equal to the following formula, rounded to the next whole number: channels x ( bits_per_sample / 8 ) | WRID>RIFF-WAVE>fmt >block_align | ||||||||||||||||
fmt | W_F_UNKNOWN | bits_per_sample |
wBitsPerSample | 2 |
u16 |
WORD |
|
The bits_per_sample field specifies the number of bits of data used to represent each sample of each channel. If there are multiple channels, the sample size is the same for each channel. The block_align field should be equal to the following formula, rounded to the next whole number: channels x ( bits_per_sample / 8 ) | WRID>RIFF-WAVE>fmt >bits_per_sample | ||||||||||||||||
fmt | W_F_UNKNOWN | extra_size |
cbSize | 2 |
u16 |
WORD |
|
The count in bytes of the extra extensible data. The size in bytes of the extra information in the WAVE format header not including the size of the WAVEFORMATEX structure. (size of fields from format_tag through extra_size inclusive (all fields except id , size and the extra_bytes )) |
WRID>RIFF-WAVE>fmt >extra_size | ||||||||||||||||
fmt | W_F_UNKNOWN | extra_bytes |
size-18 |
u8[size-18] |
WORD |
|
The extra information as bytes. For use when format_tag is unknown, so this portion can't be parsed deteriministically. |
WRID>RIFF-WAVE>fmt >extra_bytes | |||||||||||||||||
fmt | W_F_ADPCM | id |
ckID | 4 |
u8[4] |
FOURCC |
id = "fmt "
|
WRID>RIFF-WAVE>fmt >id | |||||||||||||||||
fmt | W_F_ADPCM | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>fmt >size | |||||||||||||||||
fmt | W_F_ADPCM | format_tag |
wFormatTag | 2 |
u16 |
WORD |
= 0x0002
|
A number indicating the WAVE format category of the file. The content of the |
WRID>RIFF-WAVE>fmt >format_tag | ||||||||||||||||
fmt | W_F_ADPCM | channels |
wChannels | 2 |
u16 |
WORD |
|
The number of channels represented in the waveform data, such as 1 for mono or 2 for stereo. | WRID>RIFF-WAVE>fmt >channels | ||||||||||||||||
fmt | W_F_ADPCM | samples_per_sec |
dwSamplesPerSec | 4 |
u32 |
DWORD |
|
Frequency of the sample rate of the wave file. This should be 11025, 22050, or 44100. Other sample rates are allowed, but not encouraged. | WRID>RIFF-WAVE>fmt >samples_per_sec | ||||||||||||||||
fmt | W_F_ADPCM | avg_bytes_per_sec |
dwAvgBytesPerSec | 4 |
u32 |
DWORD |
|
The average number of bytes per second at which the waveform data should be transferred. Playback software can estimate the buffer size using this value. ((samples_per_sec / samples_per_block) * block_align). | WRID>RIFF-WAVE>fmt >avg_bytes_per_sec | ||||||||||||||||
fmt | W_F_ADPCM | block_align |
wBlockAlign | 2 |
u16 |
WORD |
|
The block alignment (in bytes) of the waveform data. Playback software needs to process a multiple of block_align bytes of data at a time, so the value of block_align can be used for buffer alignment.
|
WRID>RIFF-WAVE>fmt >block_align | ||||||||||||||||
fmt | W_F_ADPCM | bits_per_sample |
wBitsPerSample | 2 |
u16 |
WORD |
|
This is the number of bits per sample of ADPCM. Currently only 4 bits per sample is defined. Other values are reserved. | WRID>RIFF-WAVE>fmt >bits_per_sample | ||||||||||||||||
fmt | W_F_ADPCM | extra_size |
cbSize | 2 |
u16 |
WORD |
|
The size in bytes of the extended information after the WAVEFORMATEX structure. For the standard WAVE_FORMAT_ADPCM using the standard seven coefficient pairs, this is 32. If extra coefficients are added, then this value will increase. | WRID>RIFF-WAVE>fmt >extra_size | ||||||||||||||||
fmt | W_F_ADPCM | samples_per_block |
nSamplesPerBlock | 2 |
u16 |
WORD |
|
Count of number of samples per block. (((block_align - (7 * channels)) * 8) / (bits_per_sample * channels)) + 2. | WRID>RIFF-WAVE>fmt >samples_per_block | ||||||||||||||||
fmt | W_F_ADPCM | coefficient_count |
nNumCoef | 2 |
u16 |
WORD |
|
Count of the number of coefficient sets defined in coefficients . |
WRID>RIFF-WAVE>fmt >coefficient_count | ||||||||||||||||
fmt | W_F_ADPCM | coefficients |
aCoeff | 4 * coef_count |
(i16, i16)[coef_count] |
aCoeff[wNumCoef] |
|
These are the coefficients used by the wave to play. They may be interpreted
as fixed point 8.8 signed values. Currently there are 7 preset coefficient sets.
They must appear in the following order.
Note that if even only 1 coefficient set was used to encode the file then all coefficient sets are still included. More coefficients may be added by the encoding software, but the first 7 must always be the same. |
WRID>RIFF-WAVE>fmt >coefficients | ||||||||||||||||
fmt | W_F_DVI_ADPCM | id |
ckID | 4 |
u8[4] |
FOURCC |
id = "fmt "
|
WRID>RIFF-WAVE>fmt >id | |||||||||||||||||
fmt | W_F_DVI_ADPCM | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>fmt >size | |||||||||||||||||
fmt | W_F_DVI_ADPCM | format_tag |
wFormatTag | 2 |
u16 |
WORD |
= 0x0011
|
A number indicating the WAVE format category of the file. The content of the |
WRID>RIFF-WAVE>fmt >format_tag | ||||||||||||||||
fmt | W_F_DVI_ADPCM | channels |
wChannels | 2 |
u16 |
WORD |
|
The number of channels represented in the waveform data, such as 1 for mono or 2 for stereo. | WRID>RIFF-WAVE>fmt >channels | ||||||||||||||||
fmt | W_F_DVI_ADPCM | samples_per_sec |
dwSamplesPerSec | 4 |
u32 |
DWORD |
|
Sample rate of the WAVE file. This should be 8000, 11025, 22050 or 44100. Other sample rates are allowed. | WRID>RIFF-WAVE>fmt >samples_per_sec | ||||||||||||||||
fmt | W_F_DVI_ADPCM | avg_bytes_per_sec |
dwAvgBytesPerSec | 4 |
u32 |
DWORD |
|
The average number of bytes per second at which the waveform data should be transferred. Playback software can estimate the buffer size using this value. ((samples_per_sec / samples_per_block) * block_align). | WRID>RIFF-WAVE>fmt >avg_bytes_per_sec | ||||||||||||||||
fmt | W_F_DVI_ADPCM | block_align |
wBlockAlign | 2 |
u16 |
WORD |
|
The block alignment (in bytes) of the waveform data. Playback software needs to process a multiple of wBlockAlign bytes of data at a time, so the value of wBlockAlign can be used for buffer alignment.
The recommended block size for coding is 256 * |
WRID>RIFF-WAVE>fmt >block_align | ||||||||||||||||
fmt | W_F_DVI_ADPCM | bits_per_sample |
wBitsPerSample | 2 |
u16 |
WORD |
|
This is the number of bits per sample of data. DVI ADPCM supports 3 or 4 bits per sample. | WRID>RIFF-WAVE>fmt >bits_per_sample | ||||||||||||||||
fmt | W_F_DVI_ADPCM | extra_size |
cbSize | 2 |
u16 |
WORD |
|
The size in bytes of the extended information after the WAVEFORMATEX structure. This should be 2. | WRID>RIFF-WAVE>fmt >extra_size | ||||||||||||||||
fmt | W_F_DVI_ADPCM | samples_per_block |
nSamplesPerBlock | 2 |
u16 |
WORD |
|
Count of number of samples per block. (((block_align - (4 * channels)) * 8) / (bits_per)sample * channels)) + 1. | WRID>RIFF-WAVE>fmt >samples_per_block | ||||||||||||||||
bext | id |
ckID | 4 |
u8[4] |
FOURCC |
id = "bext"
|
WRID>RIFF-WAVE>bext>id | ||||||||||||||||||
bext | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>bext>size | ||||||||||||||||||
bext | description |
Description | 256 |
u8[256] |
FixedStr |
|
ASCII string (maximum 256 characters) containing a free description of the sequence. To help applications which display only a short description, it is recommended that a resume of the description is contained in the first 64 characters and the last 192 characters are used for details.
If the length of the string is less than 256 characters the last one shall be followed by a null character (00). |
WRID>RIFF-WAVE>bext>description | |||||||||||||||||
bext | originator |
Originator | 32 |
u8[32] |
FixedStr |
|
ASCII string (maximum 32 characters) containing the name of the originator/ producer of the audio file. If the length of the string is less than 32 characters the field shall be ended by a null character. | WRID>RIFF-WAVE>bext>originator | |||||||||||||||||
bext | originator_reference |
OriginatorReference | 32 |
u8[32] |
FixedStr |
|
ASCII string (maximum 32 characters) containing an unambiguous reference allocated by the originating organisation. If the length of the string is less than 32 characters the field shall be terminated by a null character.
Note: The EBU has defined a format for the OriginatorReference field. See EBU Recommendation R 99 [6]. |
WRID>RIFF-WAVE>bext>originator_reference | |||||||||||||||||
bext | origination_date |
OriginationDate | 10 |
u8[10] |
FixedStr |
|
10 ASCII characters containing the date of creation of the audio sequence. The format shall be « ‘,year’,-,’month,’-‘,day,’» with 4 characters for the year and 2 characters per other item.
The separator between the items can be anything but it is recommended that one of the following characters be used: ‘-’ hyphen ‘_’ underscore ‘:’ colon ‘ ’ space ‘.’ stop |
WRID>RIFF-WAVE>bext>origination_date | |||||||||||||||||
bext | origination_time |
OriginationTime | 8 |
u8[8] |
FixedStr |
|
8 ASCII characters containing the time of creation of the audio sequence. The format shall be « ‘hour’-‘minute’-‘second’» with 2 characters per item.
The separator between the items can be anything but it is recommended that one of the following characters be used: ‘-’ hyphen ‘_’ underscore ‘:’ colon ‘ ’ space ‘.’ stop |
WRID>RIFF-WAVE>bext>origination_time | |||||||||||||||||
bext | time_reference |
TimeReference | 64 |
u64 |
u64 little endian |
|
These fields shall contain the time-code of the sequence. It is a 64-bit value which contains the first sample count since midnight. The number of samples per second depends on the sample frequency which is defined in the field nSamplesPerSec from the fmt chunk.
(WAVRef note: This is actually specified as two separate u32 integers, low, then high. On modern 64bit machines, it seems less error prone to just parse it as a single value.) |
WRID>RIFF-WAVE>bext>time_reference | |||||||||||||||||
bext | version |
Version | 2 |
u16 |
WORD |
|
An unsigned binary number giving the version of the BWF. This number is particularly relevant for the carriage of the UMID and loudness information. For Version 1 it shall be set to 0x0001 and for Version 2 it shall be set to 0x0002. | WRID>RIFF-WAVE>bext>version | |||||||||||||||||
bext | umid |
UMID | 64 |
u8[64] |
UMID |
|
64 bytes containing a UMID (Unique Material Identifier) to standard SMPTE 330M [1]. If only a 32 byte "basic UMID" is used, the last 32 bytes should be set to zero. (The length of the UMID is given internally.) | WRID>RIFF-WAVE>bext>umid | |||||||||||||||||
bext | loudness_value |
LoudnessValue | 2 |
u16 |
WORD |
|
A 16-bit signed integer, equal to round(100x the Integrated Loudness Value of the file in LUFS). | WRID>RIFF-WAVE>bext>loudness_value | |||||||||||||||||
bext | loudness_range |
LoudnessRange | 2 |
u16 |
WORD |
|
A 16-bit signed integer, equal to round(100x the Loudness Range of the file in LU). | WRID>RIFF-WAVE>bext>loudness_range | |||||||||||||||||
bext | max_true_peak_level |
MaxTruePeakLevel | 2 |
u16 |
WORD |
|
A 16-bit signed integer, equal to round(100x the Maximum True Peak Value of the file in dBTP). | WRID>RIFF-WAVE>bext>max_true_peak_level | |||||||||||||||||
bext | max_momentary_loudness |
MaxMomentaryLoudness | 2 |
u16 |
WORD |
|
A 16-bit signed integer, equal to round(100x the highest value of the Momentary Loudness Level of the file in LUFS). | WRID>RIFF-WAVE>bext>max_momentary_loudness | |||||||||||||||||
bext | max_short_term_loudness |
MaxShortTermLoudness | 2 |
u16 |
WORD |
|
A 16-bit signed integer, equal to round(100x the highest value of the Short-term Loudness Level of the file in LUFS).
Note: The loudness terms are explained in EBU Recommendation R 128 [2], EBU Tech 3341 [7] and EBU Tech 3342 [8], supported by EBU Tech 3343 and EBU Tech 3344 |
WRID>RIFF-WAVE>bext>max_short_term_loudness | |||||||||||||||||
bext | reserved |
Reserved | 180 |
u8[180] |
RAW |
|
180 bytes reserved for extension. If the Version field is set to 0x0001 or 0x0002, these 180 bytes shall be set to a NULL (zero) value. | WRID>RIFF-WAVE>bext>reserved | |||||||||||||||||
bext | coding_history |
CodingHistory | remaining |
u8[remaining] |
String |
|
Unrestricted ASCII characters containing a collection of strings terminated by CR/LF. Each string shall contain a description of a coding process applied to the audio data. Each new coding application shall add a new string with the appropriate information.
This information shall contain the type of sound (PCM or MPEG) with its specific parameters : PCM : mode (mono, stereo), size of the sample (8, 16 bits) and sample frequency, MPEG : sample frequency, bit rate, layer (I or II) and the mode (mono, stereo, joint stereo or dual channel), It is recommended that the manufacturers of the coders provide an ASCII string for use in the coding history. Note: The EBU has defined a format for coding history which will simplify the interpretation of the information provided in this field. See EBU Recommendation R 98 [9]. |
WRID>RIFF-WAVE>bext>coding_history | |||||||||||||||||
iXML | id |
ckID | 4 |
u8[4] |
FOURCC |
id = "iXML"
|
WRID>RIFF-WAVE>iXML>id | ||||||||||||||||||
iXML | size |
ckSize | 4 |
u32 |
DWORD |
|
The raw bytes of this chunk should be interpreted as XML, encoded in any unicode encoding. | WRID>RIFF-WAVE>iXML>size | |||||||||||||||||
iXML | ixml_version |
IXML_VERSION |
|
String |
XML Characters |
|
The version number of the iXML specification used to prepare the iXML audio file. This version appears in the front page at http://www.ixml.info, and takes the form of x.y where x and y are whole numbers, for example 1.51 | WRID>RIFF-WAVE>iXML>IXML_VERSION | |||||||||||||||||
iXML | project |
PROJECT |
|
String |
XML Characters |
|
The name of the project to which this file belongs. This might typically be the name of the motion picture or program which is in production. | WRID>RIFF-WAVE>iXML>PROJECT | |||||||||||||||||
iXML | scene |
SCENE |
|
String |
XML Characters |
|
The name of the scene / slate being recorded. For US system this might typically be 32, 32A, 32B, A32B, 32AB etc. For UK system this might typically be a incrementing number with no letters. | WRID>RIFF-WAVE>iXML>SCENE | |||||||||||||||||
iXML | tape |
TAPE |
|
String |
XML Characters |
|
The SoundRoll which identifies a group of recordings. Normally, the SoundRoll is a vital component of workflow to differentiate audio recorded with time of day on different days. In other words for 2 (completely different) recordings each covering a period around 11am, the soundroll would differentiate them by (typically) telling you which shooting day this recording applies to. Some projects may turnover sound more than once per day, and increment the soundroll at this point. In any event, the soundroll should change at least once in any 24 hour period. Some systems change the soundroll for every recording which is also a valid option, in effect using the soundroll as a unique file identifer (although this function is explicitly provided with the iXML FILE_UID parameter). | WRID>RIFF-WAVE>iXML>TAPE | |||||||||||||||||
iXML | take |
TAKE |
|
String |
XML Characters |
|
The number of the take in the current scene or slate. Usually this will be a simple number, although variations for things like wild tracks may yield takes like 1, 2, 3, WT1, WT2 etc. | WRID>RIFF-WAVE>iXML>TAKE | |||||||||||||||||
iXML | take_type |
TAKE_TYPE |
|
[Enum] |
XML Characters |
|
(New in iXML v2.0) A dictionary based tag allowing selection from a defined list of values to explicitly categorise the type/purpose/function of the current take. This tag overlaps with the existing NO_GOOD / FALSE_START / WILD_TRACK which are deprecated in iXML 2.0, This tag can contain multiple entries, separated by commas and can be expanded in the future with additional dictionary entries, detailed in the TAKE_TYPE dictionary. | WRID>RIFF-WAVE>iXML>TAKE_TYPE | |||||||||||||||||
iXML | (map to take_type) |
NO_GOOD |
|
- |
XML Characters |
|
(Deprecated in iXML v2.0, superceded by TAKE_TYPE) This parameter allows a recorder to mark this recording as "no good" (ie, of no use whatsoever, and in effect to be deleted). The value should be TRUE or FALSE. If absent, this should be assumed FALSE. | WRID>RIFF-WAVE>iXML>NO_GOOD | |||||||||||||||||
iXML | (map to take_type) |
FALSE_START |
|
- |
XML Characters |
|
(Deprecated in iXML v2.0, superceded by TAKE_TYPE) This parameter allows a recorder to mark this recording as a false start, this may indicate that another file could exist with the same take number. Typically this file might also be marked as <NO_GOOD>. The value should be TRUE or FALSE. If absent, this should be assumed FALSE. | WRID>RIFF-WAVE>iXML>FALSE_START | |||||||||||||||||
iXML | (map to take_type) |
WILD_TRACK |
|
- |
XML Characters |
|
(Deprecated in iXML v2.0, superceded by TAKE_TYPE) This parameter allows a recorder to mark this recording as a wild track, with no specific relationship to any take, although it might be marked with a specific scene, for example when recording ambience for a given location. The value should be TRUE or FALSE. If absent, this should be assumed FALSE. | WRID>RIFF-WAVE>iXML>WILD_TRACK | |||||||||||||||||
iXML | circled |
CIRCLED |
|
bool |
XML Characters |
|
This parameter allows a recorder to mark this recording as a circle-take. The value should be TRUE or FALSE. If absent, this should be assumed FALSE. | WRID>RIFF-WAVE>iXML>CIRCLED | |||||||||||||||||
iXML | file_uid |
FILE_UID |
|
String |
XML Characters |
|
A unique number which identifies this physical FILE, regardless of the number of channels etc. If your system employs a unique SoundRoll per recording, your FILE_UID and TAPE parameters should be the same. | WRID>RIFF-WAVE>iXML>FILE_UID | |||||||||||||||||
iXML | ubits |
UBITS |
|
String |
XML Characters |
|
The userbits associated with this recording. This may have been extracted from incoming timecode when the file was recorded, or generated by the recorder from the date, or any other metadata. Typically the userbits are rarely used now because other more explicit metadata supercedes this function. | WRID>RIFF-WAVE>iXML>UBITS | |||||||||||||||||
iXML | note |
NOTE |
|
String |
XML Characters |
|
A free text note to add user metadata to the recording. This might typically used to communicate information such as TAIL SLATE, NO SLATE, or to warn of noise interruptions - PLANE OVERHEAD etc. | WRID>RIFF-WAVE>iXML>NOTE |