The sample format is a 32-bit word arranged in hex nybbles: &xxyyicff

ff = | bits 0-7: | format:
|  |  | &00 | 8-bit signed linear
|  |  | &01 | 8-bit unsigned linear
|  |  | &02 | 8-bit A-law
|  |  | &03 | 8-bit µ-law
|  |  | &04 | 8-bit µ-law rol 1 (system VIDC)
|  |  | &08 | 16-bit signed linear little endian
|  |  | &09 | 16-bit unsigned linear little endian
|  |  | &0A | 16-bit signed linear big endian
|  |  | &0B | 16-bit unsigned linear big endian
|  |  | &0C | 12-bit signed linear little endian
|  |  | &0D | 12-bit unsigned linear little endian
|  |  | &0E | 12-bit signed linear big endian
|  |  | &0F | 12-bit unsigned linear big endian
|  |  | &10 | 4-bit MS ADPCM little endian
|  |  | &11 | 4-bit IMA ADPCM little endian
|  |  | &13 | 4-bit IMA ADPCM big endian
|  |  | &15 | 3-bit IMA ADPCM little endian
|  |  | &19 | 2-bit IMA ADPCM little endian
|  |  | &1B | 2-bit IMA ADPCM big endian
|  |  | others are undefined and reserved
c = | bits 8-11: | channels, only 1 or 2 defined
i = | bits 12-15: | stereo interleaf-1 (0->1 .. 15->16) #L then #R
yy = | bits 16-23: | file sub-format
xx = | bits 24-31: | file format

The upper 16 bits (xxyy) are not used by PlayIt_Open but can contain information about the format of the sample file. The auto-detect facility sets these to inform the caller of the type of file detected. The sub-format (yy) is the file's internal format code and requires knowledge of the file format indicated by xx to attach meaning to it.

Gaps in the ADPCM format codes are reserved for hypothetical or unimplemented variations. See the information on IMA ADPCM for important information about stereo interleaving of this format and some other notes.

[ Parent ] [ Manual root ]