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 ID | Name | Content |
|---|---|---|
COMM | Common | Channel count, sample frame count, bit depth, sample rate (80-bit extended) |
SSND | Sound Data | Raw audio samples |
MARK | Markers | Named positions within the audio (loop points, cue markers) |
INST | Instrument | MIDI note mapping: base note, low/high note range, velocity range, gain, sustain loop |
NAME | Name | File name string |
AUTH | Author | Author/creator string |
(c) | Copyright | Copyright notice |
ANNO | Annotation | Free-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.
| Trait | Source | Condition | Example |
|---|---|---|---|
sample_rate | COMM chunk (80-bit extended float) | Always present | 44100 |
channels | COMM chunk (2 bytes BE) | Always present | 2 |
bit_depth | COMM chunk (2 bytes BE) | Always present | 16 |
base_note | INST chunk (1 byte) | If INST chunk present | 60 (Middle C) |
low_note | INST chunk (1 byte) | If INST chunk present | 0 |
high_note | INST chunk (1 byte) | If INST chunk present | 127 |
author | AUTH chunk | If present | Spitfire 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