RIFF1991
TODO: overview
Source: https://www.mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Docs/riffmci.pdf
[RIFF1991] Multimedia Programming Interface and Data Specifications 1.0 (1991). See pages 56-65.
TODO: implement spec_detail widget
{ "id": "RIFF1991", "publication_year": 1991, "authority": "IBM and Microsoft", "title": "Multimedia Programming Interface and Data Specifications", "publication_date": "1991-08", "title_short": "RIFF", "version": "1.0", "see": "pages 56-65" }
Learning References
- MIDI Technical Fanatic's Brainwashing Center / tech / WAVE format - opinionated guide to WAV. Very clear writing. Also documents
smpl
andinst
chunks
Fields defined in this spec
Chunk | 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 |
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 | name |
dwName | 4 |
u32 |
DWORD |
|
cue-point field: Specifies the cue point name. Each |
WRID>RIFF-WAVE>cue>name |
cue | 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 | 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 | 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 | 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 | 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 | 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 | length |
dwLength | 4 |
u32 |
DWORD |
|
play-segment field: Specifies the length of the section in samples. | WRID>RIFF-WAVE>plst>length |
plst | 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 | |
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 |
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 | |
fmt | id |
ckID | 4 |
u8[4] |
FOURCC |
id = "fmt "
|
WRID>RIFF-WAVE>fmt >id | |
fmt | size |
ckSize | 4 |
u32 |
DWORD |
|
WRID>RIFF-WAVE>fmt >size | |
fmt | 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 | 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 | 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 | 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 | 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 | 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 |
Related Chunks
- [plst] : Play order for cue points. Very rare.
- [CSET] : Character set information. Code page, language, etc. Very Rare.
- [cue] : A series of positions in the waveform data chunk.
- [LIST-wavl] : A LIST of audio and/or silence chunks: data, slnt
- [RIFF-WAVE] : Container structure for multimedia data.
- [LIST-adtl] : A LIST of CuePoint annotation chunks.
- [fact] : Number of samples for compressed audio in data chunk.
- [LIST-INFO] : A LIST of descripitve text chunks.
- [data] : TODO: description of data
- [fmt] : Format of audio samples in data chunk.
- [JUNK] : padding, filler or outdated information