WRID>RIFF-WAVE>fmt >

Note: all chunks are four bytes. fmt is "fmt ". The last character is a space (ASCII 32).

TODO: overview

This chunk is fiddly and it's one of two required chunks. The interpretation of data in this chunk depends on the value of the first 2 bytes, the format_tag:

A number indicating the WAVE format category of the file. The content of the format-specific-fields [ed: everything after block_align] portion of the fmt chunk, and the interpretation of the waveform data, depend on this value.

[RIFF1991]

The first several fields are consistent, followed by format specific fields. The most common layout is format_tag = 0x0001 (WAVE_FORMAT_PCM).

Several formats are documented in detail below. Additional formats are documented in [RIFF1994] . I prioritiezed documenting formats currently in use, but I probably missed some. If run across files in a format not documented below, please let me know.

WAVE_FORMAT_PCM (0x0001)

Chunk Name Bytes Type conditionDescriptionWRID
fmt id 4 u8[4] id = "fmt " ...>id
fmt size 4 u32 ...>size
fmt format_tag 2 u16 = 0x0001 A number indicating the WAVE format category of the file. The content of the portion of the ‘fmt’ chunk, and the interpretation of the waveform data, depend on this value. ...>format_tag
fmt channels 2 u16 The number of channels represented in the waveform data, such as 1 for mono or 2 for stereo. ...>channels
fmt samples_per_sec 4 u32 The sampling rate (in samples per second) at which each channel should be played. ...>samples_per_sec
fmt avg_bytes_per_sec 4 u32 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. ...>avg_bytes_per_sec
fmt block_align 2 u16 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 ) ...>block_align
fmt bits_per_sample 2 u16 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 ) ...>bits_per_sample

WAVE_FORMAT_UNKNOWN (0x0000 or default to this if unknown)

All other format_tags should follow the following structure (known as WAVEFORMATEX), which is also the structure for the WAVE_FORMAT_UNKNOWN format_tag.

Chunk Name Bytes Type conditionDescriptionWRID
fmt id 4 u8[4] id = "fmt " ...>id
fmt size 4 u32 ...>size
fmt format_tag 2 u16 A number indicating the WAVE format category of the file. The content of the portion of the ‘fmt’ chunk, and the interpretation of the waveform data, depend on this value. ...>format_tag
fmt channels 2 u16 The number of channels represented in the waveform data, such as 1 for mono or 2 for stereo. ...>channels
fmt samples_per_sec 4 u32 The sampling rate (in samples per second) at which each channel should be played. ...>samples_per_sec
fmt avg_bytes_per_sec 4 u32 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. ...>avg_bytes_per_sec
fmt block_align 2 u16 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 ) ...>block_align
fmt bits_per_sample 2 u16 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 ) ...>bits_per_sample
fmt extra_size 2 u16 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)) ...>extra_size
fmt extra_bytes size-18 u8[size-18] The extra information as bytes. For use when format_tag is unknown, so this portion can't be parsed deteriministically. ...>extra_bytes

WAVE_FORMAT_ADPCM (0x0002)

ADPCM is a lossy audio compression format which compresses to approximately 1/4 the size of raw PCM data. It was used in telephony and early consumer multimedia systems, and some more recent embedded devices because very little CPU time is needed to decode (compared to other lossy formats).

This variation of ADPCM is also known as Microsoft ADPCM.

The [RIFF1994] specification includes an algorithm for encoding and decoding ADPCM data.

Chunk Name Bytes Type conditionDescriptionWRID
fmt id 4 u8[4] id = "fmt " ...>id
fmt size 4 u32 ...>size
fmt format_tag 2 u16 = 0x0002 A number indicating the WAVE format category of the file. The content of the portion of the ‘fmt’ chunk, and the interpretation of the waveform data, depend on this value. This must be set to WAVE_FORMAT_ADPCM. ...>format_tag
fmt channels 2 u16 The number of channels represented in the waveform data, such as 1 for mono or 2 for stereo. ...>channels
fmt samples_per_sec 4 u32 Frequency of the sample rate of the wave file. This should be 11025, 22050, or 44100. Other sample rates are allowed, but not encouraged. ...>samples_per_sec
fmt avg_bytes_per_sec 4 u32 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). ...>avg_bytes_per_sec
fmt block_align 2 u16 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.

