Atlas Audio: AIFF Metadata Extractor

The AIFF Metadata extractor reads audio format metadata and instrument tuning data from AIFF files. It provides parity with the WAV BEXT extractor for Apple’s audio interchange format. It’s part of the Atlas Audio extractor pack.

Extension: .aif

Format Overview

AIFF (Audio Interchange File Format) is Apple’s uncompressed audio container, structurally similar to WAV’s RIFF format. It uses a FORM/AIFF container with typed chunks. The format was designed for sampler interchange and includes dedicated chunks for instrument mapping and marker data.

Binary Structure

Offset  Content
0x00    "FORM" container marker (4 bytes)
0x04    File size (4 bytes BE — note: big-endian, unlike WAV)
0x08    "AIFF" form type (4 bytes)
0x0C    Chunks begin

Chunk Types

Chunk IDNameContent
COMMCommonChannel count, sample frame count, bit depth, sample rate (80-bit extended)
SSNDSound DataRaw audio samples
MARKMarkersNamed positions within the audio (loop points, cue markers)
INSTInstrumentMIDI note mapping: base note, low/high note range, velocity range, gain, sustain loop
NAMENameFile name string
AUTHAuthorAuthor/creator string
(c) CopyrightCopyright notice
ANNOAnnotationFree-form annotation text

What It Extracts

The extractor produces traits only (no edges). AIFF files are audio data — they are referenced by instruments and projects, not the other way around.

TraitSourceConditionExample
sample_rateCOMM chunk (80-bit extended float)Always present44100
channelsCOMM chunk (2 bytes BE)Always present2
bit_depthCOMM chunk (2 bytes BE)Always present16
base_noteINST chunk (1 byte)If INST chunk present60 (Middle C)
low_noteINST chunk (1 byte)If INST chunk present0
high_noteINST chunk (1 byte)If INST chunk present127
authorAUTH chunkIf presentSpitfire Audio

Instrument Mapping

The INST chunk is particularly relevant for sample libraries. It defines how a sampler should map the audio file across the MIDI keyboard:

  • Base note — The MIDI note at which the sample plays at original pitch
  • Note range — The low and high MIDI notes across which the sample is mapped
  • Velocity range — The velocity window for the sample layer

This data is essential for understanding how samples are organized within an instrument.

Sample Rate

The COMM chunk stores sample rate as an 80-bit IEEE 754 extended precision float — a format unique to AIFF. The extractor converts this to a standard integer value.

Performance Notes

All metadata is in the chunk headers at the start of the file (typically within the first 100 bytes). The SSND chunk containing the audio data is the last and largest chunk. The extractor walks chunks by ID and size without reading audio data.

Example Usage

# Scan AIFF samples
atlas scan ~/Libraries/Samples/

# Find all 48kHz samples
atlas search --trait sample_rate "48000"

Use Cases

  • Sample rate auditing — Verify that all samples in a library share the same sample rate
  • MIDI mapping discovery — See how samples are mapped across the keyboard via INST chunk data
  • Format inventory — Catalog AIFF vs. WAV usage across libraries
  • Author attribution — Surface the AUTH chunk to identify sample creators