Waveform Audio File Format is a Microsoft and IBM audio file format standard for storing
an audio bitstream on PCs. It is an application of the Resource Interchange File Format bitstream
format method for storing data in "chunks", and thus is also close to the 8SVX and the
AIFF format used on Amiga and Macintosh computers, respectively. It is the main format used on
Windows systems for raw and typically uncompressed audio. The usual bitstream encoding is the
linear pulse-code modulation format.
Description Both WAVs and AIFFs are compatible with Windows,
Macintosh, and Linux operating systems. The format takes into account some differences
of the Intel CPU such as little-endian byte order. The RIFF format acts as a "wrapper"
for various audio coding formats. Though a WAV file can contain compressed audio,
the most common WAV audio format is uncompressed audio in the linear pulse code modulation
format. LPCM is also the standard audio coding format for audio CDs, which store two-channel
LPCM audio sampled 44,100 times per second with 16 bits per sample. Since LPCM is uncompressed
and retains all of the samples of an audio track, professional users or audio experts
may use the WAV format with LPCM audio for maximum audio quality. WAV files can also
be edited and manipulated with relative ease using software.
The WAV format supports compressed audio, using, on Windows, the Audio Compression Manager.
Any ACM codec can be used to compress a WAV file. The user interface for Audio Compression
Manager may be accessed through various programs that use it, including Sound Recorder in some
versions of Windows. Beginning with Windows 2000, a 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.
There are some inconsistencies in the WAV format: for example, 8-bit data is unsigned
while 16-bit data is signed, and many chunks duplicate information found in other chunks.
Specification The WAV file is an instance of a Resource
Interchange File Format defined by IBM and Microsoft.
RIFF A RIFF file is a tagged file format. It has
a specific container format that includes a four character tag and the size of the chunk.
The tag specifies how the data within the chunk should be interpreted, and there are
several standard FOURCC tags. Tags consisting of all capital letters are reserved tags.
The outermost chunk of a RIFF file has a 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.
The advantage of a tagged file format is that the format can be extended later without confusing
existing file readers. The rule for a RIFF reader is that it should ignore any tagged
chunk that it does not recognize. The reader won't be able to use the new information,
but the reader should not be confused. The specification for RIFF files includes
the definition of an 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, 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. RIFF files were expected to be used in international
environments, so there is CSET chunk to specify the country code, language, dialect, and code
page for the strings in a RIFF file. For example, specifying an appropriate CSET chunk should
allow the strings in an INFO chunk to be interpreted as Cyrillic or Japanese characters.
RIFF also defines a JUNK chunk whose contents are uninteresting. 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.
RIFF WAVE The toplevel definition of a WAV file is:
→ RIFF('WAVE' Format
[] Fact chunk [] Cue points
[] Playlist [] Associated data list
) Wave data
The definition shows a toplevel RIFF form with the WAVE tag. It is followed by a mandatory
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 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 to be attached to
cue points; text annotation may be given for a group of samples. Finally, the mandatory
wave data chunk contains the actual samples. Note that the WAV file definition does not
show where an INFO chunk should be placed. It is also silent about the placement of a
CSET chunk. The RIFF specification attempts to be a formal
specification, but its formalism lacks the precision seen in other tagged formats. For
example, the RIFF specification does not clearly distinguish between a set of subchunks and
an ordered sequence of subchunks. The RIFF form chunk suggests it should be a sequence
container. The specification suggests a LIST chunk is also a sequence: "A LIST chunk contains
a list, or ordered sequence, of subchunks." However, the specification does not give a
formal specification of the INFO chunk; an example INFO LIST chunk ignores the chunk
sequence implied in the INFO description. The LIST chunk definition for
does use the LIST chunk as a sequence container with good formal semantics.
The WAV specification allows for not only a single, contiguous, array of audio samples,
but also discrete blocks of samples and silence that are played in order. Most WAV files use
a single array of data. The specification for the sample data is confused:
The contains the waveform data. It is defined as follows:
→ { | }
→ data( ) → LIST( 'wavl' { | Wave
samples }... ) Silence
→ slnt( ) Count of silent samples
These productions are confused. Apparently and should be identical.
Even if that problem is fixed, the productions then allow a to contain a recursive
. The specification should have been something like:
→ { | }
→ data( ... ) → LIST( 'wavl' { | Wave
samples }... ) Silence
→ slnt( ) Count of silent samples
to avoid the recursion. WAV files can contain embedded IFF "lists",
which can contain several "sub-chunks". Metadata
As a derivative of RIFF, WAV files can be tagged with metadata in the INFO chunk. In
addition, WAV files can embed Extensible Metadata Platform data. Applications may not handle
this extra information or may expect to see it in a particular place. Although the RIFF
specification requires that applications ignore chunks they do not recognize, some applications
are confused by additional chunks. Popularity
Uncompressed WAV files are large, so file sharing of WAV files over the Internet is
uncommon. However, it is a commonly used file type, suitable for retaining first generation
archived files of high quality, for use on a system where disk space is not a constraint,
or in applications such as audio editing, where the time involved in compressing and
uncompressing data is a concern. More frequently, the smaller file sizes of
compressed but lossy formats such as MP3 are used to store and transfer audio. Their small
file sizes allow faster Internet transmission, as well as lower consumption of space on memory
media. There are also lossless-compression formats such as FLAC.
The usage of the WAV format has more to do with its familiarity and simple structure.
Because of this, it continues to enjoy widespread use with a variety of software applications,
often functioning as a 'lowest common denominator' when it comes to exchanging sound files among
different programs. Use by broadcasters
In spite of their large size, uncompressed WAV files are sometimes used by some radio
broadcasters, especially those that have adopted a tapeless system. BBC Radio in the UK uses
44.1 kHz 16-bit two-channel WAV audio as standard in their VCS system.
UK Commercial radio company Global Radio uses 44.1 kHz 16-bit two-channel WAV files in
the Genesys playout system, and throughout their broadcast chain.
The ABC "D-Cart" system, which was developed by the Australian broadcaster, uses 48 kHz
16-bit two-channel WAV files, which is identical to that of Digital Audio Tape.
The Digital Radio Mondiale consortium uses WAV files as an informal standard for transmitter
simulation and receiver testing. Limitations
The WAV format is limited to files that are less than 4 GB, because of its use of a 32-bit
unsigned integer to record the file size header. Although this is equivalent to about 6.8 hours
of CD-quality audio, it is sometimes necessary to exceed this limit, especially when greater
sampling rates or bit resolutions are required. The W64 format was therefore created for use
in Sound Forge. Its 64-bit header allows for much longer recording times. The RF64 format
specified by the European Broadcasting Union has also been created to solve this problem.
Non-audio data Since the sampling rate of a WAV file can
vary from 1 Hz to 4.3 GHz, and the number of channels can be as high as 65535, .wav
files have also been used for non-audio data. LTspice, for instance, can store multiple
circuit trace waveforms in separate channels, at any appropriate sampling rate, with the
full-scale range representing ±1 V or A rather than a sound pressure.
Audio CDs Audio CDs do not use the WAV file format,
using instead Red Book audio. The commonality is that both audio CDs and WAV files encode
the audio as PCM. WAV is a file format for a computer to use that cannot be understood
by most CD players directly. To record WAV files to an Audio CD the file headers must
be stripped and the remaining PCM data written directly to the disc as individual tracks
with zero-padding added to match the CD's sector size. In order for a WAV file to be
able to be burned to a CD, it should be in the 44100 Hz, 16-bit stereo format.
WAV file audio coding formats compared
Audio in WAV files can be encoded in a variety of audio coding formats, such as GSM or MP3,
to reduce the file size. This is a reference to compare the monophonic
audio quality and compression bitrates of audio coding formats available for WAV files
including PCM, ADPCM, Microsoft GSM 06.10, CELP, SBC, Truespeech and MPEG Layer-3.
The above are WAV files; even those that use MP3 compression have the ".wav" extension.
See also Comparison of audio coding formats
Audio Compression Manager Broadcast Wave Format
RF64, an extended file format for audio Notes
References
External links WAVE file format specifications - from McGill
University, A summary of the WAVE file format
WAVE_FORMAT_EXTENSIBLE Specification from Microsoft
More information on WAVE_FORMAT_EXTENSIBLE - University of Bath
WAVE File Format - technical details WAV & BWF Metadata Guide