Introduction
AIFF-C is the 1991 extension of Apple’s AIFF for compressed audio. The file’s form
type is AIFC, and the common chunk gains a compression type and name.
Despite the name, many AIFF-C files hold plain PCM: the compression type
NONE means big-endian PCM, and sowt, which Apple added for
Mac OS X, means little-endian PCM. Others carry floats, µ-law, A-law or a real codec
such as IMA ADPCM.
Files use the extensions .aifc, .aiff and .aif.
The extension does not decide the format; the form type does.
Structure
An AIFF-C file is one IFF FORM chunk with the form type AIFC,
holding chunks in any order; see Chunks.
Three chunks are required: the format version chunk FVER, the
common chunk
COMM, and the sound data
chunk SSND, unless there are no sample frames.
Compression types name
the codec. Optional metadata
chunks carry markers, comments and instrument settings.
0FORM chunk ID, length, form typeAIFC12 bytes
Telling it apart
Bytes 0 to 3 are FORM and bytes 8 to 11 are AIFC. A file with
AIFF at offset 8 is plain AIFF.
The Mac’s own file-type code can differ from the form type, so the bytes are the
reliable test.
Variants
- Audio Interchange File Format (AIFF) – uncompressed big-endian PCM
- Audio Interchange File Format with compression (AIFF-C) – adds a compression type, a version chunk and little-endian PCM
Links
Software
- QuickTime Player – Apple’s built-in media player, which plays AIFF-C (macOS)
- Audacity – free audio editor that opens AIFF-C (Windows, macOS, Linux)
- VLC media player – free player for almost any audio or video file (Windows, macOS, Linux, mobile)
- FFmpeg – command-line tool that reads and writes AIFF-C with many of the compression types (Windows, macOS, Linux)
Developers
- libsndfile – library that reads and writes AIFF-C (C)
- libavformat – FFmpeg’s container library, which demuxes AIFF-C (C)
Reference
- AIFF and AIFF-C file format notes – McGill University’s notes, with the original Apple specifications and a table of compression types
- Sound storage formats – Apple’s Inside Macintosh on AIFF and AIFF-C