Filename extension | .wav .wave |
---|---|
Internet media type | audio/vnd.wave,[1] audio/wav, audio/wave, audio/x-wav[2] |
Type code | WAVE |
Uniform Type Identifier (UTI) | com.microsoft.waveform-audio |
Developed by | Microsoft & IBM |
Initial release | 1991; 28 years ago[3] |
Latest release | Multiple Channel Audio Data and WAVE Files (7 March 2007; 12 years ago (update)[4][5]) |
Type of format | audio file format, container format |
Extended from | RIFF |
Extended to | BWF, RF64 |
WAVE_FORMAT_EXTENSIBLE
header was defined which specifies multiple audio channel data along with speaker positions, eliminates ambiguity regarding sample types and container sizes in the standard WAV format and supports defining custom extensions to the format chunk.[4][5][12]RIFF
form tag; the first four bytes of chunk data are a FourCC that specify the form type and are followed by a sequence of subchunks. In the case of a WAV file, those four bytes are the FourCC WAVE
. The remainder of the RIFF data is a sequence of chunks describing the audio information.INFO
chunk. The chunk may include information such as the title of the work, the author, the creation date, and copyright information. Although the INFO
chunk was defined in version 1.0, the chunk was not referenced in the formal specification of a WAV file. If the chunk were present in the file, then a reader should know how to interpret it, but many readers had trouble. Some readers would abort when they encountered the chunk, some readers would process the chunk if it were the first chunk in the RIFF form,[15] and other readers would process it if it followed all of the expected waveform data. Consequently, the safest thing to do from an interchange standpoint was to omit the INFO
chunk and other extensions and send a lowest-common-denominator file. There are other INFO chunk placement problems.CSET
chunk to specify the country code, language, dialect, and code page for the strings in a RIFF file.[16] For example, specifying an appropriate CSET
chunk should allow the strings in an INFO
chunk (and other chunks throughout the RIFF file) to be interpreted as Cyrillic or Japanese characters.JUNK
chunk whose contents are uninteresting.[17] The chunk allows a chunk to be deleted by just changing its FourCC. The chunk could also be used to reserve some space for future edits so the file could be modified without being rewritten. A later definition of RIFF introduced a similar PAD
chunk.[18]WAVE
tag. It is followed by a mandatory <fmt-ck>
format chunk that describes the format of the sample data that follows. The format chunk includes information such as the sample encoding, number of bits per channel, the number of channels, the sample rate. The WAV specification includes some optional features. The optional fact chunk reports the number of samples for some compressed coding schemes. The cue point (cue
) chunk identifies some significant sample numbers in the wave file. The playlist chunk allows the samples to be played out of order or repeated rather than just from beginning to end. The associated data list allows labels and notes (labl
and note
) to be attached to cue points; text annotation (ltxt
) may be given for a group of samples (e.g., caption information). Finally, the mandatory wave data chunk contains the actual samples (in the specified format).INFO
chunk should be placed. It is also silent about the placement of a CSET
chunk (which specifies the character set used).INFO
chunk; an example INFO
LIST chunk ignores the chunk sequence implied in the INFO
description.[22] The LIST chunk definition for <wave-data>
does use the LIST chunk as a sequence container with good formal semantics.<data-list>
(undefined) and <wave-list>
(defined but not referenced) should be identical. Even if that problem is fixed, the productions then allow a <data-ck>
to contain a recursive<wave-data>
(which implies data interpretation problems). The specification should have been something like:Format | Bitrate (kbit/s) | 1 minute (KiB) | Sample |
---|---|---|---|
11,025 Hz 16 bit PCM | 176.4 | 1292 | 11k16bitpcm.wav |
8,000 Hz 16 bit PCM | 128 | 938 | 8k16bitpcm.wav |
11,025 Hz 8 bit PCM | 88.2 | 646 | 11k8bitpcm.wav |
11,025 Hz µ-Law | 88.2 | 646 | 11kulaw.wav |
8,000 Hz 8 bit PCM | 64 | 469 | 8k8bitpcm.wav |
8,000 Hz µ-Law | 64 | 469 | 8kulaw.wav |
11,025 Hz 4 bit ADPCM | 44.1 | 323 | 11kadpcm.wav |
8,000 Hz 4 bit ADPCM | 32 | 234 | 8kadpcm.wav |
11,025 Hz GSM 06.10 | 18 | 132 | 11kgsm.wav |
8,000 Hz MP3 16 kbit/s | 16 | 117 | 8kmp316.wav |
8,000 Hz GSM 06.10 | 13 | 103 | 8kgsm.wav |
8,000 Hz Lernout & Hauspie SBC 12 kbit/s | 12 | 88 | 8ksbc12.wav |
8,000 Hz DSP GroupTruespeech | 9 | 66 | 8ktruespeech.wav |
8,000 Hz MP3 8 kbit/s | 8 | 60 | 8kmp38.wav |
8,000 Hz Lernout & Hauspie CELP | 4.8 | 35 | 8kcelp.wav |
.wav
' extension.|dead-url=
(help)<fmt-ck>
must always occur before <wave-data>
, and both of these chunks are mandatory in a WAVE file.'INAM
appears before ICOP
|dead-url=
(help)Wikimedia Commons has media related to Waveform audio format. |