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 base MIME type is reported as audio/vnd.wave, but may be extended with a codec parameter as described in RFC 2361 [RFC 2361].

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

The 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.

The module can recognize and process the following chunks:

Top-level chunks
ID List Type Name Property References
bext Broadcast Audio Extension BroadcastAudioExtension [BWF]
cue Cue Points CuePoints [WAVE]
data Data Data [WAVE]
ds64 Data Size 64 [RF64]
fact Fact Fact [WAVE]
fmt Format [WAVE, WAVEFORMAT,
PCMWAVEFORMAT,
WAVEFORMATEX,
WAVEFORMATEXTENSIBLE]
inst Instrument Instrument [MDSU]
labl Label Label
levl Peak Envelope PeakEnvelope [BWF Supp 3]
link Link Link [BWF Supp 4]
list adtl Associated Data List
LIST adtl Associated Data List [WAVE]
LIST exif Exif List Exif [Exif]
LIST INFO Info List ListInfo [WAVE]
mext MPEG Audio Extension MPEG [BWF Supp 1]
note Note Note
smpl Sample Sample [MDSU]
Associated Data List chunks
ID Name Property References
labl Label Label [WAVE]
ltxt Text with Data Length LabeledTextItem [WAVE]
note Note Note [WAVE]
Exif List chunks
ID Name Property References
ecor Make Manufacturer [Exif]
emdl Model Model [Exif]
erel Related Information RelatedImageFile [Exif]
etim Time TimeCreated [Exif]
ever Version ExifVersion [Exif]
Info List chunks
ID Name Property References
IARL Archival Location ArchivalLocation [WAVE]
IART Artist Artist [WAVE]
ICMS Commissioned Commissioned [WAVE]
ICMT Comments Comments [WAVE]
ICOP Copyright Copyright [WAVE]
ICRD Creation Date CreationDate [WAVE]
ICRP Cropped Cropped [WAVE]
IDIM Dimensions Dimensions [WAVE]
IDPI Dots Per Inch DotsPerInch [WAVE]
IENG Engineer Engineer [WAVE]
IGNR Genre Genre [WAVE]
IKEY Keywords Keywords [WAVE]
ILGT Lightness Lightness [WAVE]
IMED Medium Medium [WAVE]
INAM Name Name [WAVE]
IPLT Palette Setting PaletteSetting [WAVE]
IPRD Product Product [WAVE]
ISBJ Subject Subject [WAVE]
ISFT Software Software [WAVE]
ISHP Sharpness Sharpness [WAVE]
ISRC Source Source [WAVE]
ISRF Source Form SourceForm [WAVE]
ITCH Technician Technician [WAVE]

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:

RF64

The RF64 format was defined by the European Broadcast Union (EBU) in EBU Technical Specification 3306 to allow WAVE format files and chunks to exceed 4 gigabytes in size [RF64].

Profile requirements include:

6 Additional Module Properties