(samples_per_sec x channels)block_align
8k256
11k256
22k512
44k1024
...>block_align
fmt bits_per_sample 2 u16 This is the number of bits per sample of ADPCM. Currently only 4 bits per sample is defined. Other values are reserved. ...>bits_per_sample
fmt extra_size 2 u16 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. ...>extra_size
fmt samples_per_block 2 u16 Count of number of samples per block. (((block_align - (7 * channels)) * 8) / (bits_per_sample * channels)) + 2. ...>samples_per_block
fmt coefficient_count 2 u16 Count of the number of coefficient sets defined in coefficients. ...>coefficient_count
fmt coefficients 4 * coef_count (i16, i16)[coef_count] 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.

Coef1Coef2
2560
512-256
00
19264
2400
460-208
392-232

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.

...>coefficients

WAVE_FORMAT_IMA_ADPCM and WAVE_FORMAT_DVI_ADPCM (0x0011)

ADPCM is a lossy audio compression format which compresses to approximately 1/4 the size of raw PCM data. It was used in telephony and early consumer multimedia systems, and some more recent embedded devices because very little CPU time is needed to decode (compared to other lossy formats).

This variation of ADPCM is also known as IMA ADPCM, or DVI ADPCM. It is documented in more detail in its own specification: Recommended Practices for Enhancing Digital Audio Compatibility in Multimedia Systems

The [RIFF1994] specification includes an algorithm for encoding and decoding DVI ADPCM data.

Chunk Name Bytes Type conditionDescriptionWRID
fmt id 4 u8[4] id = "fmt " ...>id
fmt size 4 u32 ...>size
fmt format_tag 2 u16 = 0x0011 A number indicating the WAVE format category of the file. The content of the portion of the ‘fmt’ chunk, and the interpretation of the waveform data, depend on this value. This must be set to WAVE_FORMAT_DVI_ADPCM. ...>format_tag
fmt channels 2 u16 The number of channels represented in the waveform data, such as 1 for mono or 2 for stereo. ...>channels
fmt samples_per_sec 4 u32 Sample rate of the WAVE file. This should be 8000, 11025, 22050 or 44100. Other sample rates are allowed. ...>samples_per_sec
fmt avg_bytes_per_sec 4 u32 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). ...>avg_bytes_per_sec
fmt block_align 2 u16 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.

bits_per_sampleblock_align
3(( N * 3 ) + 1 ) * 4 * channels
4(N + 1) * 4 * channels
where N = 0, 1, 2, 3 . . .

The recommended block size for coding is 256 * bytes* min(1, (<samples_per_second>/ 11 kHz)) Smaller values cause the block header to become a more significant storage overhead. But, it is up to the implementation of the coding portion of the algorithm to decide the optimal value for <block_align> within the given constraints (see above). The decoding portion of the algorithm must be able to handle any valid block size. 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 allocating buffers.

...>block_align
fmt bits_per_sample 2 u16 This is the number of bits per sample of data. DVI ADPCM supports 3 or 4 bits per sample. ...>bits_per_sample
fmt extra_size 2 u16 The size in bytes of the extended information after the WAVEFORMATEX structure. This should be 2. ...>extra_size
fmt samples_per_block 2 u16 Count of number of samples per block. (((block_align - (4 * channels)) * 8) / (bits_per)sample * channels)) + 1. ...>samples_per_block

WAVE Format Tags (Categories)

Most of the fmt chunk definitions are for proprietary compressed formats from the early 90s. With a few exceptions (see above) I haven't documented them here, because I think they're extremely rare. If you're aware usage of a particlar format_tag that isn't already documented please let me know, and I'll add it to the book.

From [RIFF1991] , Registered FOURCC Codes and WAVE Formats and mmreg.h:

