WAVE-hul Module

1 Introduction

The WAVE-hul module recognizes and validates the Audio for Windows format (WAVE) [WAVE, WAVEFORMAT]. WAVE is a variant of the Microsoft RIFF format [RIFF], which is itself an implementation of the Electronic Arts IFF 85 format [IFF].

The module can be invoked with the following command-line option:

  jhove ... -m WAVE-hul ...

2 Coverage

The WAVE-hul module recognizes and validates the following public profiles:

3 Well-Formedness

The following criteria must be met by a WAVE object for JHOVE to consider it well-formed:

4 Validity

The following criteria must be met by a WAVE file for JHOVE to consider it valid:

5 Representation Information

The MIME type is reported as: audio/vnd.wave.

In addition to the standard JHOVE representation information, the following WAVE-specific properties are reported:

The WAVE module recognizes the following chunks:

The WAVE module reports audio properties using the draft standard AES-X098B, Core audio metadata XML definition, developed by the Audio Engineering Society (AES) SC-03-06 Working Group on Digital Library and Archive Systems.

5.1 Profiles

WAVE is a format for uncompressed or compressed sampled audio. The format is defined informally by references to various Microsoft API data structures:

The baseline fmt chunk is defined by the WAVEFORMAT structure with a length of 14 bytes:

  WORD  wFormatTag
  WORD  nChannels
  DWORD nSamplesPerSec
  DWORD nAvgBytesPerSec
  WORD  nBlockAlign

Where WORD indicates a 16-bit unsigned integer and DWORD indicates a 32-bit unsigned integer.

The specific form of the sampled data is specified by the fmt chunk's wFormatTag field. For a list of registered wFormatTag values, see RFC 2361 [RFC 2361].

PCMWAVEFORMAT

This is an extension to the WAVEFORMAT profile in which the fmt chunk is defined by the PCMWAVEFORMAT structure with a length of 16 bytes [PCMWAVEFORMAT]:

  WAVEFORMAT
  WORD  wBitsPerSample

Profile requirements include:

WAVEFORMATEX

This is an extension to the PCMWAVEFORMAT profile supporting both PCM and non-PCM audio formats [WAVEFORMATEX]. The fmt chunk is defined by the WAVEFORMATEX structure with a length ≥ 18 bytes:

  PCMWAVEFORMAT
  WORD  cbSize

Profile requirements include:

WAVEFORMATEXTENSIBLE

This is the most recent version of the Microsoft WAVE format for audio sample data with greater than two channels or 16-bit sampling [WAVEFORMATEXTENSIBLE]. The fmt chunk is defined by the WAVEFORMATEXTENSIBLE structure with a length ≥ 40 bytes:

  WAVEFORMATEX
  UNION samples   {
    WORD  wValidBitsPerSample
    WORD  wSamplesPerBlock
    WORD  wReserved
  }
  DWORD dwChannelMask
  GUID  subFormat {
    DWORD f1
    WORD  f2
    WORD  f3
    CHAR  f4[8]
  }

Where UNION is a C-style union structure and CHAR is an 8-bit unsigned integer.

Profile requirements include:

BWF

Broadcast Wave Format is an extension of the WAVEFORMATEX profile, defined by the European Broadcast Union (EBU) as EBU Technical Specification 3285 and its supplements [BWF, BWF Supp 1, BWF Supp 2, BWF Supp 3, BWF Supp 4, BWF Supp 5, BWF Supp 6].

Profile requirements include:

6 Additional Module Properties