This commit is contained in:
Jamie Hardt
2023-11-08 15:42:59 -08:00
parent d7540b0a79
commit c002120c61

View File

@@ -52,9 +52,9 @@ WAVE file
without having to re-write the file or audio data.
.IP 2)
Older authorites recommend placing metadata before the audio data, so
clients reading the file sequentially will hit it before having to seek
through the audio. This may have improved metadata read performance at one
time.
clients reading the file sequentially will hit it before having to seek through
the audio. This may have improve metadata read performance on certain
architecures.
.IP 3)
Older authorities also recommend inserting
.I JUNK
@@ -63,18 +63,18 @@ before the
chunk, sized in such a way so that the first byte of the
.I data
payload lands immediately at 0x1000 (4096), because this was a common
factor of the page boundaries of many operating systems and architectures.
This could optimize the audio I/O performance in certain situations.
factor of the page boundaries of many operating systems and architectures. This
may optimize the audio I/O performance in certain situations.
.IP 4)
Modern implemenations (we're looking at
.B Pro Tools
here) tend to place the Broadcast-WAVE
.I bext
metadata before the data, followed by the data itself, and then other
data after that.
metadata before the data, followed by the data itself, and then other data
after that.
.PP
Clients reading WAVE files should be tolerant and accept any configuration
of chunks, and should accept any file as long as the obligatory
Clients reading WAVE files should be tolerant and accept any configuration of
chunks, and should accept any file as long as the obligatory
.I fmt
and
.I data
@@ -87,32 +87,30 @@ these chunks, in this order, and to hard-code the offsets of the short
.I fmt
chunk and
.I data
chunk into their program, and this is something that should always be
checked when evaluating a new tool, just to make sure the developer
didn't do this. Many coding examples and WAVE file explainers from the
90s and early aughts give the basic layout of a WAVE file and naive devs
go along with it.
chunk into their program, and this is something that should always be checked
when evaluating a new tool, just to make sure the developer didn't do this.
Many coding examples and WAVE file explainers from the 90s and early aughts
give the basic layout of a WAVE file and naive devs go along with it.
.SS Encoding and Decoding Text Metadata
.PP
Modern metadata systems, anything developed since the late aughts, will
defer encoding to an XML parser so when dealing with
Modern metadata systems, anything developed since the late aughts, will defer
encoding to an XML parser so when dealing with
.I ixml
or
.I axml
so a client can mostly ignore this problem.
.PP
The most established metadata systems are older than this though, and
so the entire weight of text encoding history falls upon the client.
The most established metadata systems are older than this though, and so the
entire weight of text encoding history falls upon the client.
.PP
The original WAVE specification, a part of the Microsoft/IBM Multimedia
interface of 1991, was written at a time when Windows was an ascendant
and soon-to-be dominant desktop environment. Audio files were almost
never shared via LANs or the Internet or any other way.
When audio files were shared, among the miniscule number of people
who did this, it was via BBS or usenet. Users at this time may have
ripped them from CDs, but the cost of hard drives and low quality of
compressed formats at the time made this little more than a curiosity.
There was no
interface of 1991, was written at a time when Windows was an ascendant and
soon-to-be dominant desktop environment. Audio files were almost
never shared via LANs or the Internet or any other way. When audio files were
shared, among the miniscule number of people who did this, it was via BBS or
usenet. Users at this time may have ripped them from CDs, but the cost of hard
drives and low quality of compressed formats at the time made this little more
than a curiosity. There was no
.I CDBaby or
.I CDDB
to download and populate metadata from at this time.
@@ -121,16 +119,16 @@ So, the
.I INFO
and
.I cue
metadata systems, which are by far the most prevalent and supported,
were published two years before the so-called "Endless September" of
1993 when the Internet became mainstream, when Unicode was still a
twinkle in the eye, and two years before Ariana Grande was born.
metadata systems, which are by far the most prevalent and supported, were
published two years before the so-called "Endless September" of 1993 when the
Internet became mainstream, when Unicode was still a twinkle in the eye, and
two years before Ariana Grande was born.
.PP
The safest assumption, and the mandate of the Microsoft, is that all
text metadata, by default, be encoded in Windows codepage 819,
a.k.a. ISO Latin alphabet 1, or ISO 8859-1. This covers most Western
European scripts but excludes all of Asia, Russia and most of the European
Near East, the Middle East.
The safest assumption, and the mandate of the Microsoft, is that all text
metadata, by default, be encoded in Windows codepage 819, a.k.a. ISO Latin
alphabet 1, or ISO 8859-1. This covers most Western European scripts but
excludes all of Asia, Russia and most of the European Near East, the Middle
East.
.SH CHUNK MENAGERIE
A list of chunks that you may find in a wave file from our experience.
.SS Essential WAV Chunks