XM module format (.xm)
fasttracker-2's format (November 1994): the mod-format effect alphabet plus a few letters of its own, and — the point of it — instruments: volume and panning envelopes over samples, several samples per instrument, auto-vibrato, and instrument-based panning (an instrument number resets the channel's pan to the sample's default) (sources: s-openmpt-manual-module-formats, s-tracker-history-notes).
What an XM holds#
- Up to 32 channels in FT2; initial tempo and speed; pattern length up to $100 rows (source: s-ft2-manual).
- An instrument = volume envelope, panning envelope, auto-vibrato (waveform, depth, sweep in ticks, rate), 1–16 samples, a keyboard split, a MIDI definition; each sample carries volume, panning, finetune (a signed byte, −128…+127, in 1/128-semitone units, audible in steps of 8), a relative tone and 8- or 16-bit data with a forward or ping-pong loop. Envelopes are drawn in ticks with a sustain point and loop; a fadeout follows key-off (sources: s-ft2-manual, s-openmpt-manual-samples, s-openmpt-manual-compatible-playback).
- Linear or Amiga frequency table per song; MOD export requires the Amiga table and no envelopes (source: s-ft2-manual).
- No New Note Actions, no sample map note column, no channel-based panning ("every sample is forced to have a default panning") (sources: s-openmpt-manual-instruments, s-openmpt-manual-samples).
Effects#
MOD's 0–F and E0–EF plus Gxx/Hxy global volume, Kxx key off, Lxx envelope position, Pxy pan slide, Rxy multi-retrigger, Txy tremor, X1x/X2x extra-fine portamento, and a volume column (v, a/b, c/d, g, h, l/r, p, u); anything else OpenMPT can write into an XM (X5x+, Yxy, Zxx, EFx macro select) is "a ModPlug hack" (effect-command-crosswalk; source: s-openmpt-manual-effect-reference).
Quirks#
Fasttracker 2's playback "makes even common pattern effects … behave totally unpredictable", so players emulate it: arpeggio runs backwards, Rxy and Txy are erratic, uxx sets vibrato speed without vibrating, a tone-portamento note with nothing playing stays silent, E60 makes the next pattern start at the loop row (end the pattern with D00), period slides wrap to a very high note, instruments without a volume envelope mute instantly on key-off, the ramp-down tremolo is broken, smooth volume ramping softens drum attacks, 1xx and 2xx keep separate memories (source: s-openmpt-manual-compatible-playback).
In the scene (1995–97)#
- The 1995 argument for XM over S3M was instrument envelopes: jase won Music Contest 3 with an XM made partly to "display its benefits (eg in envelopes) over s3m", against people who said no good XMs existed (source: s-tw022-interview-jase); the objection was that samples over 64 k let anyone make noise — psibelius: XM "has added to the noise"; populus on PURE's members "sav[ing] up dumb .XM files for fun" (source: s-tw016-interview-populus). balrog moved to FT2 for the envelopes too (source: s-tw042-interview-balrog; see instrument-envelopes).
- XM releases named in the interviews: rage's 1995–96 tunes "Space and Time", "Errorzone Zero", "Mystique" and "No Truth" (source: s-tw060-interview-rage); khyron's
k_earth.xmandk_worm.xm(source: s-tw111-interview-khyron); u4ia's unreleased 8-channel "Silence Is A Rhythm" (source: s-tw067-interview-u4ia); Cosmic/RR's roughly 100 DMF and XM tracks (source: s-tw090-interview-cosmic); scirocco's claim to "the only XM on ftp.cdrom.com with a rating of 5 stars" (source: s-tw054-interview-scirocco). - vegas (1996) on channel counts: "32 channels or 64, whats the difference" — XM's 32 against IT's 64 (source: s-tw062-interview-vegas).
- A
.MODwritten by FT2 from an XM can misplay on an Amiga — see mod-format (source: s-tw040-interview-zalt).
Related#
fasttracker-2 · mod-format · it-format · s3m-format · instrument-envelopes · multisampling · openmpt · effect-command-crosswalk · compos · traxweekly
Sources#
s-ft2-manual · s-openmpt-manual-module-formats · s-openmpt-manual-effect-reference · s-openmpt-manual-compatible-playback · s-openmpt-manual-instruments · s-openmpt-manual-samples · s-tracker-history-notes · s-tw022-interview-jase · s-tw016-interview-populus · s-tw042-interview-balrog · s-tw060-interview-rage · s-tw111-interview-khyron · s-tw067-interview-u4ia · s-tw090-interview-cosmic · s-tw054-interview-scirocco · s-tw062-interview-vegas · s-tw040-interview-zalt