XMP FREQUENTLY ASKED QUESTIONS

Last update: Wed May 20 23:09:43 EST 1998


Table of contents

1. General

1.1. What is xmp?
1.2. In which platforms does xmp currently run?
1.3. Do I need a GUS or AWE sound card to run xmp?
1.4. Where can I get the latest version?
1.5. Is there a Debian package available?
1.6. Is there an RPM package available?
1.7. Which module formats are supported?
1.8. Will xmp support IT modules?

2. Troubleshooting

2.1. I think I found a nasty bug, how can I contact the authors?
2.2. My gcc does not understand __attribute__((packed)).
2.3. xmp complains about insuficient space in /dev/sequencer.
2.4. xmp plays foobar.mod incorrectly and/or dumps core.

3. Problems with Sparc

3.1. How do I set the volume in Solaris?
3.2. How do I set the volume in Linux?

4. Problems with FreeBSD

4.1. I'm getting errors with make -C in FreeBSD.
4.2. The player hangs with OSS/FreeBSD or Voxware 3.5.

5. Problems with AWE32/SB32 cards

5.1. xmp is not being compiled with AWE support.
5.2. When trying to run xmp with my AWE32 it locks up my machine.
5.3. I can't open /dev/sequencer.




1. General

1.1. What is xmp?
xmp is a module player for Unix (currently Linux, Solaris and HP-UX), initially designed as an XM (Triton's Fast Tracker II Extended Module) Player.

1.2. In which platforms does xmp currently run?
Linux on x86 (tested with 2.0.33 and 2.1.91 kernels), Linux on Sparc (tested with 2.0.33), Solaris (tested with Solaris 2.5 running in SS20, Ultra 1 and Axil 240) and HP-UX (tested with HP-UX 9.05 running in a 9000/710). Old versions worked in FreeBSD 2.2 with Voxware 3.0, but recent versions have not been tested.

1.3. Do I need a GUS or AWE sound card to run xmp?
No. xmp version 1.1.0 supports both hardware (using Gravis Ultrasound or AWE32 cards) and software mixing. The software mixer can be used with ESD, OSS, Solaris 2.x, Sparclinux, HP-UX or to mix modules to a file.

1.4. Where can I get the latest version?
The latest stable and development versions are available at http://xmp.home.ml.org/pkg/latest/.

1.5. Is there a Debian package available?
Yes. Tom Lees debianized the xmp package. The Debian package is available at http://www.debian.org/Packages/stable/sound/xmp.html.

1.6. Is there an RPM package available?
Yes. i386 binary RPM packages are available in the xmp page.

1.7. Which module formats are supported?
The current version recognizes the following module formats: Fast Tracker II (XM), Noise/Fast/Protracker (MOD,NST), Soundtracker module with 15 instruments (MOD), Mod's Grave (WOW), Scream Tracker 3 (S3M), Scream Tracker 2 (STM), Composer 669/UNIS669 (669), Multitracker (MTM), Oktalyzer, Poly Tracker (PTM), Farandole Composer (FAR), Aley's Modules (ALM), Reality Adlib Tracker (RAD) and the Amusic Adlib Tracker (AMD).

1.8. Will xmp support IT modules?
Maybe. I have a partially working loader for sample-based IT modules but full support would require changes in the player engine.


2. Troubleshooting

2.1. I think I found a nasty bug, how can I contact the authors?
2.2. My gcc does not understand __attribute__((packed)).
You need gcc 2.7 to compile xmp (gcc 2.7.2 was used in the tests).

2.3. xmp complains about insuficient space in /dev/sequencer.
Check the amount of RAM you have installed. 256Kb or 512Kb may be sufficient to play some MODs, but 1Mb or more is recommended. If the module has 16 bit samples, you may try to use the --8bit command line option to convert the samples to 8-bit to save memory, or use the software mixer. Attention: --8bit does not affect the memory usage in AWE cards! Awedrv converts all the samples to 16 bit before loading.

2.4. xmp plays foobar.mod incorrectly and/or dumps core.
See Question 2.1.


3. Problems with Sparc

3.1. How do I set the volume in Solaris?
Use -Dgain=xx to set the initial volume. You'll need gaintool a mixer application to change the volume during the module playing.

3.2. How do I set the volume in Linux?
Apparently there's a bug in the AMD 7930 driver that make -Dgain=xx work at random. Until someone fixes this bug, you'll need to try a few times to set the volume correctly.


4. Problems with FreeBSD

4.1. I'm getting errors with make -C in FreeBSD.
You're probably trying to use the BSD make. Use gmake instead.

4.2. The player hangs with OSS/FreeBSD or Voxware 3.5.
Due to problems with the select () call, xmp does not work with Voxware 3.5 and OSS/FreeBSD 3.8 sequencers. You must use software mixing instead, or use the Voxware 3.0 sound driver.


5. Problems with AWE32/SB32 cards

5.1. xmp is not being compiled with AWE support.
If you have an AWE card, make sure you have awedrv installed. The latest version of awedrv is available at http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv. Recent Linux and FreeBSD distributions already include awedrv, but you may want to check the awedrv page anyway for a newer version.

5.2. When trying to run xmp with my AWE32 it locks up my machine.
If you use an AWE driver version older than 0.3.3d, this may be a bug in the AWE driver. In this case, upgrade to the latest version (see Question 5.1). This may also happen, as reported by Michael Janson, if you have a card with no RAM installed. See Question 2.3.

5.3. I can't open /dev/sequencer.
Make sure you have the MIDI sequencer (CONFIG_SEQUENCER) enabled when configuring the driver, and the permissions are 0666. Check Takashi Iwai's awedrv FAQ for hints on the driver configuration. If you're using USS/Lite 3.5.4 and still get messages like Sequencer: No Midi devices. Input not possible from the sound driver, you may need to apply the following patch:

--- sequencer.c.old	Tue Sep 23 20:00:26 1997
+++ sequencer.c	Tue Sep 23 20:37:52 1997
@@ -1140,7 +1140,7 @@
       setup_mode2 ();
     }

-  if (seq_mode == SEQ_1 && (mode == OPEN_READ || mode == OPEN_READWRITE))
+  if (seq_mode == SEQ_1 && mode == OPEN_READ)
     if (!max_mididev)
       {
 	printk ("Sequencer: No Midi devices. Input not possible\n");