MOD (file format)
|This article needs additional citations for verification. (January 2010)|
|Developed by||Karsten "Obi" Obarski|
|Type of format||Video/music|
MOD is a computer file format used primarily to represent music, and was the first module file format. MOD files use the “.MOD” file extension, except on the Amiga where the original trackers instead use a “mod.” prefix scheme, e.g. “mod.echoing”. A MOD file contains a set of instruments in the form of samples, a number of patterns indicating how and when the samples are to be played, and a list of what patterns to play in what order.
The first version of the format was created by Karsten Obarski for use in the Ultimate Soundtracker; tracker software released for the Amiga computer in 1987. The format has since been supported by hundreds of playback programs and dozens of other trackers.
The original version of the MOD format featured four channels of simultaneous audio playback, corresponding to the capabilities of the original Amiga chipset, and up to 15 instruments.
Later variations of the format have extended this to up to 32 channels and 31 instruments.
The format was designed to be directly playable on the Amiga without additional processing: for example, samples are stored in 8-bit PCM format ready to be played on the Amiga DACs, and pattern data is not packed. Playback required very little CPU time on an Amiga, and many games used MOD files for their background music.
A common misconception is that the magic number "M.K." in the 0x438 offset of MOD files are the initials of Mahoney and Kaktus, two prominent Amiga demomakers at the time, who played an important part in the popularity of the format. They in fact stand for the initials of Michael Kleps a.k.a. Unknown / DOC, another developer of the format.
|Alternative demo platforms|
After the Amiga's production ceased, the MOD format has had continued popularity in the Demoscene and as background music for independent video games and Chiptunes. It is not uncommon to hear MOD music in keygens either.
A pattern is typically represented in a sequencer user interface as a table with one column per channel, thus having 4 columns; one for each Amiga hardware channel. Each column has 64 rows.
A cell in the table can cause something to happen on its column's channel when its row's time is reached:
- Start an instrument playing a new note in this channel at a given volume, possibly with a special effect applied on it
- Change the volume or special effect being applied to the current note
- Change pattern flow; jump to a specific song or pattern position or loop inside a pattern
- Do nothing; any existing note playing in this channel will continue to play
An instrument is a single sample along with an optional indication of which portion of the sample can be repeated to hold a sustained note.
In the original MOD file the minimum time frame was 0.02 seconds, or a "vertical blanking" (VSync) interval, because the original software used the VSync timing of the monitor running at 50 Hz (for PAL) or 60 Hz (for NTSC) for timing.
The rate at which pattern data is played is defined by a speed setting. Each row in the pattern data lasts one vertical blanking (or 0.02 seconds) times the current speed setting. The speed setting varied from 1 to 255. In later versions of the format, the vertical blanking was replaced with an adjustable time period staying in the range [0.01, 0.078] seconds. The old speed setting command was replaced with a new one that was used to change both the old speed setting and the new adjustable time period. Unfortunately, some of the old functionality was broken, because the new speed setting command had an identical code value to the old command. Values in the range [1, 31] were interpreted as the old speed settings, but other values were regarded as modifications to the adjustable time period. Hence, values in the range [32, 255] used in some old songs broke in new versions of the player.
Further information on the MOD format can be found at the alt.binaries.sounds.mods FAQ.
Other MOD formats
MOD is the file extension for several other applications:
- The video file format used on many digital camcorders, such as the JVC Everio, the Canon FS100 and the Panasonic D-Snap SD-card camcorders.
- Game modules in Neverwinter Nights.
- AMPL module files.
- Old phpBB modification templates.
- Module files in Femap
- The extension for the binary variant of the Wavefront .obj format.
- The extension for some games using the Vassal game engine.
- The extension for Fortran module files.
- The extension for legacy Visual Basic module files, for versions before the release of Visual Basic .NET.
- Module for ABB Robotics IRC5 and S4 robot controllers. Contains robotic motion programs written in the language RAPID.
- Mod (disambiguation)
- MOD and TOD (video format)
- Module file
- Tracker (music software)
- List of Amiga music format players
- Driscoll, Kevin and Diaz, Joshua (2009). "Endless loop: A brief history of chiptunes". Transformative Works and Cultures no.2. doi:10.3983/twc.2009.0096. Retrieved 2011-02-13. "Most importantly, Soundtracker provided an environment in which nonprogrammers could access the sophisticated music tools in their home computers without needing to learn a programming language."
- www.soundtracker.org same named later clone of Obarski's soundtracker
- Ultimate Soundtracker module format description, by Michael Schwendt, 1997; distributed in the source of the xmp module player; published at io.debian.net
- "The alt.binaries.sounds.mods FAQ on the MOD format". Retrieved 2009-11-05.
- "Fortran Programs with Modules".
- Noisetracker/Soundtracker/Protracker Module Format - 3rd Revision
- Noisetracker/Soundtracker/Protracker Module Format - 4th Revision
- Music data index site
- The MOD Ring