IFF

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Resources)
(17 intermediate revisions by 3 users not shown)
Line 5: Line 5:
 
|locfdd={{LoCFDD|fdd000115}}
 
|locfdd={{LoCFDD|fdd000115}}
 
|pronom={{PRONOM|x-fmt/157}}
 
|pronom={{PRONOM|x-fmt/157}}
 +
|released=1985
 
}}
 
}}
:''This article is about the generic IFF metaformat. For the IFF '''image format''', see [[ILBM]].''
+
:''This article is about the generic IFF metaformat. For the IFF '''image format''', see [[ILBM]]. For Sun IFF, see [[Sun TAAC image]].''
  
'''IFF''' (Interchange File Format) is a file format introduced by Electronic Arts on the Commodore Amiga computer. Its structure is similar to [[RIFF]] or [[PNG]], using various self-contained chunks to contain different data. Multi-byte numeric values are [[Endianness|big-endian]].
+
'''IFF''' ('''Interchange File Format''') is a general-purpose binary file format introduced by Electronic Arts on the Commodore Amiga computer in 1985. It is sometimes known as '''IFF 85'''.
  
Although ''IFF'' is most commonly used as an image format (using the file extension <code>.iff</code>), it can actually hold a lot of different data types. Some examples of IFF files are
+
== Format details ==
*[[ILBM]] Interleaved bitmap image
+
An IFF file is composed of elements called "chunks". Each chunk consists of a [[FourCC|4-byte type identifier]] (represented by four ASCII characters), a 4-byte length, and the chunk's payload data. Some types of chunks contain a sequence of nested chunks. Multi-byte numeric values are [[Endianness|big-endian]].
*[[XMI (Extended MIDI)|XMI]] XMidi music files
+
 
*[[8-Bit Sampled Voice|8SVX]] audio sample data
+
IFF defines a number of standard chunks types. Additional types are invented as needed by IFF-based formats.
*[[Propellerhead Reason NN-XT Patch File|SX2]] Propellerhead Reason NN-XT patches
+
 
*[[ANIM]]
+
Of particular significance is chunk type <code>FORM</code>. Most IFF-based files are formatted as a single <code>FORM</code> chunk. A <code>FORM</code> chunk's data contains a four-byte "FORM type" code, indicating the data type, followed by a sequence of nested chunks.
Some other formats are largely or heavily influenced by the IFF standard, but are not compatible. These include, for example:
+
 
*Erlang BEAM compiled modules<ref>http://www.erlang.org/doc/man/beam_lib.html</ref><ref>http://www.erlang.se/~bjorn/beam_file_format.html</ref>: Uses 4 byte alignment instead of 2 byte, and the root chunk has a different ID (<code>FOR1</code> instead of <code>FORM</code>)
+
An IFF-based format whose FORM type is ''xxxx'' might be referred to as "FORM ''xxxx''". FORM types may also be used as filename extensions.
*Microsoft's [[RIFF]] and [[RIFX]] formats are based on IFF (RIFF uses [[Endianness|little-endian]] byte order instead, and the root chunk is called <code>RIFF</code> instead of <code>FORM</code>)
+
*Apple's [[AIFF]] and [[AIFC]] formats are similar to IFF/RIFF as well
+
*[[Maya IFF]]
+
  
 
== Identification ==
 
== Identification ==
IFF files begin with the ASCII characters "<code>FORM</code>".
+
Most IFF files begin with the ASCII characters "<code>FORM</code>". The file type is then indicated by the 4-byte ASCII code beginning at offset 8.
  
== References ==
+
There are also aggregate formats that begin with "<code>LIST</code>" or "<code>CAT&nbsp;</code>".
<references/>
+
  
