AIFF
Byte order: Big-endian
Offset Length Contents
0 4 bytes "FORM"
4 4 bytes <File size - 8>
8 4 bytes "AIFF"
[ // Chunks
4 bytes <Chunk magic>
4 bytes <Chunk data size(x)>
(x)bytes <Chunk data>
]*
COMM chunk: Must be defined
0 4 bytes "COMM"
4 4 bytes <COMM chunk size> // (=18)
8 2 bytes <Number of channels(c)>
10 4 bytes <Number of frames(f)>
14 2 bytes <bits/samples(b)> // 1..32
16 10 bytes <Sample rate (Extended 80-bit floating-point format)>
FORM chunk:
0 4 bytes "FORM"
4 4 bytes <FORM chunk size(x)>
8 (x)bytes <FORM chunk>
INST chunk:
0 4 bytes "INST"
4 4 bytes <INST chunk size(x)>
8 (x)bytes <INST chunk>
MARK chunk:
0 4 bytes "MARK"
4 4 bytes <MARK chunk size(x)>
8 (x)bytes <MARK chunk>
SKIP chunk:
0 4 bytes "SKIP"
4 4 bytes <SKIP chunk size(x)>
8 (x)bytes <SKIP chunk>
SSND chunk: Must be defined
0 4 bytes "SSND"
4 4 bytes <Chunk size(x)>
8 4 bytes <Offset(n)>
12 4 bytes <block size> // (=0)
16 (n)bytes Comment
16+(n) (s)bytes <Sample data> // (s) := (x) - (n) - 8