---
name: "xmp"
section: "1"
platform: "linux"
package: "xmp"
version: "4.2.0-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/xmp"
---

# xmp(1)

Extended Module Player

## NAME

xmp - Extended Module Player

## SYNOPSIS

**xmp** \[**-a, --amplify** *factor*\] \[**-A, --amiga**\] \[**-b, --bits** *bits*\] \[**-C, --show-comments**\] \[**-c, --stdout**\] \[**-D** *device-specific parameters*\] \[**-d, --driver** *driver*\] \[**-e, --player-mode** *mode*\] \[**-F, --nofilter**\] \[**-f, --frequency** *rate*\] \[**--fix-sample-loop**\] \[**-h, --help**\] \[**-I, --instrument-path**\] \[**-i, --interpolation** *type***\]** **\[--load-only\]** **\[-L, --list-formats\]** **\[-l, --loop\]** **\[--loop-all\]** **\[-M, --mute** *channel-list***\]** **\[-m, --mono\]** **\[--mixer\_voices** *num***\]** **\[-N, --null\]** **\[--nocmd\]** **\[-o, --output-file** *filename***\]** **\[-P, --pan** *num***\]** **\[-p, --default-pan** *num***\]** **\[--probe-only\]** **\[-q, --quiet\]** **\[-R, --random\]** **\[-S, --solo** *channel-list***\]** **\[-s, --start** *pos***\]** **\[-t, --time** *time***\]** **\[-u, --unsigned\]** **\[--vblank\]** **\[-V, --version\]** **\[-v, --verbose\]** **\[-Z, --all-sequences\]** **\[-z, --sequence** *num***\]** *modules*

## DESCRIPTION

**xmp is a tracked music module player. It plays many** **module formats including Fasttracker II (XM), Noise/Fast/Protracker (MOD),** **Scream Tracker 3 (S3M) and Impulse Tracker (IT). Run** `xmp --list-formats` **for a complete list of supported formats.**

## OPTIONS

- **-a, --amplify** *factor*

  **Amplification factor for the software mixer. Valid amplification factors** **range from 0 to 3. Default is 1. . Warning: higher amplification** **factors may cause distorted or noisy output.**

- **-A, --amiga**

  **Use a mixer which models the sound of an Amiga 500, with or without the led filter.**

- **-b, --bits** *bits*

  **Set the software mixer resolution (8 or 16 bits). If omitted,** **The audio device will be opened at the highest resolution available.**

- **-C, --show-comments**

  **Display module comment text, if any.**

- **-c, --stdout**

  **Mix the module to stdout.**

- **-D** *device-specific parameter*

  **Pass a configuration parameter to the device driver. See the** **DEVICE DRIVER PARAMETERS section below for a** **list of known parameters.**

- **-d, --driver** *driver*

  **Select the output driver. If not specified, xmp will try to** **probe each available driver.**

- **-e, --player-mode** *mode*

  **Force play mode or emulation of a specific tracker. Valid player modes** **are: auto (autodetection), mod (generic mod player mode),** **noisetracker, protracker (Protracker 1/2), s3m (generic** **S3M player mode), st3 (Scream Tracker 3), st3gus (Scream** **Tracker 3 with GUS card), xm (generic XM player mode), ft2** **(Fasttracker II), it (Impulse Tracker), or itsmp (Impulse** **Tracker in sample mode). When a specific tracker is specified, xmp** **will try to emulate quirks and bugs for accurate replay. Default is** **autodetection.**

- **-F, --nofilter**

  **Disable IT lowpass filter effect and envelopes.**

- **-f, --frequency** *rate*

  **Set the software mixer sampling rate in hertz.**

- **--fix-sample-loop**

  **Halve sample loop start values. Use it to work around bad conversions** **from 15-instrument modules and to correctly play NoisePacker v2 and certain** **UNIC files.**

- **-h, --help**

  **Show a short summary of command-line options.**

- **-I, --instrument-path** *path*

  **Set the pathname to the directory containing external samples.**

- **-i, --interpolation** *type*

  **Select interpolation type. Available types are nearest for** **nearest-neighbor interpolation, linear for linear interpolation, and** **spline for cubic spline interpolation. Default is cubic spline.**

- **--load-only**

  **Load module and exit.**

- **-L, --list-formats**

  **List supported module formats.**

- **-l, --loop**

  **Enable module looping.**

- **--loop-all**

  **Loop over the entire module list.**

- **-M, --mute** *channel-list*

  **Mute the specified channels.** *channel-list* **is a comma-separated** **list of decimal channel ranges. Example: 0,2-4,8-16.**

- **-m, --mono**

  **Force mono output (default is stereo in stereo-capable devices).**

- **--mixer-voices** *num*

  **Set the maximum number of virtual channels (default is 128).**

- **-N, --null**

  **Load and mix module, but discard output data (same as --device=null).**

- **--nocmd**

  **Disable interactive commands.**

- **-o, --output-file** *filename*

  **Set the output file name when mixing to raw or WAV files. If '-' is** **given as the file name, the output will be sent to stdout.**

- **-P, --pan** *num*

  **Set the percentual panning amplitude.**

- **-P, --default-pan** *num*

  **Set the percentual default pan setting for modules that don't set their** **own pan values. Useful to reduce LRRL pan separation on headphones.** **This parameter does not affect the Amiga 500 classic mixer.**

