Au file format
||This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. (January 2013)|
|Internet media type||
|Developed by||Sun Microsystems|
|Type of format||audio file format, container format|
|Container for||Audio, most often µ-law|
The Au file format is a simple audio file format introduced by Sun Microsystems. The format was common on NeXT systems and on early Web pages. Originally it was headerless, being simply 8-bit µ-law-encoded data at an 8000 Hz sample rate. Hardware from other vendors often used sample rates as high as 8192 Hz, often integer factors of video clock signals. Newer files have a header that consists of six unsigned 32-bit words, an optional information chunk and then the data (in big endian format).
Although the format now supports many audio encoding formats, it remains associated with the µ-law logarithmic encoding. This encoding was native to the SPARCstation 1 hardware, where SunOS exposed the encoding to application programs through the /dev/audio interface. This encoding and interface became a de facto standard for Unix sound.
All fields are stored in big-endian format, including the sample data.
|32 bit word (unsigned)||field||Description/Content Hexadecimal numbers in C notation|
|0||magic number||the value 0x2e736e64 (four ASCII characters ".snd")|
|1||data offset||the offset to the data in bytes, must be divisible by 8. The minimum valid number is 24 (decimal), since this is the header length (six 32-bit words) with no space reserved for extra information (the annotation field). The minimum valid number with an annotation field present is 32 (decimal).|
|2||data size||data size in bytes. If unknown, the value 0xffffffff should be used.|
|3||encoding||Data encoding format:
|4||sample rate||the number of samples/second, e.g., 8000|
|5||channels||the number of interleaved channels, e.g., 1 for mono, 2 for stereo; more channels possible, but may not be supported by all readers.|
The type of encoding depends on the value of the "encoding" field (word 3 of the header). Formats 2 through 7 are uncompressed linear PCM, therefore technically lossless (although not necessarily free of quantisation error, especially in 8-bit form). Formats 1 and 27 are μ-law and A-law, respectively, both companding logarithmic representations of PCM, and arguably lossy as they pack what would otherwise be almost 16 bits of dynamic range into 8 bits of encoded data, even though this is achieved by an altered dynamic response and no data is actually "thrown away". Formats 23 through 26 are ADPCM, which is an early form of lossy compression, usually but not always with 4 bits of encoded data per audio sample (for 4:1 efficiency with 16-bit input, or 2:1 with 8-bit; equivalent to e.g. encoding CD quality MP3 at a 352kbit rate using a low quality encoder). Several of the others are DSP commands or data, designed to be processed by the NeXT Music Kit software.
Note: PCM formats appear to be encoded as signed data (as opposed to than unsigned).
Following the header structure is a variable-length annotation field. The contents of this field are currently undefined, except that its length must be a non-zero multiple of eight bytes and it must be terminated with at least one null (zero) byte. The audio data segment begins on an eight-byte boundary immediately following the annotation field. Audio data is encoded in the format identified by the file header. The current implementation supports only a single audio data segment per file. The variable-length annotation field is currently ignored by most audio applications.