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