- **--probe-only**

  **Exit after probing the audio device.**

- **-R, --random**

  **Play modules in random order.**

- **-r, --reverse**

  **Reverse left/right stereo channels.**

- **-S, --solo** *channel-list*

  **Play only the specified channels.** *channel-list* **is a** **comma-separated list of decimal channel ranges. Example: 0,2-4,8-16.**

- **-s, --start** *pos*

  **Start playing the module from the position** *pos***.**

- **-t, --time** *time*

  **Specifies the maximum playing time to** *time* **seconds.**

- **-u, --unsigned**

  **Tell the software mixer to use unsigned samples when mixing to** **a file (default is signed).**

- **--vblank**

  **Force Amiga vblank-based timing (no CIA tempo setting).**

- **-V, --version**

  **Print version information.**

- **-v, --verbose**

  **Verbose mode (incremental). If specified more than once, the** **verbosity level will be increased (no messages will be displayed** **when the player runs in background).**

- **-Z, --all-sequences**

  **Play all hidden or alternative pattern sequences (subsongs) in module.**

- **-z, --sequence** *num*

  **Play hidden or alternative pattern sequence** *num* **(0 is the main** **sequence).**

## DEVICE DRIVER PARAMETERS

**Use the option -D to send parameters directly to the device** **drivers. Multiple -D options can be specified in the command line.**

**File output options:**

- **-D** *endian=big*

  **Generate big-endian 16-bit samples (default is the machine byte ordering).**

- **-D** *endian=little*

  **Generate little-endian 16-bit samples (default is the machine byte ordering).**

**ALSA driver options:**

- **-D** *buffer=value*

  **Set buffer size in ms. Default value is 250.**

- **-D** *period=value*

  **Set period time in ms. Default value is 50.**

- **-D** *card=name*

  **Choose the ALSA device to use. Default value is "default".**

**OSS driver options:**

- **-D** *frag=num,size*

  **Set the maximum number of fragments to** *num* **and the size of** **each fragment to** *size* **bytes (must be a power of two).** **The number and size of fragments set a tradeoff between the buffering** **latency and sensibility to system load. To get better synchronization,** **reduce the values. To avoid gaps in the sound playback, increase** **the values.**

- **-D** *dev=device\_name*

  **Set the audio device to open. Default is /dev/dsp.**

- **-D** *nosync*

  **Don't sync the OSS audio device between modules.**

**BSD driver options:**

- **-D** *gain=value*

  **Set the audio gain. Valid values range from 0 to 255.** **The default is 128.**

- **-D** *buffer=size*

  **Set the size in bytes of the audio buffer. Default value is 32 Kb.**

**CoreAudio driver options:**

- **-D** *buffer=value*

  **Set buffer size in ms. Default value is 250.**

**HP-UX and Solaris driver options:**

- **-D** *gain=value*

  **Set the audio gain. Valid values range from 0 to 255.** **The default is 128.**

- **-D** *port={s\|h\|l}*

  **Set the audio port. Valid arguments are** *s* **for the internal** **speaker,** *h* **for headphones and** *l* **for line out. The default** **is the internal speaker.**

- **-D** *buffer=size*

  **Set the size in bytes of the audio buffer. The default value is 32 Kb.**

## INTERACTIVE COMMANDS

**The following single key commands can be used when playing modules:**

- **q, Esc**

  **Stop the currently playing module and quit the player.**

- **f, Right**

  **Jump to the next pattern.**

- **b, Left**

  **Jump to the previous pattern.**

- **n, Up**

  **Jump to the next module.**

- **p, Down**

  **Jump to the previous module.**

- **Space**

  **Pause or unpause module replay.**

- **1**, **2**, **3**, **4**, **5**, **6**, **7**, **8**, **9**, **0**

  **Mute/unmute channels 1 to 10.**

- **!**

  **Unmute all channels.**

- **h**, **?**

  **Display available commands.**

- **X**

  **Display current mixer type.**

- **Z**

  **Display current sequence.**

- **z**

  **Toggle subsong explorer mode.**

- **l**

  **Toggle module/sequence looping.**

- **m**

  **Display module information.**

- **i**

  **Display combined instrument/sample list.**

- **I**

  **Display instrument list.**

- **S**

  **Display sample list.**

- **c**

  **Display comment, if any.**

- **\<**

  **Change to previous sequence (subsong).**

- **\>**

  **Change to next sequence (subsong).**

**Interactive mode can be disabled using the --nocmd command** **line option.**

## EXAMPLES

**Play module and save output in a .wav file:**

-

  `xmp -ofilename.wav module.mod`

**Play module muting channels 0 to 3 and 6:**

-

  `xmp --mute=0-3,6 module.mod.gz`

**Play modules in /dev/dsp using the default device settings (unsigned 8bit,** **8 kHz mono):**

-

  `xmp -o/dev/dsp -f8000 -m -b8 -u module.lha`

**Play all XM modules in the /mod directory and all subdirectories in** **random order, ignoring any configuration set in the xmp.conf file:**

-

  `` xmp --norc -R `find /mod -name "*.xm" -print` ``

## FILES

`/etc/xmp/xmp.conf, $HOME/.xmp/xmp.conf, /etc/xmp/modules.conf, $HOME/.xmp/modules.conf`

## AUTHORS

**Claudio Matsuoka and Hipolito Carraro Jr.**
