Das AIFF Format ist ein von Apple für den Sound-Manager der Macintosh-Rechner entwickeltes Format.
AIFF-C ist eine weiterentwickelte Variante, die die Speicherung komprimierter Audio-Daten zuläßt.
Es handelt sich um eine Variante des "Interchange File Format" (IFF), ein von der Firma Electronic Arts für die Amiga-Computer entwickeltes Dateiformat. Viele heute verbreitete Dateiformate benutzen die Grundstruktur des IFF-Formats.
IFF benutzt zur Darstellung von Zahlen, die mehr als ein Byte Speicherplatz beanspruchen, die sog. "Big Endian Byte Order", d.h. die höhertwertigen Bytes werden zuerst abgespeichert.
Die Daten einer IFF-Datei sind in sogenannten "Chunks" abgespeichert, einer Blockstruktur, die hierarchisch geschachtelt werden kann:
![]() |
Der Header eines Chunks besteht aus einem 4 Byte langen Identifikationsstring und einer 32 Bit Integer-Zahl, welche die Länge des Datenbereichs angibt. Der Datenbereich kann seinerseits wieder andere Chunks enthalten, die der gleichen Spezifikation genügen müßen. |
Der oberste Chunk jeder IFF-Datei (der Chunk, der die ganze Datei umfaßt) trägt immer die Kennung "FORM" und die ersten 4 Bytes des Datenbereichs geben den Typ der Datei an. AIFF bzw. AIFF-C Dateien tragen die Kennung "AIFF" bzw. "AIFC".
AIFF / AIFF-C |
Die AIFF-Formate definieren Chunks, die Audio-Samples, Midi-Daten, Instrument-Beschreibungen oder Informationen wie Copyright, Autor etc. enthalten können. Im einzelnen sind folgende Chunks definiert:
Chunk-ID | Name | AIFF | AIFC | Beschreibung |
FVER | Format Version Chunk | - | X | Format-Version. Muß bei AIFF-C angegeben werden. |
COMM | Common Chunk | X | X | Enthält Informationen über die Sample-Rate, die Bits pro Sample etc. |
SNDD | Sound Data Chunk | X | X | Enthält die eigentlichen Sample-Daten. |
MARK | Marker Chunk | X | X | Markierungen, die Abschnitte in den Sound-Daten referenzieren. |
COMT | Comments Chunk | X | X | Kommentare über bestehende Marker. |
SAXL | Sound Accelerator Chunk | - | X | Hilfsinformationen, um die Dekomprimierung von Daten zu erleichtern/beschleunigen. |
INST | Instrument Chunk | X | X | Angaben für Instrumente, wie das Sample abzuspielen ist. (Notenbereich, Hüllkurve etc.) |
MIDI | MIDI Data Chunk | X | X | Enthält MIDI-Daten |
AESD | Audio Recording Chunk | X | X | Informationen über Audio-Devices (z.B. über das Echtzeitverhalten) |
APPL | Application Specific Chunk | X | X | Anwendungsspezifische Informationen |
NAME | Name Chunk | X | X | Der Name des Samples |
AUTH | Author Chunk | X | X | Der Autor des Files |
(c) | Copyright Chunk | X | X | Copyright-Vermerk |
ANNO | Annotation Chunk | X | X | Kommentar |
COMM -- der Common Chunk |
Der Common Chunk beschreibt die Eigenschaften einer AIFF-Datei. Aus den möglichen Werten dieses Chunks läßt sich die Flexibilität des AIFF-Formats ablesen.
Das AIFF-Format läßt die folgenden Aufzeichnungsformate zu:
Das AIFF-C-Format macht hier noch weitere Angaben über die Art der Datenkomprimierung.
SNDD -- der Sound Data Chunk |
Bei AIFF sind alle Kanäle eines Samples zu einem "Sample Frame" zusammengefaßt. Dadurch wird es möglich, eine AIFF-Datei beim Lesen von der Festplatte direkt abzuspielen, ohne sie zuvor komplett in den Speicher zu laden.
Die Frames können zudem an den Grenzen von Festplattenblöcken ausgerichtet werden, selbst wenn die Größe eines Blocks kein Vielfaches eines Frames ist. Dies erleichtert die Benutzung von AIFF in Echtzeitanwendungen.
MARK / COMT -- der Marker Chunk (und Kommentare zu den Markern) |
Es können beliebig viele Markierungen an beliebige Positionen der Datei gesetzt werden. Die Markierungen enthalten ein Datum und einen Kommentar.
Sie beziehen sich jedoch ausschließlich auf Frames. Es ist nicht möglich, nur einen Kanal zu markieren.
INST -- der Instrument Chunk |
Handelt es sich um die Samples eines Musikinstruments, so werden hier Informationen abgelegt, die benötigt werden, um diese korrekt abzuspielen:
Eine AIFF Datei kann also die kompletten Parameter eines digitalen Musikinstruments enthalten.
MIDI -- der MIDI Data Chunk |
Eine AIFF-Datei kann beliebig viele MIDI-Chunks enthalten. Es ist nicht festgelegt, welchem Zweck die MIDI-Daten dienen sollen.
Der Standard schlägt vor, hier z.B. System-Exklusive Daten für bestimmte Synthesizer abzulegen, für die die Möglichkeiten des Instrument-Chunks nicht ausreichen.