format_tagWAVE Format NameCompanyDescription
0x0000WAVE_FORMAT_UNKNOWNMicrosoft CorporationUnknown or unspecified format
0x0001WAVE_FORMAT_PCMMicrosoft CorporationPCM audio in integer format
0x0002WAVE_FORMAT_ADPCMMicrosoft CorporationMicrosoft adaptive PCM
0x0003WAVE_FORMAT_IEEE_FLOATMicrosoft CorporationPCM audio in IEEE floating-point format
0x0004WAVE_FORMAT_VSELPCompaq Computer Corp.VSELP codec for Windows CE 2.0 device
0x0005WAVE_FORMAT_IBM_CVSDIBM Corporation
0x0006WAVE_FORMAT_ALAWMicrosoft Corporation
0x0007WAVE_FORMAT_MULAWMicrosoft Corporation
0x0008WAVE_FORMAT_DTSMicrosoft CorporationDTS
0x0009WAVE_FORMAT_DRMMicrosoft CorporationMicrosoft Digital Rights Managed encrypted audio
0x000AWAVE_FORMAT_WMAVOICE9Microsoft CorporationSpeech audio codec
0x000BWAVE_FORMAT_WMAVOICE10Microsoft Corporation
0x0010WAVE_FORMAT_OKI_ADPCMOKI
0x0011WAVE_FORMAT_IMA_ADPCMIMA ADPCM and the DVI ADPCM are identical.
0x0011WAVE_FORMAT_DVI_ADPCMIntel Corporation
0x0012WAVE_FORMAT_MEDIASPACE_ADPCMVideologic
0x0013WAVE_FORMAT_SIERRA_ADPCMSierra Semiconductor Corp
0x0014WAVE_FORMAT_G723_ADPCMAntex Electronics Corporation
0x0015WAVE_FORMAT_DIGISTDDSP Solutions, Inc.
0x0016WAVE_FORMAT_DIGIFIXDSP Solutions, Inc.
0x0017WAVE_FORMAT_DIALOGIC_OKI_ADPCMDialogic CorporationOKI ADPCM chips or firmware
0x0018WAVE_FORMAT_MEDIAVISION_ADPCMMedia Vision, Inc.ADPCM for Jazz 16 chip set
0x0019WAVE_FORMAT_CU_CODECHewlett-Packard Company
0x001AWAVE_FORMAT_HP_DYN_VOICEHewlett-Packard Company
0x0020WAVE_FORMAT_YAMAHA_ADPCMYamaha Corporation of America
0x0021WAVE_FORMAT_SONARCSpeech Compression
0x0022WAVE_FORMAT_DSPGROUP_TRUESPEECHDSP Group, Inc
0x0023WAVE_FORMAT_ECHOSC1Echo Speech Corporation
0x0024WAVE_FORMAT_AUDIOFILE_AF36Audiofile, Inc.
0x0025WAVE_FORMAT_APTXAudio Processing Technology
0x0026WAVE_FORMAT_AUDIOFILE_AF10Audiofile, Inc.
0x0027WAVE_FORMAT_PROSODY_1612Aculab plcProsody CTI speech card
0x0028WAVE_FORMAT_LRCMerging Technologies S.A.
0x0030WAVE_FORMAT_DOLBY_AC2Dolby Laboratories
0x0031WAVE_FORMAT_GSM610Microsoft Corporation
0x0032WAVE_FORMAT_MSNAUDIOMicrosoft CorporationMicrosoft MSN audio codec
0x0033WAVE_FORMAT_ANTEX_ADPCMEAntex Electronics Corporation
0x0034WAVE_FORMAT_CONTROL_RES_VQLPCControl Resources Limited.
0x0035WAVE_FORMAT_DIGIREALDSP Solutions, Inc.
0x0036WAVE_FORMAT_DIGIADPCMDSP Solutions, Inc..
0x0037WAVE_FORMAT_CONTROL_RES_CR10Control Resources Limited
0x0038WAVE_FORMAT_NMS_VBXADPCMNatural MicroSystems
0x0039WAVE_FORMAT_CS_IMAADPCMCrystal Semiconductor IMA ADPCMRoland RDAC proprietary format
0x003AWAVE_FORMAT_ECHOSC3Echo Speech CorporationProprietary compression format
0x003BWAVE_FORMAT_ROCKWELL_ADPCMRockwell InternationalRockwell ADPCM
0x003CWAVE_FORMAT_ROCKWELL_DIGITALKRockwell InternationalRockwell DIGITALK
0x003DWAVE_FORMAT_XEBECXebec Multimedia Solutions LimitedProprietary compression format
0x0040WAVE_FORMAT_G721_ADPCMAntex Electronics Corporation
0x0041WAVE_FORMAT_G728_CELPAntex Electronics Corporation
0x0042WAVE_FORMAT_MSG723Microsoft Corporation
0x0043WAVE_FORMAT_INTEL_G723_1Intel Corp.
0x0044WAVE_FORMAT_INTEL_G729Intel Corp.
0x0045WAVE_FORMAT_SHARP_G726Sharp
0x0050WAVE_FORMAT_MPEGMicrosoft Corporation
0x0052WAVE_FORMAT_RT24InSoft, Inc.
0x0053WAVE_FORMAT_PACInSoft, Inc.
0x0055WAVE_FORMAT_MPEGLAYER3ISO/MPEG Layer3 Format TagISO/MPEG Layer 3 format tag
0x0059WAVE_FORMAT_LUCENT_G723Lucent Technologies
0x0060WAVE_FORMAT_CIRRUSCirrus Logic
0x0061WAVE_FORMAT_ESPCMESS Technology
0x0062WAVE_FORMAT_VOXWAREVoxware Inc
0x0063WAVE_FORMAT_CANOPUS_ATRACCanopus, co., Ltd.ATRACWAVEFORMAT
0x0064WAVE_FORMAT_G726_ADPCMAPICOM
0x0065WAVE_FORMAT_G722_ADPCMAPICOM
0x0066WAVE_FORMAT_DSATMicrosoft Corporation
0x0067WAVE_FORMAT_DSAT_DISPLAYMicrosoft Corporation
0x0069WAVE_FORMAT_VOXWARE_BYTE_ALIGNEDVoxware Inc
0x0070WAVE_FORMAT_VOXWARE_AC8Voxware Inc
0x0071WAVE_FORMAT_VOXWARE_AC10Voxware Inc
0x0072WAVE_FORMAT_VOXWARE_AC16Voxware Inc
0x0073WAVE_FORMAT_VOXWARE_AC20Voxware Inc
0x0074WAVE_FORMAT_VOXWARE_RT24Voxware Inc
0x0075WAVE_FORMAT_VOXWARE_RT29Voxware Inc
0x0076WAVE_FORMAT_VOXWARE_RT29HWVoxware Inc
0x0077WAVE_FORMAT_VOXWARE_VR12Voxware Inc
0x0078WAVE_FORMAT_VOXWARE_VR18Voxware Inc
0x0079WAVE_FORMAT_VOXWARE_TQ40Voxware Inc
0x007AWAVE_FORMAT_VOXWARE_SC3Voxware Inc
0x007BWAVE_FORMAT_VOXWARE_SC3_1Voxware Inc
0x0080WAVE_FORMAT_SOFTSOUNDSoftsound, Ltd.
0x0081WAVE_FORMAT_VOXWARE_TQ60Voxware Inc
0x0082WAVE_FORMAT_MSRT24Microsoft Corporation
0x0083WAVE_FORMAT_G729AAT&T Labs, Inc.
0x0084WAVE_FORMAT_MVI_MVI2Motion Pixels
0x0085WAVE_FORMAT_DF_G726DataFusion Systems (Pty) (Ltd)
0x0086WAVE_FORMAT_DF_GSM610DataFusion Systems (Pty) (Ltd)
0x0088WAVE_FORMAT_ISIAUDIOIterated Systems, Inc.
0x0089WAVE_FORMAT_ONLIVEOnLive! Technologies, Inc.
0x008AWAVE_FORMAT_MULTITUDE_FT_SX20Multitude Inc.
0x008BWAVE_FORMAT_INFOCOM_ITS_G721_ADPCMInfocomG.721 ADPCM
0x008CWAVE_FORMAT_CONVEDIA_G729Convedia Corp.
0x008DWAVE_FORMAT_CONGRUENCYCongruency Inc.
0x0091WAVE_FORMAT_SBC24Siemens Business Communications Sys
0x0092WAVE_FORMAT_DOLBY_AC3_SPDIFSonic Foundry
0x0093WAVE_FORMAT_MEDIASONIC_G723MediaSonic
0x0094WAVE_FORMAT_PROSODY_8KBPSAculab plcProsody CTI speech card
0x0097WAVE_FORMAT_ZYXEL_ADPCMZyXEL Communications, Inc.ZyXEL ADPCM
0x0098WAVE_FORMAT_PHILIPS_LPCBBPhilips Speech Processing
0x0099WAVE_FORMAT_PACKEDStuder Professional Audio AG
0x00A0WAVE_FORMAT_MALDEN_PHONYTALKMalden Electronics Ltd.Phony Talk
0x00A1WAVE_FORMAT_RACAL_RECORDER_GSMRacal recordersRacal Recorder GSM
0x00A2WAVE_FORMAT_RACAL_RECORDER_G720_ARacal recordersRacal Recorder G720.a
0x00A3WAVE_FORMAT_RACAL_RECORDER_G723_1Racal recordersRacal G723.1
0x00A4WAVE_FORMAT_RACAL_RECORDER_TETRA_ACELPRacal recordersRacal Tetra ACELP
0x00B0WAVE_FORMAT_NEC_AACNEC Corp.NEC AAC
0x00FFWAVE_FORMAT_RAW_AAC1For Raw AAC, with format block AudioSpecificConfig() (as defined by MPEG-4), that follows WAVEFORMATEX
0x0100WAVE_FORMAT_RHETOREX_ADPCMRhetorex Inc.Rhetorex ADPCM wave format type
0x0101WAVE_FORMAT_IRATBeCubed Software Inc.
0x0111WAVE_FORMAT_VIVO_G723Vivo Software
0x0112WAVE_FORMAT_VIVO_SIRENVivo Software
0x0120WAVE_FORMAT_PHILIPS_CELPPhilips Speech Processing
0x0121WAVE_FORMAT_PHILIPS_GRUNDIGPhilips Speech Processing
0x0123WAVE_FORMAT_DIGITAL_G723Digital Equipment Corporation
0x0125WAVE_FORMAT_SANYO_LD_ADPCMSanyo Electric Co., Ltd.SANYO LD-ADPCM wave type
0x0130WAVE_FORMAT_SIPROLAB_ACEPLNETSipro Lab Telecom Inc.
0x0131WAVE_FORMAT_SIPROLAB_ACELP4800Sipro Lab Telecom Inc.
0x0132WAVE_FORMAT_SIPROLAB_ACELP8V3Sipro Lab Telecom Inc.
0x0133WAVE_FORMAT_SIPROLAB_G729Sipro Lab Telecom Inc.
0x0134WAVE_FORMAT_SIPROLAB_G729ASipro Lab Telecom Inc.
0x0135WAVE_FORMAT_SIPROLAB_KELVINSipro Lab Telecom Inc.
0x0136WAVE_FORMAT_VOICEAGE_AMRVoiceAge Corp.
0x0140WAVE_FORMAT_G726ADPCMDictaphone Corporation
0x0141WAVE_FORMAT_DICTAPHONE_CELP68Dictaphone Corporation
0x0142WAVE_FORMAT_DICTAPHONE_CELP54Dictaphone Corporation
0x0150WAVE_FORMAT_QUALCOMM_PUREVOICEQualcomm, Inc.
0x0151WAVE_FORMAT_QUALCOMM_HALFRATEQualcomm, Inc.
0x0155WAVE_FORMAT_TUBGSMRing Zero Systems, Inc.Related to GSM 6.10
0x0160WAVE_FORMAT_MSAUDIO1Microsoft Corporation
0x0161WAVE_FORMAT_WMAUDIO2Microsoft Corporation
0x0162WAVE_FORMAT_WMAUDIO3Microsoft CorporationMultichannel WMA
0x0163WAVE_FORMAT_WMAUDIO_LOSSLESSMicrosoft CorporationWMA lossless
0x0164WAVE_FORMAT_WMASPDIFMicrosoft CorporationWMA Pro over S/PDIF
0x0170WAVE_FORMAT_UNISYS_NAP_ADPCMUnisys Corp.
0x0171WAVE_FORMAT_UNISYS_NAP_ULAWUnisys Corp.
0x0172WAVE_FORMAT_UNISYS_NAP_ALAWUnisys Corp.
0x0173WAVE_FORMAT_UNISYS_NAP_16KUnisys Corp.
0x0174WAVE_FORMAT_SYCOM_ACM_SYC008SyCom Technologies
0x0175WAVE_FORMAT_SYCOM_ACM_SYC701_G726LSyCom Technologies
0x0176WAVE_FORMAT_SYCOM_ACM_SYC701_CELP54SyCom Technologies
0x0177WAVE_FORMAT_SYCOM_ACM_SYC701_CELP68SyCom Technologies
0x0178WAVE_FORMAT_KNOWLEDGE_ADVENTURE_ADPCMKnowledge Adventure, Inc.
0x0180WAVE_FORMAT_FRAUNHOFER_IIS_MPEG2_AACFraunhofer IIS
0x0190WAVE_FORMAT_DTS_DSDigital Theatre Systems, Inc.
0x0200WAVE_FORMAT_CREATIVE_ADPCMCreative Labs, Inc
0x0202WAVE_FORMAT_CREATIVE_FASTSPEECH8Creative Labs, IncFast Speech 8
0x0203WAVE_FORMAT_CREATIVE_FASTSPEECH10Creative Labs, IncFast Speech 10
0x0210WAVE_FORMAT_UHER_ADPCMUHER informatic GmbH
0x0215WAVE_FORMAT_ULEAD_DV_AUDIOUlead Systems, Inc.
0x0216WAVE_FORMAT_ULEAD_DV_AUDIO_1Ulead Systems, Inc.
0x0220WAVE_FORMAT_QUARTERDECKQuarterdeck Corporation
0x0230WAVE_FORMAT_ILINK_VCI-link Worldwide
0x0240WAVE_FORMAT_RAW_SPORTAureal Semiconductor
0x0241WAVE_FORMAT_ESST_AC3ESS Technology, Inc.
0x0249WAVE_FORMAT_GENERIC_PASSTHRU
0x0250WAVE_FORMAT_IPI_HSXInteractive Products, Inc.
0x0251WAVE_FORMAT_IPI_RPELPInteractive Products, Inc.
0x0260WAVE_FORMAT_CS2Consistent SoftwareCs2
0x0270WAVE_FORMAT_SONY_SCXSony Corp.
0x0271WAVE_FORMAT_SONY_SCYSony Corp.
0x0272WAVE_FORMAT_SONY_ATRAC3Sony Corp.
0x0273WAVE_FORMAT_SONY_SPCSony Corp.
0x0280WAVE_FORMAT_TELUM_AUDIOTelum Inc.
0x0281WAVE_FORMAT_TELUM_IA_AUDIOTelum Inc.
0x0285WAVE_FORMAT_NORCOM_VOICE_SYSTEMS_ADPCMNorcom Electronics Corp.Norcom Voice Systems ADPCM
0x0300WAVE_FORMAT_FM_TOWNS_SNDFujitsu Corp.
0x0350WAVE_FORMAT_MICRONASMicronas Semiconductors, Inc.
0x0351WAVE_FORMAT_MICRONAS_CELP833Micronas Semiconductors, Inc.
0x0400WAVE_FORMAT_BTV_DIGITALBrooktree CorporationBrooktree digital audio format
0x0401WAVE_FORMAT_INTEL_MUSIC_CODERIntel Corp.
0x0402WAVE_FORMAT_INDEO_AUDIOLigos
0x0450WAVE_FORMAT_QDESIGN_MUSICQDesign Corporation
0x0500WAVE_FORMAT_ON2_VP7_AUDIOOn2 Technologies
0x0501WAVE_FORMAT_ON2_VP6_AUDIOOn2 Technologies
0x0680WAVE_FORMAT_VME_VMPCMAT&T Labs, Inc.
0x0681WAVE_FORMAT_TPCAT&T Labs, Inc.
0x08AEWAVE_FORMAT_LIGHTWAVE_LOSSLESSClearjump
0x1000WAVE_FORMAT_OLIGSMIng C. Olivetti & C., S.p.A.
0x1001WAVE_FORMAT_OLIADPCMIng C. Olivetti & C., S.p.A.
0x1002WAVE_FORMAT_OLICELPIng C. Olivetti & C., S.p.A.
0x1003WAVE_FORMAT_OLISBCIng C. Olivetti & C., S.p.A.
0x1004WAVE_FORMAT_OLIOPRIng C. Olivetti & C., S.p.A.
0x1100WAVE_FORMAT_LH_CODECLernout & Hauspie
0x1101WAVE_FORMAT_LH_CODEC_CELPLernout & Hauspie
0x1102WAVE_FORMAT_LH_CODEC_SBC8Lernout & Hauspie
0x1103WAVE_FORMAT_LH_CODEC_SBC12Lernout & Hauspie
0x1104WAVE_FORMAT_LH_CODEC_SBC16Lernout & Hauspie
0x1400WAVE_FORMAT_NORRISNorris Communications, Inc.
0x1401WAVE_FORMAT_ISIAUDIO_2ISIAudio
0x1500WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESSAT&T Labs, Inc.
0x1600WAVE_FORMAT_MPEG_ADTS_AACMicrosoft Corporation
0x1601WAVE_FORMAT_MPEG_RAW_AACMicrosoft Corporation
0x1602WAVE_FORMAT_MPEG_LOASMicrosoft Corporation(MPEG-4 Audio Transport Streams (LOAS/LATM)
0x1608WAVE_FORMAT_NOKIA_MPEG_ADTS_AACMicrosoft Corporation
0x1609WAVE_FORMAT_NOKIA_MPEG_RAW_AACMicrosoft Corporation
0x160AWAVE_FORMAT_VODAFONE_MPEG_ADTS_AACMicrosoft Corporation
0x160BWAVE_FORMAT_VODAFONE_MPEG_RAW_AACMicrosoft Corporation
0x1610WAVE_FORMAT_MPEG_HEAACMicrosoft Corporation (MPEG-2 AAC or MPEG-4 HE-AAC v1/v2 streams with any payload
0x181CWAVE_FORMAT_VOXWARE_RT24_SPEECHVoxware Inc.
0x1971WAVE_FORMAT_SONICFOUNDRY_LOSSLESSSonic Foundry
0x1979WAVE_FORMAT_INNINGS_TELECOM_ADPCMInnings Telecom Inc.
0x1C07WAVE_FORMAT_LUCENT_SX8300PLucent Technologies
0x1C0CWAVE_FORMAT_LUCENT_SX5363SLucent Technologies
0x1F03WAVE_FORMAT_CUSEEMECUSeeMe
0x1FC4WAVE_FORMAT_NTCSOFT_ALF2CM_ACMNTCSoft
0x2000WAVE_FORMAT_DVMFAST Multimedia AG
0x2001WAVE_FORMAT_DTS2
0x3313WAVE_FORMAT_MAKEAVIS
0x4143WAVE_FORMAT_DIVIO_MPEG4_AACDivio, Inc.Divio's AAC
0x4201WAVE_FORMAT_NOKIA_ADAPTIVE_MULTIRATENokiaNokia adaptive multirate
0x4243WAVE_FORMAT_DIVIO_G726Divio, Inc.Divio's G726
0x434CWAVE_FORMAT_LEAD_SPEECHLEAD Technologies
0x564CWAVE_FORMAT_LEAD_VORBISLEAD Technologies
0x5756WAVE_FORMAT_WAVPACK_AUDIOxiph.org
0x6C61WAVE_FORMAT_ALACApple Lossless
0x674FWAVE_FORMAT_OGG_VORBIS_MODE_1Ogg Vorbis
0x6750WAVE_FORMAT_OGG_VORBIS_MODE_2Ogg Vorbis
0x6751WAVE_FORMAT_OGG_VORBIS_MODE_3Ogg Vorbis
0x676FWAVE_FORMAT_OGG_VORBIS_MODE_1_PLUSOgg Vorbis
0x6770WAVE_FORMAT_OGG_VORBIS_MODE_2_PLUSOgg Vorbis
0x6771WAVE_FORMAT_OGG_VORBIS_MODE_3_PLUSOgg Vorbis
0x7000WAVE_FORMAT_3COM_NBX3COM Corp.
0x704FWAVE_FORMAT_OPUSOpus
0x706DWAVE_FORMAT_FAAD_AAC
0x7361WAVE_FORMAT_AMR_NBAMR Narrowband
0x7362WAVE_FORMAT_AMR_WBAMR Wideband
0x7363WAVE_FORMAT_AMR_WPAMR Wideband Plus
0x7A21WAVE_FORMAT_GSM_AMR_CBRGSMA/3GPPAdaptive multirate
0x7A22WAVE_FORMAT_GSM_AMR_VBR_SIDGSMA/3GPPAMR with silence detection
0xA100WAVE_FORMAT_COMVERSE_INFOSYS_G723_1Comverse Infosys
0xA101WAVE_FORMAT_COMVERSE_INFOSYS_AVQSBCComverse Infosys
0xA102WAVE_FORMAT_COMVERSE_INFOSYS_SBCComverse Infosys
0xA103WAVE_FORMAT_SYMBOL_G729_ASymbol TechnologiesSymbol Technology's G729A
0xA104WAVE_FORMAT_VOICEAGE_AMR_WBVoiceAge Corp.
0xA105WAVE_FORMAT_INGENIENT_G726Ingenient Technologies, Inc.Ingenient's G726
0xA106WAVE_FORMAT_MPEG4_AACISO/MPEG-4ISO/MPEG-4 advanced audio Coding
0xA107WAVE_FORMAT_ENCORE_G726Encore SoftwareEncore Software Ltd's G726
0xA108WAVE_FORMAT_ZOLL_ASAOZOLL Medical Corp.Windows Media RT Voice
0xA109WAVE_FORMAT_SPEEX_VOICExiph.org
0xA10AWAVE_FORMAT_VIANIX_MASCVianix LLC
0xA10BWAVE_FORMAT_WM9_SPECTRUM_ANALYZERMicrosoft
0xA10CWAVE_FORMAT_WMF_SPECTRUM_ANAYZERMicrosoft
0xA10DWAVE_FORMAT_GSM_610
0xA10EWAVE_FORMAT_GSM_620
0xA10FWAVE_FORMAT_GSM_660
0xA110WAVE_FORMAT_GSM_690
0xA111WAVE_FORMAT_GSM_ADAPTIVE_MULTIRATE_WB
0xA112WAVE_FORMAT_POLYCOM_G722Polycom
0xA113WAVE_FORMAT_POLYCOM_G728Polycom
0xA114WAVE_FORMAT_POLYCOM_G729_APolycom
0xA115WAVE_FORMAT_POLYCOM_SIRENPolycom
0xA116WAVE_FORMAT_GLOBAL_IP_ILBCGlobal IP
0xA117WAVE_FORMAT_RADIOTIME_TIME_SHIFT_RADIORadioTime
0xA118WAVE_FORMAT_NICE_ACANice Systems
0xA119WAVE_FORMAT_NICE_ADPCMNice Systems
0xA11AWAVE_FORMAT_VOCORD_G721Vocord Telecom
0xA11BWAVE_FORMAT_VOCORD_G726Vocord Telecom
0xA11CWAVE_FORMAT_VOCORD_G722_1Vocord Telecom
0xA11DWAVE_FORMAT_VOCORD_G728Vocord Telecom
0xA11EWAVE_FORMAT_VOCORD_G729Vocord Telecom
0xA11FWAVE_FORMAT_VOCORD_G729_AVocord Telecom
0xA120WAVE_FORMAT_VOCORD_G723_1Vocord Telecom
0xA121WAVE_FORMAT_VOCORD_LBCVocord Telecom
0xA122WAVE_FORMAT_NICE_G728Nice Systems
0xA123WAVE_FORMAT_FRACE_TELECOM_G729France Telecom
0xA124WAVE_FORMAT_CODIANCODIAN
0xAC40WAVE_FORMAT_DOLBY_AC4Dolby AC-4
0xF1ACWAVE_FORMAT_FLACflac.sourceforge.net
0xFFFEWAVE_FORMAT_EXTENSIBLEMicrosoft
0xFFFFWAVE_FORMAT_DEVELOPMENT

Learning References

Specification

  • [RIFF1991] Multimedia Programming Interface and Data Specifications 1.0(1991). See pages 56-65.
  • [RIFF1994] New Multimedia Data Types and Data Techniques 3.0(1994). See pages 12-22.