==Resources==
+
== FORM type cross-reference ==
* [http://www.martinreddy.net/gfx/2d/IFF.txt The original EA spec] ([http://www.textfiles.com/programming/FORMATS/ea.iff Another copy at textfiles.com])
+
Selected FORM types, and related articles, are listed below. See also [[:Category:IFF based file formats]].
 +
 
 +
{| class="wikitable"
 +
! FORM type
 +
! Refer to
 +
! Remarks
 +
|-
 +
| <code>8SVX</code> || [[8-Bit Sampled Voice]] || 8-bit sampled sound voice; listed in the original IFF spec.
 +
|-
 +
| <code>ACBM</code> || [[ILBM#ACBM]] ||
 +
|-
 +
| <code>AIFC</code> || [[AIFC]] ||
 +
|-
 +
| <code>AIFF</code> || [[AIFF]] ||
 +
|-
 +
| <code>AMFF</code> || [[Amiga Metafile]] ||
 +
|-
 +
| <code>ANBM</code> || || Animated bitmap; listed in the original IFF spec.
 +
|-
 +
| <code>ANIM</code> || [[ANIM]] ||
 +
|-
 +
| <code>DEEP</code> || [[IFF-DEEP]] ||
 +
|-
 +
| <code>FAXX</code> || [[FAXX]] ||
 +
|-
 +
| <code>FNTR</code> || || Raster font; listed in the original IFF spec.
 +
|-
 +
| <code>FNTV</code> || || Vector font; listed in the original IFF spec.
 +
|-
 +
| <code>FTXT</code> || || Formatted text; listed in the original IFF spec.
 +
|-
 +
| <code>GSCR</code> || || General-use musical score; listed in the original IFF spec.
 +
|-
 +
| <code>ICON</code> || [[GlowIcons]] ||
 +
|-
 +
| <code>IFRS</code> || [[Blorb]] ||
 +
|-
 +
| <code>ILBM</code> || [[ILBM]] || Interleaved raster bitmap image; listed in the original IFF spec.
 +
|-
 +
| <code>LWLO</code>, <code>LWOB</code>, <code>LWO2</code> || [[LightWave Object]]
 +
|-
 +
| <code>MAUD</code> || [[IFF-MAUD]] || Amiga sound format
 +
|-
 +
| <code>PBM</code> || [[ILBM#PBM]] ||
 +
|-
 +
| <code>PDEF</code> || || Deluxe Print page definition; listed in the original IFF spec.
 +
|-
 +
| <code>PICS</code> || || Macintosh picture; listed in the original IFF spec.
 +
|-
 +
| <code>PLBM</code> || || (obsolete); listed in the original IFF spec.
 +
|-
 +
| <code>SCDH</code> || || Sim City 2000 saved city (*.sc2)
 +
|-
 +
| <code>SMUS</code> || || Simple musical score; listed in the original IFF spec. [http://1fish2.github.io/IFF/IFF%20docs%20with%20Commodore%20revisions/SMUS.pdf]
 +
|-
 +
| <code>TDDD</code> || [[TDDD]], [[Imagine Object File]]
 +
|-
 +
| <code>USCR</code> || || Uhuru Sound Software musical score; listed in the original IFF spec.
 +
|-
 +
| <code>UVOX</code> || || Uhuru Sound Software Macintosh voice; listed in the original IFF spec.
 +
|-
 +
| <code>VDEO</code> || || Deluxe Video Construction Set video; listed in the original IFF spec.
 +
|}
 +
 
 +
== Variant formats ==
 +
Some other formats are largely or heavily influenced by the IFF standard, but are not compatible. These include, for example:
 +
* Erlang [[BEAM]] compiled modules: Uses 4 byte alignment instead of 2 byte, and the root chunk has a different ID (<code>FOR1</code> instead of <code>FORM</code>)
 +
* Microsoft's [[RIFF]] and [[RIFX]] formats are based on IFF (RIFF uses [[Endianness|little-endian]] byte order instead, and the root chunk is called <code>RIFF</code> instead of <code>FORM</code>)
 +
* Apple's [[AIFF]] and [[AIFC]] formats are similar to IFF/RIFF as well
 +
* [[Maya IFF]]
 +
 
 +
== Specifications ==
 +
* [http://1fish2.github.io/IFF/ The EA IFF-85 Repository]
 +
** [http://1fish2.github.io/IFF/IFF%20docs%20with%20Commodore%20revisions/EA%20IFF%2085.pdf EA IFF 85] - January 14, 1985 (Updated Oct, 1988 Commodore-Amiga, Inc.)
 +
** [http://1fish2.github.io/IFF/IFF%20docs%20with%20Commodore%20revisions/IFF%20Quick%20Intro.pdf A Quick Introduction to IFF]
 +
** [https://github.com/1fish2/IFF/blob/master/IFF%20retrospective.md IFF Retrospective] by Jerry Morrison, 2013
 +
** [https://github.com/1fish2/IFF/blob/master/64-bit%20IFF.md 64-bit IFF] (abandoned)
 +
* [http://wiki.amigaos.net/wiki/EA_IFF_85_Standard_for_Interchange_Format_Files EA IFF 85] (Updated October, 1988 Amiga, Inc.) - From AmigaOS Documentation Wiki
 +
* [http://www.martinreddy.net/gfx/2d/IFF.txt The original EA spec]
 +
** [http://www.textfiles.com/programming/FORMATS/ea.iff Another copy at textfiles.com]
 +
* [http://wiki.amigaos.net/wiki/FTXT_IFF_Formatted_Text FTXT IFF Formatted Text] - From AmigaOS Documentation Wiki ''[Ed. note: This is the supplemental FTXT document mentioned in the IFF spec. TODO: Find a copy of this document that is closer to its original form.]''
 +
** [http://amigadev.elowar.com/read/ADCD_2.1/Devices_Manual_guide/node0167.html Another copy of the above document]
 +
* [http://www.fileformat.info/format/iff/spec/7866a9f0e53c42309af667c5da3bd426/view.htm IFF.TXT] - A concatenation of about a dozen IFF-related documents, from FileFormat.Info
 +
 
 +
== Links ==
 
* [http://wiki.amigaos.net/wiki/IFF_FORM_and_Chunk_Registry IFF chunk registry], defining all known chunks
 
* [http://wiki.amigaos.net/wiki/IFF_FORM_and_Chunk_Registry IFF chunk registry], defining all known chunks
 
* [http://wiki.amigaos.net/wiki/IFF_Source_Code IFF Source Code]
 
* [http://wiki.amigaos.net/wiki/IFF_Source_Code IFF Source Code]
 
* [http://rewiki.regengedanken.de/wiki/.IFF REWiki: .IFF]
 
* [http://rewiki.regengedanken.de/wiki/.IFF REWiki: .IFF]
* [http://www.fileformat.info/format/iff/egff.htm IFF File Format Summary]
+
* {{EGFF|iff|IFF File Format Summary}}, from the [[Encyclopedia of Graphics File Formats]]
 
* [http://www.textfiles.com/programming/FORMATS/admusfmt.pro 1994 "advanced music formats" discussion that covers some IFF formats]
 
* [http://www.textfiles.com/programming/FORMATS/admusfmt.pro 1994 "advanced music formats" discussion that covers some IFF formats]
 
* [http://www.ibm.com/developerworks/library/pa-spec16/ IBM developerWorks: The Interchange File Format]
 
* [http://www.ibm.com/developerworks/library/pa-spec16/ IBM developerWorks: The Interchange File Format]
 +
* [http://sandervanderburg.blogspot.com/2012/06/iff-file-format-experiments.html IFF file format experiments]
  
[[Category:IFF based file formats]]
+
[[Category:IFF based file formats| ]]
 +
[[Category:Audio and Music]]
 
[[Category:Graphics]]
 
[[Category:Graphics]]
 +
[[Category:Video]]
 
[[Category:Amiga]]
 
[[Category:Amiga]]
[[Category:Audio and Music]]
 
 
[[Category:Electronic Arts]]
 
[[Category:Electronic Arts]]

Revision as of 15:32, 22 September 2018

File Format
Name IFF
Ontology
Extension(s) .iff, many others
LoCFDD fdd000115
PRONOM x-fmt/157
Released 1985
This article is about the generic IFF metaformat. For the IFF image format, see ILBM. For Sun IFF, see Sun TAAC image.

IFF (Interchange File Format) is a general-purpose binary file format introduced by Electronic Arts on the Commodore Amiga computer in 1985. It is sometimes known as IFF 85.

Contents

Format details

An IFF file is composed of elements called "chunks". Each chunk consists of a 4-byte type identifier (represented by four ASCII characters), a 4-byte length, and the chunk's payload data. Some types of chunks contain a sequence of nested chunks. Multi-byte numeric values are big-endian.

IFF defines a number of standard chunks types. Additional types are invented as needed by IFF-based formats.

Of particular significance is chunk type FORM. Most IFF-based files are formatted as a single FORM chunk. A FORM chunk's data contains a four-byte "FORM type" code, indicating the data type, followed by a sequence of nested chunks.

An IFF-based format whose FORM type is xxxx might be referred to as "FORM xxxx". FORM types may also be used as filename extensions.

Identification

Most IFF files begin with the ASCII characters "FORM". The file type is then indicated by the 4-byte ASCII code beginning at offset 8.

There are also aggregate formats that begin with "LIST" or "CAT ".

FORM type cross-reference

Selected FORM types, and related articles, are listed below. See also Category:IFF based file formats.

FORM type Refer to Remarks
8SVX 8-Bit Sampled Voice 8-bit sampled sound voice; listed in the original IFF spec.
ACBM ILBM#ACBM
AIFC AIFC
AIFF AIFF
AMFF Amiga Metafile
ANBM Animated bitmap; listed in the original IFF spec.
ANIM ANIM
DEEP IFF-DEEP
FAXX FAXX
FNTR Raster font; listed in the original IFF spec.
FNTV Vector font; listed in the original IFF spec.
FTXT Formatted text; listed in the original IFF spec.
GSCR General-use musical score; listed in the original IFF spec.
ICON GlowIcons
IFRS Blorb
ILBM ILBM Interleaved raster bitmap image; listed in the original IFF spec.
LWLO, LWOB, LWO2 LightWave Object
MAUD IFF-MAUD Amiga sound format
PBM ILBM#PBM
PDEF Deluxe Print page definition; listed in the original IFF spec.
PICS Macintosh picture; listed in the original IFF spec.
PLBM (obsolete); listed in the original IFF spec.
SCDH Sim City 2000 saved city (*.sc2)
SMUS Simple musical score; listed in the original IFF spec. [1]
TDDD TDDD, Imagine Object File
USCR Uhuru Sound Software musical score; listed in the original IFF spec.
UVOX Uhuru Sound Software Macintosh voice; listed in the original IFF spec.
VDEO Deluxe Video Construction Set video; listed in the original IFF spec.

Variant formats

Some other formats are largely or heavily influenced by the IFF standard, but are not compatible. These include, for example:

  • Erlang BEAM compiled modules: Uses 4 byte alignment instead of 2 byte, and the root chunk has a different ID (FOR1 instead of FORM)
  • Microsoft's RIFF and RIFX formats are based on IFF (RIFF uses little-endian byte order instead, and the root chunk is called RIFF instead of FORM)
  • Apple's AIFF and AIFC formats are similar to IFF/RIFF as well
  • Maya IFF

Specifications

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox