|
|
Music & Audio
|
.WAV File Meta Data
There's a rumor that .wav files cannot have meta data, however, they can.
Just like an .avi file a .wav file is a so-called "RIFF" file, and these files can have an "INFO" section which contains a series of sub sections called "chunks" which contain the meta data.
The cool thing about such "chunks" is that they can simply be ignored by the software reading the file if it doesn't understand them - a bit like how you can skip unknown tags in an XML file.
This means that when old software reads a file written by new software, it can simply skip the unknown parts.
Likewise, new software can read files written by old software and fill in the blanks itself.
This way you get both forwards as backwards compatibility.
Some software use ID3 tags (from the mp3 format) to store meta data in .wav files, but this is
an unfortunate choice because you do not get the compatibility benefits of using a chunk based format.
Here's a short list of what chunks a .wav file with meta data can consist of. First the overall structure of a .wav file, where "...." represents 4 bytes that show the length of each "chunk":
RIFF....WAVE
fmt ....<binary format data, sample rate channels etc.>
data....<raw audio data>
LIST....INFO
INAM....TRACK TITLE
IPRD....ALBUM TITLE
IART....ARTIST NAME
ICMT....COMMENTS
ICRD....YEAR
IGNR....GENRE
ITRK....TRACK NUMBER
Or explained in more detail...
Chunks in a .wav file
Main section | Chunk name | Purpose and contents |
RIFF....WAVE | Total RIFF structure container. This spans the entire file. The LIST elements sit inside this structure. |
fmt | This section is typically 16 bytes long and contains the basic info about samplerate, number of channels etc. This chunk is required. |
data | The audio data itself. In order to be able to read this, you must have the data from the "fmt" chunk. This chunk is required. |
cue | A cue chunk specifies one or more sample offsets which are often used to mark noteworthy sections of audio. |
bext | Broadcast extension chunk. This optional chunk contains multiple pieces of information all crammed into the same binary block. |
LIST....INFO | Meta data |
INAM | Track title. |
IPRD | The album title. |
IART | The artist who created this. |
ICRD | The creation date in YYYY-MM-DD format, however you should expect to see just YYYY in this field. |
ITRK | Track number. |
ICMT | A text comment. |
IKEY | The keywords for the project or file. |
ISFT | The software used to create the file. |
IENG | The engineer. |
ITCH | The technician. |
IGNR | Genre of content. |
ICOP | The copyright information. |
ISBJ | The subject. |
IENG | The name(s) of the engineer. Multiple names separated by a semicolon and a blank. |
ISRC | Source: the name of the person or organization that supplied the original subject of the file. |
LIST....adtl | Markers |
labl | An entry in an array containing an a label or name which is associated with the cue points from the "cue " tag in order to provide names for the markers. It seems to sit in its own LIST/INFO section separate from the meta data. |
Application support
Program name | Writes meta data? |
SoundForge 11 | Yes |
Audacity 2.4.2 | Yes |
Ffmpeg (2020-08-24) | Yes |
TagScanner 6.1.5 | ID3 only |
Samplitude Pro X4 | Bext only |
Sonoris ISRC Editor 1.0.3.0 | ISRC only (discards other meta data) |
WinAmp 5.666 | No (but reads it) |
Wavosaur 1.3.0.0 | No |
iZotope RX7 editor 7.01.315 | No |
Flac 1.3.3 | No (--keep-foreign-metadata fails to transfer meta tags correctly) |
Some of the software listed here may have changed since writing this list.
"Yes" means that a LIST....INFO meta data section is written according to the official specification.
"ID3" means it only writes an mp3 format id3 tag standard instead of the .wav format's own meta data standard.
"Bext" means it only writes Broadcast Extension section instead of the .wav format's own meta data standard.
Sources:
Download an example containing example meta data to see if your software reads this info correctly.
More sources: recordingblogs.com or IBM & Microsoft's RIFF specification
Website by Joachim Michaelis
|
|
|
|