<!doctype linuxdoc system>

<!-- $Id$ -->

  <article>

      <title>The Linux Sound Playing HOWTO</title>
      <author>Yoo C. Chung,
	<tt/wacko@laplace.snu.ac.kr/</author>
      <date>v1.6, 11 August 1998</date>

      <abstract>
	This document lists applications for Linux that play various
	sound formats.
      </abstract>

    <sect>Introduction</heading>
      <p>
	This is the Sound Playing HOWTO.  It lists the many sound
	formats and the applications that can be used to play them.
	It also lists some hacks and advice on using these
	applications.  There are also some other interesting
	applications related to sound not directly related to
	playback.  However, this document does <em/not/ describe how
	one can setup a Linux system for sound support.  Refer to the
	Linux Sound HOWTO by Jeff Tranter for instructions on setting
	up a Linux system for sound support and the supported sound
	hardware.

	This deals with normal user sound applications.  That is, it
	is only concerned about what the average user needs to know on
	the application side of sound, not exotic stuff like speech
	synthesis, or hardware stuff which is dealt in the Sound
	HOWTO.


      <sect1>Copyright of this document</heading>
	<p>
	  This document can be freely distributed and modified (I
	  would appreciate it if I were notified of any
	  modifications), as long as this copyright notice is
	  preserved.  However, it cannot be placed under any further
	  restrictions, and a modified document must have the same
	  copyright as this one.  Also, credit must be given where
	  due.


      <sect1>Copyright of the listed applications</heading>
	<p>
	  If there is no mention of any copyright, then the
	  application is under the GNU General Public License.


      <sect1>Where to get this document</heading>
	<p>
	  The most recent official version of this document can be
	  obtained from the <url name="Linux Documentation Project"
	    url="http://sunsite.unc.edu/LDP/">.  The most recent
	  unofficial version of this document can be obtained from
	  <url url="http://laplace.snu.ac.kr/&tilde;wacko/howto/">.

	  A Korean version of this document (very outdated) is
	  available at <url url=
	  "http://laplace.snu.ac.kr/&tilde;wacko/howto/Sound-Playing-HOWTO.ks">.

	  A Japanese version of this document is available at
	  <url url=
	  "http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/Sound-Playing-HOWTO.euc">.


      <sect1>Feedback</heading>
	<p>
	  I am not omniscient, and I don't use all the applications in
	  here (a few I can't even try), so there are bound to be
	  mistakes.  Also, programs usually continuously evolve, so
	  documentation tends to get out of date.  Therefore, if you
	  find anything wrong, please send me any corrections.
	  Suggestions or additions to this document are welcome, too.


      <sect1>Acknowledgments</heading>
	<p>
	  All the authors of the applications in this HOWTO.  Also,
	  Hannu Savolainen for the great sound driver and Linus
	  Torvalds for the great underlying OS.

	  I'd also like to thank Raymond Nijssen
	  (<tt/raymond@es.ele.tue.nl/), Jeroen Rutten
	  (<tt/jeroen@es.ele.tue.nl/), Antonio Perez
	  (<tt/aperez@arrakis.es/), Ian Jackson
	  (<tt/ijackson@gnu.org/), and Peter Amstutz
	  (<tt/amstpi@freenet.tlh.fl.us/) for their information and
	  help.


    <sect>Playing Various Sound Formats</heading>
      <p>
	There are many kinds of sound formats (WAV, MIDI, MPEG etc.).
	Below, we list the various formats and the applications that
	can be used to play them.


      <sect1><idx/MIDI/</heading>
	<p>
	  MIDI stands for Musical Instrument Device Interface.  MIDI
	  files usually have the extension <tt/.mid/.  They contain
	  sequencing information, that is, information on when to play
	  what instrument in what way, etc.  Depending on your
	  hardware (and maybe the software you use to play them), the
	  sound might be awesome, or it might be downright crappy.


	<sect2><cdx/adagio/</heading>
	  <!-- Probably not outdated - I don't use it -->
	  <p>
	    This package includes <tt/mp/ (a command-line MIDI file
	    player) and <tt/xmp/ (an XView based MIDI file player, not
	    to be confused with the module player also called
	    <tt/xmp/).  You will need the SlingShot extensions to use
	    <tt/xmp/.  It also contains other programs for playing
	    <idx/Adagio scores/.

	    <!-- I don't know much about Adagio scores. -->

	    If you have a GUS, <tt/mp/ can also play MOD files (see
	    section <ref id="sec-modules" name="Modules"> for more
	    information on modules).

	    One little annoying bug (as of version 0.5 on some
	    hardware) is that the sound breaks at the end.  Namely,
	    instead of ending the sound the way the MIDI file
	    specifies, it ends by playing the note right before the
	    last one in a long interval.  It hasn't stopped me from
	    using <tt/mp/, but it might prevent someone from using it
	    for `real' work.  It also starts up relatively slowly.

	    The package does not mention any copyright (at least none
	    that I can find), so I assume it can be freely
	    redistributed and modified.  (By a strict interpretation
	    of copyright law, nothing gives one the right to do these
	    things, but I somehow doubt that this was the intention of
	    the author.)

	    It is a port of the CMU MIDI Toolkit to Linux (though
	    there was enough added to make this questionable) by Greg
	    Lee (<tt/lee@uhunix.uhcc.hawaii.edu/).

	    It can be obtained from <url url=
	    "ftp://tsx-11.mit.edu/pub/linux/packages/sound/adagio05.tar.gz">.
	    The binaries included here are in a.out format (linked
	    with ancient libraries), and the <tt/xmp/ binary segfaults
	    in a X11R6 environment (XFree86 3.1.1, libc 4.7.2).  The
	    <tt/mp/ binary works fine in an <tt/a.out/ environment.

	    You will need a bit of hackery to compile it.  Actually,
	    it's not much of a hackery.  All you have to do is to
	    include the <tt/-lfl/ switch at the end of <tt/SHROBJ/ and
	    <tt/XMPOBJ/ in the Makefile.  This is to link in the
	    <tt/flex/ library, which is not linked in by default.
	    Then follow the installation instructions.  And don't
	    forget to have XView and the SlingShot extensions
	    installed if you want to compile <tt/xmp/.


	<sect2><idx/TiMidity/</heading>
	  <!-- Probably not outdated - I don't use it -->
	  <p>
	    Some people recommend this <em/experimental/ program
	    because of good sound quality (which is very true, it's
	    much better than <tt/mp/ on a Sound Blaster 16, though it
	    probably won't be much different on soundcards with
	    wavetable synthesis like the GUS).  However, it suffers
	    from high CPU loads.  It plays MIDI by first converting
	    MIDI to WAV and then plays the WAV (you can also convert a
	    MIDI file to a WAV file without playing if you want).
	    This is the reason for its CPU intensive nature.

	    It also has an optional ncurses, SLang, Tcl/Tk or Motif
	    interface.

	    You need Gravis Ultrasound patch files to use this.  Look
	    into the FAQ included with TiMidity for more information.

	    The author is Tuukka Toivonen (<tt/tt@cgs.fi/).

	    The latest version of TiMidity can be found at the <url
	      name="TiMidity home page"
	    url="http://www.cgs.fi/&tilde;tt/timidity/">.  This page
	    also contains a link to a small library of GUS patches.


	<sect2><cdx/playmidi/</heading>
	  <!-- Probably not outdated - I use it -->
	  <p>
	    This is a MIDI player that plays to FM, GUS, and external
	    MIDI.  It is supposed to have a faster startup time
	    compared to other MIDI players.  It is also able to play
	    Creative Music Files, Microsoft RIFF files, and large MIDI
	    archives from games such as Ultima 7.

	    It has an X interface and a SVGA interface.  It also has
	    an option for real time playback with tracking all the
	    notes on each channel and the current playback clock
	    (included automatically with <tt/xplaymidi/ and
	    <tt/splaymidi/).

	    You should do something like

	    <tscreen>
	      <verb>
$ splaymidi foo.mid; stty sane
	      </verb>
	    </tscreen>

	    if you are going to use the SVGA interface, since it
	    doesn't reset the terminal tty mode properly.  The SVGA
	    interface may be removed in the near future.

	    It was written by Nathan Laredo
	    (<tt/laredo@gnu.org/ or <tt/laredo@ix.netcom.com/).

	    It can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/playmidi-2.3.tar.gz">.


      <sect1><idx/Modules/<label id="sec-modules"></heading>
	<p>
	  Modules (in computer music) are digital music files, made up
	  of a set of samples and sequencing information, telling the
	  player when to play which sample (instrument) on which track
	  at what pitch, optionally performing an effect, like vibrato
	  for example.

	  An advantage it has over MIDI is that it can include almost
	  any kind of sound (including human voices).  Another is that
	  it sounds just about the same on any platform, because the
	  samples are in the module.  A disadvantage it has is that it
	  has a much larger file size compared to MIDI.  Another one
	  is that it has no real standard format (the only `real' one
	  is the ProTracker, which many modules aren't quite
	  compatible with).  It originated on the Amiga.

	  The most common format has the extension <tt/.mod/.  There
	  are many other extensions depending on what format they are
	  in.


	<sect2><cdx/tracker/</heading>
	  <!-- Possibly outdated - I don't use it -->
	  <p>
	    This very portable program (it has been ported to many
	    platforms) plays Soundtracker and Protracker music
	    modules.  It uses 16 bit stereo output, and I consider the
	    quality to be very good.  If you need a simple way to
	    reduce CPU load use the <tt/-mono/ option.

	    This is a giftware program (quoting the author).  It is by
	    Marc Espie (<tt/Marc.Espie@ens.fr/).

	    A version of this with the Makefile already tweaked for
	    Linux can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/tracker-4.3-linux.tar.gz">.


	<sect2><cdx/gmod/</heading>
	  <!-- Possibly outdated - I don't use it -->
	  <p>
	    This is a music module player for the Gravis Ultrasound
	    card.  4/6/8 channel MOD, 8 channel 669, MultiTracker
	    (MTM), UltraTracker (ULT), FastTracker (XM), and
	    ScreamTracker III (S3M) are the supported formats.

	    It requires a version 3.0 or later sound driver.  And a
	    GUS, of course.  You may need to modify the kernel to make
	    volume control work the way you want.

	    This has an X interface.  It uses the QT toolkit (needs
	    version 0.99 or greater).  Check the <url
	      name="QT toolkit homepage"
	      url="http://www.troll.no/"> for information on
	    QT.

	    This can be freely distributed.  It was originally written
	    by Hannu Savolainen, and now maintained by Andrew
	    J. Robinson (<tt/robinson@cnj.digex.net/).

	    It can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/gmod-3.1.tar.gz">.


	<sect2><idx/MikMod/</heading>
	  <!-- Possibly outdated - I don't use it -->
	  <p>
	    This portable module player plays XM, ULT, STM, S3M, MTM,
	    MOD and UNI formats.  (The UNI format is an internal
	    format used by MikMod.)  It has support for zipped module
	    files.  It uses 16 bit stereo for the sound output.  Use
	    the <tt/-m/ option (for mono output) if you need a simple
	    way to lower the CPU load.

	    The Unix version can either use ncurses or Tcl/Tk for its
	    interface.  It can also be used as a library, not just an
	    independent program.

	    It was originally written by Jean-Paul Mikkers
	    (<tt/mikmak@via.nl/).  It is now maintained by Jake Stine
	    (<tt/dracoirs@epix.net/).  This is shareware that has to
	    be registered if you want to use it commercially.  You
	    also need permission to redistribute it commercially
	    (non-commercial redistribution does not need such
	    permission).

	    This can be found at the <url
	      url="http://www.freenet.tlh.fl.us/&tilde;amstpi/mikmod.html"
	      name="MikMod home page">.


	<sect2><cdx/xmp/</heading>
	  <!-- Probably outdated - I don't use it -->
	  <p>
	    This is a module player (not to be confused with Adagio's
	    <tt/xmp/) which can play MOD, S3M, MTM, PTM, PTR, STM,
	    669, and XM modules (other formats are also supported, but
	    still experimental or incomplete).  If you have soundcards
	    with wavetable synthesis (GUS or SoundBlaster 32AWE), then
	    you can use this feature of the soundcard to lower the
	    load on the CPU.  It also supports compressed modules.

	    An X frontend to <tt/xmp/ is also available.

	    This was written by Claudio Matsuoka
	    (<tt/claudio@pos.inf.ufpr.br/) and Hipolito Carraro Jr.

	    This can found at the <url name="xmp home page"
	      url="http://xmp.home.ml.org/">.


	<sect2><cdx/s3mod/</heading>
	  <!-- Probably not outdated - I don't use it -->
	  <p>
	    This plays 4/6/8 track MOD modules and Scream Tracker 3
	    modules.  It uses 8 bit mono output with a sampling rate
	    of 22000 Hz by default.  You can use the option <tt/-s/ to
	    enable stereo, <tt/-b/ to enable 16 bit output, and
	    <tt/-f/ to set the sampling frequency.  However, the sound
	    output is worse than tracker (some noise), so I recommend
	    using <tt/tracker/ instead of <tt/s3mod/ for playing
	    ordinary MOD files (unless you have an underpowered
	    machine).  It has a much smaller CPU load compared to
	    tracker.

	    It is copyrighted by Daniel Marks and David Jeske
	    (<tt/jeske@uiuc.edu/), but you can do anything you want
	    with it (except that you can't claim you wrote it).

	    It can be obtained from <url url=
	      "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/s3mod-v1.09.tar.gz">.


	<sect2><cdx/mod/</heading>
	  <!-- Probably not outdated - I don't use it -->
	  <p>
	    This <em/beta/ program plays MODs (15/31-instrument, up to
	    32 voices), MTMs, ULTs and S3Ms on the Gravis Ultrasound
	    card.  It can also use packed modules if you have
	    <tt/gzip/, <tt/lharc/, <tt/unzip/, and <tt/unarj/
	    installed.  It cannot play Powerpacked modules or modules
	    packed with some Amiga composers ("PACK" signature).

	    This requires at least version 3.0 of the sound driver.
	    It <em/won't/ work with the 2.90-2 or earlier version of
	    the sound driver.  The text interface requires ncurses.
	    There is also an X interface included, which uses Tcl/Tk.

	    It was written by Mikael Nordqvist (<tt/mech@df.lth.se/ or
	    <tt/d91mn@efd.lth.se/).

	    It can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/mod-v0.81.tgz">.


	<sect2><cdx/nspmod/</heading>
	  <!-- Probably not outdated - I don't use it -->
	  <p>
	    This is an <em/alpha/ module player which can play MTM,
	    S3M, and MOD modules.  It is intended to be a module
	    player for soundcards without a DSP (not to be confused
	    with what Creative Labs calls a DSP).  It has a CPU load
	    somewhat similar compared to <tt/tracker/.

	    <!-- I hope I'm not giving out blatant misinformation with
	    the remarks about DSP.  And I'm not sure what advantage
	    nspmod offers over tracker. -->

	    It has a feature which lets modules loop if they want to.
	    The number of loops can be limited by the <tt/-l/ option.
	    It uses only 8 bit sound output (as of version 0.1).

	    This was written by Toru Egashira
	    (<tt/toru@jms.jeton.or.jp/).

	    It can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/nspmod-0.1.tar.gz">.


	<sect2><cdx/yampmod/</heading>
	  <!-- Possibly outdated - I don't use it -->
	  <p>
	    This <em/alpha/ program was designed to play 4-channel
	    modules using the minimum of CPU resources.  It was
	    <em/not/ designed to produce high quality sound.  So the
	    only sound output it produces is 22 kHz mono output.
	    Also, the output isn't as clean as it should be,
	    reflecting its alpha status.

	    It was written by David Groves
	    (<tt/djg@djghome.demon.co.uk/).

	    It can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/yampmod-0.1.tar.gz">.


      <sect1><idx/MPEG audio streams/</heading>
	<p>
	  MPEG is a standard specifying the coding of video and the
	  associated audio for digital storage.  MPEG is usually
	  associated with video, but the audio part of the standard
	  can be used separately.  The audio part of the MPEG standard
	  defines three layers, layer I, II, and III.  Players that
	  can decode higher layers can also decode lower layers
	  (e.g. layer III players can play layer II files).  Layer I
	  MPEG audio files usually have the extension <tt/.mpg/ (so if
	  there is a file with this extension that can't be played by
	  a MPEG video player, it's probably an audio stream), layer
	  II usually have the extension <tt/.mp2/, and layer III
	  usually have the extension <tt/.mp3/.  The audio compression
	  is pretty good.  A two megabyte layer II MPEG audio file
	  will probably take up 25 megabytes for a raw PCM sample file
	  with the same quality.


	<sect2><cdx/mpg123/</heading>
	  <!-- Probably outdated - I use it -->
	  <p>
	    This <em/beta/ program is an efficient MPEG audio stream
	    player, which has support for layers I, II, and III.  It
	    is based on code from many sources.  It is able to play in
	    real time streams that are read by HTTP (i.e. one can play
	    an MPEG audio stream directly over the World Wide Web).

	    The main author is Michael Hipp
	    (<tt/Michael.Hipp@student.uni-tuebingen.de/).  It may be
	    used and distributed in unmodified form freely for
	    non-commercial purposes.  Inclusion in a collection of
	    free software (such as CD-ROM images of FTP servers) is
	    explicitly allowed.

	    The latest version can be obtained from the <url
	      name="mpg123 homepage" url="http://mpg.123.org/">.


	<sect2><cdx/maplay 1.2/</heading>
	  <!-- Probably not outdated - I use it -->
	  <p>
	    This MPEG audio stream player only has support for layer I
	    and layer II streams, and lacks support for layer III
	    streams.  It supports 16 bit sound cards on Linux.

	    It is pretty CPU intensive, taking up to about 55% CPU
	    time on a 60MHz Pentium.  The output is intolerable on a
	    66MHz 486 because the CPU just can't catch up with the
	    sound.  If this happens to you, try playing only one side
	    of the audio stream (with the <tt/-l/ or <tt/-r/ option),
	    instead of the default stereo.

	    A slight change in one of the files may be necessary in
	    order to compile it.  Namely, you may need to add the
	    following line to the beginning of the file
	    <tt/configuration.sh/.

	    <tscreen>
	      <verb>
#! /bin/sh
	      </verb>
	    </tscreen>

	    The author is Tobias Bading (<tt/bading@cs.tu-berlin.de/).
	    <tt/maplay/ 1.2 can be obtained from <url url=
	    "ftp://ftp.cs.tu-berlin.de/pub/misc/maplay1.2/maplay1&lowbar;2.tar">.


	<sect2><cdx/maplay 1.3b/</heading>
	  <!-- Probably not outdated - I don't use it -->
	  <p>
	    This is an unofficial modification (i.e. not by the
	    original author) of <tt/maplay/ 1.2, so that it can run
	    with a much lower load on the CPU.  It accomplishes this
	    mainly by making u-law output actually work on other
	    platforms besides the SPARC.  Note that it uses u-law
	    output by default, so the sound quality is lower.

	    The modifications were made by Orlando Andico
	    (<tt/orly@gibson.eee.upd.edu.ph/).

	    This can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay-1.3b-Linux.tar.gz">.


	<sect2><cdx/maplay3/</heading>
	  <!-- Probably outdated - I don't use it -->
	  <p>
	    This is another derivative of <tt/maplay/ 1.2.  It adds
	    support for MPEG Layer 3 audio streams.  Currently it
	    seems to have some bugs in its playback (you may hear some
	    screeching noises).  You may have to twiddle with the
	    options to solve this.

	    The modifications were made by Timo Jantunen
	    (<tt/timo.jantunen@hut.fi/ or <tt/jeti@cc.hut.fi/).  It
	    says that it can be used freely, but making money off of
	    it is not allowed.  However, I'm not entirely sure about
	    the validity of this copyright, since the original
	    <tt/maplay/ is under the GNU General Public License, which
	    does not allow derivative works to have a different
	    copyright.

	    This can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay3.tar.gz">.


	<sect2><cdx/splay/</heading>
	  <!-- Probably outdated - I don't use it -->
	  <p>
	    This <em/beta/ player is another derivative of <tt/maplay/
	    1.2 (actually, it is a derivative of <tt/maplay/ 1.2+,
	    which is a MS Windows only derivative of <tt/maplay/ 1.2).
	    It adds support for MPEG Layer 3 audio streams.  It is
	    also able to play WAV files.  It can also play audio
	    streams received over an HTTP connection.

	    Another feature of <tt/splay/ is that it can be used as a
	    library (under the LGPL), so that it can be used in other
	    programs.  It also tries to improve performance by using
	    threading (you need <tt/pthread/ to use this feature) and
	    a little inline assembly.

	    <tt/splay/ uses a command line interface and an optional X 
	    interface (which uses QT).

	    If after compiling it doesn't work (e.g. it segmentation
	    faults), try compiling it again without threading.

	    This is by Jung Woo-jae (<tt/jwj95@eve.kaist.ac.kr/).

	    It can be obtained from <url name="splay's home page"
	      url="http://adam.kaist.ac.kr/&tilde;jwj95/">.


	<sect2><cdx/Sajber Jukebox/</heading>
	  <!-- Probably outdated - I don't use it -->
	  <p>
	    This program is a MPEG audio player with a graphical user
	    interface.  It is based on <tt/splay/, so it includes
	    support for MPEG audio layers up to III.  It is also able
	    to play MPEG audio streams in real time with the stream
	    being fed by HTTP.  It is also easy to configure.

	    It uses the QT toolkit (at least version 1.2 is required).
	    It also uses the LinuxThreads library (the included binary
	    only works with version 0.5).

	    The author is Joel Lindholm
	    (<tt/wizball@kewl.campus.luth.se/).

	    The latest version can be obtained from <url url=
	      "ftp://kewl.campus.luth.se/pub/jukebox">.


	<sect2><cdx/amp/</heading>
	  <!-- Probably outdated - I don't use it -->
	  <p>
	    This <em/beta/ MPEG audio player only has support for MPEG
	    Layer 3 audio streams.  It is able to play directly to the
	    soundcard, and it can output to raw PCM or WAV files.
	    This also gives quite a load on the CPU (about 60% on a
	    133MHz Pentium).

	    This was written by Tomislav Uzelac
	    (<tt/tuzelac@rasip.fer.hr/).  It can be freely used and
	    distributed, as long as it is not sold commercially
	    without permission (including it in CD-ROMs that contain
	    free software is explicitly permitted, though).

	    It can be obtained from <url url=
	      "ftp://ftp.rasip.fer.hr/pub/mpeg/amp-0.7.3.tgz">.


	<sect2><cdx/XAudio/</heading>
	  <!-- Probably outdated - I don't use it -->
	  <p>
	    This <em/alpha/ library was written to be a fast
	    implementation of an MPEG audio decoding library to be
	    used by various GUI front-ends.  It supports MPEG audio
	    layers I, II, and III.  It is capable of random access to
	    bitstreams.  A command-line interface is included.  A
	    Motif (Lesstif) front-end is also included in the Linux
	    version.

	    This is by Gilles Boccon-Gibod, Alain Jobart and others.
	    The front-ends to the libary can be freely downloaded.
	    The library itself must be licensed to be used (a source
	    and binary license is available).

	    The front-ends to the library can be obtained from the
	    <url url="http://www.xaudio.com/"
	      name="XAudio home page">.
	    

	<sect2><idx>Layer 3 Shareware Encoder/Decoder</idx></heading>
	  <!-- Probably not outdated - I don't use it -->
	  <!-- First entry whose source is unavailable -->
	  <p>
	    This is actually a converter that converts MPEG Layer 3
	    audio streams to WAV, AIFF, SND, AIFC, or just raw PCM
	    sample files.  The Linux version does not directly output
	    the sound to the soundcard.  One has to first convert it
	    to some other format.

	    However, when you try to play a converted file using
	    <tt/sox/, you'll probably just get noise because the word
	    order in the PCM samples is not right (at least on Intel
	    platforms).  You need to give <tt/sox/ the option <tt/-x/
	    to solve this problem.  But there are some players that
	    don't have to be told that the word order is wrong, so you
	    might not have to worry about this.

	    If you have a really fast computer (probably at least a
	    100Mhz Pentium), then you can try to play MPEG Layer 3
	    streams directly without having to first convert the audio
	    file to another format like in the following example (this
	    example assumes that you're using <tt/sox/ and playing a
	    44.1 kHz stereo sample).

	    <tscreen>
	      <verb>
$ l3dec foo.mp3 -sto | play -t raw -x -u -w -c 2 -r 44100 -
	      </verb>
	    </tscreen>

	    The number after <tt/-r/ is the sample rate of the audio
	    stream, and the number after <tt/-c/ depends on whether it
	    is mono or stereo (or even quad).  If this looks too
	    complicated, you can use something like a shell script or
	    an alias.

	    This is shareware copyrighted by Fraunhofer-IIS.  A demo
	    version for Linux on x86 systems can be obtained from <url
	    url="ftp://ftp.fhg.de/pub/layer3">.  The demo version only
	    converts layer III audio streams.

	<sect2><idx/X11Amp/</heading>
	  <!-- Probably outdated - I don't use it -->
	  <p>
	    This <em/beta/ software is an MPEG audio stream player
	    with a graphical interface, <!-- supposedly --> similar to 
	    the one used by the Windows program <tt/winamp/.

	    There is no copyright mentioned anywhere (I assume that it
	    can be freely used for personal use).  It is maintained by
	    Mikael Alm (<tt/psy@x11amp.bz.nu/), Thomas Nilsson
	    (<tt/fatal@x11amp.bz.nu/), and Olle Hallnas
	    (<tt/crocodile@x11amp.bz.nu/).

	    It can be obtained from <url
	    url="http://www.x11amp.bz.nu/" name="X11Amp's homepage">.
	    Only binaries for Intel Linux and FreeBSD are made
	    available here.

      <sect1><idx/WAV/</heading>
	<p>
	  Quote from the <tt/sox/ man page:

	  <quote>
	    These appear to be very similar to IFF files, but not the
	    same.  They are the native sound file format of Windows
	    3.1.  Obviously, Windows 3.1 is of such incredible
	    importance to the computer industry that it just had to
	    have its own sound file format.
	  </quote>

	  These usually have the extension <tt/.wav/.

	  Also see section <ref id="sec-sox" name="sox"> and <ref
	    id="sec-bplay" name="bplay"> for other WAV players besides
	  the ones listed here.


	<sect2><cdx/wavplay/</heading>
	  <!-- Probably not outdated - I don't use it -->
	  <p>
	    This program supports playing and recording with the WAV
	    format.  It uses locking so that only one sound may be
	    played at a time.  Its locking capabilities can also be
	    used separately from its sound playing capabilities.

	    In addition to a command-line interface, it also has a
	    Motif interface, which can be used with Lesstif.

	    It was originally written by Andre Fuechsel
	    (<tt/af1@irz.inf.tu-dresden.de/), but was evolved to the
	    point of being completely rewritten by Warren W. Gay
	    (<tt/bx249@freenet.toronto.on.ca/ or <tt/wwg@ica.net/).

	    It can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/wavplay-1.0.tar.gz">.


      <sect1>Other stuff</heading>
	<p>
	  This section lists stuff that play sound formats that don't
	  deserve a separate section (i.e. formats that have only one
	  player available), or players that play more than one
	  format.


	<sect2><cdx/sox/<label id="sec-sox"></heading>
	  <!-- Possibly outdated - I use it -->
	  <p>
	    This program is actually a converter, that is, it converts
	    one sound format to another.  However, some versions of
	    <tt/sox/, when invoked as <tt/play/, plays the sound (the
	    <tt/play/ application in the Sound HOWTO probably refers
	    to this).  It supports raw (no header) binary and textual
	    data, IRCAM Sound Files, Sound Blaster <tt/.voc/,
	    SPARC <tt/.au/ (w/header), Mac HCOM, PC/DOS <tt/.sou/, Sndtool,
	    and Sounder, NeXT <tt/.snd/, Windows 3.1 RIFF/WAV, Turtle
	    Beach <tt/.smp/, CD-R, and Apple/SGI AIFF and 8SVX formats

	    <!-- A lot of these formats I have no experience with, I
	    just took them from the man page. -->

	    Since somewhere in the 1.3.6x kernels, you might have to
	    make a small change in one file to make it play the sound
	    directly.  Namely, you may have to change line 179 in
	    <tt/sbdsp.c/ from

	    <tscreen>
	      <verb>
if (abuf_size < 4096 || abuf_size > 65536) {
	      </verb>
	    </tscreen>

to

	    <tscreen>
	      <verb>
if (abuf_size < 1 || abuf_size > 65536) {
	      </verb>
	    </tscreen>

	    But then again, you may not have to do this.  But doing
	    this won't break anything.

	    <!-- It works without this fix at least with 1.3.92 -->

	    It is written and copyrighted by many people, and can be
	    used for any purpose.

	    It can be obtained from <url url=
	      "ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/Lsox-linux.tar.gz">.

	    A more recent version by Chris Bagwell
	    (<tt/cbagwell@sprynet.com/) (based on the latest gamma
	    version of the original <tt/sox/, and includes the above
	    fix) can be obtained from <url url=
	    "http://home.sprynet.com/sprynet/cbagwell/projects.html">.
	    In addition, this version supports MS ADPCM and IMA ADPCM
	    WAV formats.<nidx/ADPCM/


	<sect2><cdx/bplay/<label id="sec-bplay"></heading>
	  <!-- Possibly outdated - I don't use it -->
	  <p>
	    This <em/beta/ program plays raw audio, WAV, and VOC
	    files.  It's also able to record to these files.  It uses
	    a variety of techniques to get the highest speed possible
	    so that it can run acceptably even on slow machines.  One
	    of these techniques require that the installed programs be
	    setuid root.  The paranoid hoping to use this may want to
	    use the Debian package by Ian Jackson
	    (<tt/ijackson@gnu.org/), which disables the feature
	    that needs the setuid bit.

	    The author is David Monro (<tt/davidm@gh.cs.usyd.edu.au/).

	    It can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/bplay-0.96.tar.gz">.


	<sect2><idx/SIDPLAY/</heading>
	  <!-- Possibly outdated - I don't use it -->
	  <p>
	    This program emulates the <idx/Sound Interface Device/
	    chip (MOS 6581, commonly called SID) and the Micro
	    Processor Unit (<idx/MOS 6510/) of the <idx/Commodore 64/.
	    Therefore it is able to load and execute C64 machine code
	    programs which produce music or sound.  In general these
	    are independent fragments of code and data which have been
	    ripped from games and demonstration programs and have been
	    transferred directly from the C64.

	    It uses a command line interface by default.  There are
	    also Tk and QT interfaces available separately from the
	    main package.

	    It is maintained by Michael Schwendt
	    (<tt/sidplay@geocities.com/).

	    It can be obtained from <url name="SIDPLAY's home page"
	      url="http://www.geocities.com/SiliconValley/Lakes/5147/">.


	<sect2><idx/RealAudio Player/</heading>
	  <!-- Maybe outdated - I don't use it -->
	  <p>
	    This lets you listen to sound, which is stored in a
	    proprietary format, in real time over the Internet without
	    downloading the whole sound file first.  It could be used
	    stand alone, but it is really intended to be used along
	    with a web browser (the explicitly supported ones are
	    Mosaic and Netscape).  It cannot be used without X (you
	    wouldn't be able to get it working with Lynx in a text
	    console).

	    However, there exists a hack which allows one to run the
	    RealAudio player from the text console.  It requires the X
	    virtual frame buffer (Xvfb) server to work.  This hack can
	    be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/traplayer-0.5.tar.gz">.<ncdx/traplayer/

	    This is by Progressive Networks, Inc.  This cannot be
	    redistributed, modified etc.  Look at the license for
	    exact details on what you can do.  It can be obtained by
	    registering with no cost at the <url
	      name="RealAudio home page"
	      url="http://www.realaudio.com/">.


	<sect2>cat</heading>
	  <!-- Never outdated - How can I possibly NOT use this? -->
	  <p>
	    One might think what <tt/cat/, the sometimes overused
	    concatenating utility, has to do with playing sounds.
	    I'll show a use of it through an example.

	    <tscreen>
	      <verb>
$ cat sample.voc > /dev/dsp
$ cat sample.wav > /dev/dsp
$ cat sample.au > /dev/audio
	      </verb>
	    </tscreen>

	    Doing a <tt/cat/ of an <tt/.au/ file to
	    <tt>/dev/audio</tt> will usually work, and if you're lucky
	    enough that the file has the correct byte order (for your
	    platform) etc., a <tt/cat/ of a sound file that uses PCM
	    samples (like <tt/.wav/ or <tt/.voc/) to <tt>/dev/dsp</tt>
	    might even sound right.

	    This isn't a totally useless use of <tt/cat/.  It might be
	    useful, for example, if you have a sound file that none of
	    your programs recognize, and you know that it uses PCM
	    samples, then you might be able to get a very approximate
	    idea on how it sounds like this way (if you're lucky).


    <sect>Other useful sound utilities</heading>
      <p>
	This section has nothing to do with the actual playing of
	sound files.  Rather, it is a collection of some sound
	utilities that one might find useful.

      <sect1><cdx/volume/</heading>
	<!-- Probably not outdated - I use it -->
	<p>
	  This is a simple command line interface for controlling the
	  volume (what else could it be?).  It also has a separate
	  program with a Tcl/Tk interface included in the package for
	  controlling the volume and playing <tt/.au/ sound files.  A
	  very simple Tcl/Tk CD player is also included.

	  This is Freeware and it is written by Sam Lantinga
	  (<tt/slouken@cs.ucdavis.edu/).

	  It can be obtained from <url url=
	    "ftp://sunsite.unc.edu/pub/Linux/apps/sound/soundcard/volume-2.1.tar.gz">.


      <sect1><idx/Sound Studio/</heading>
	<!-- Probably not outdated - I don't use it -->
	<p>
	  This is a Tcl/Tk application that supports playback,
	  recording, and editing of digital sound using <tt/sox/.  It
	  includes <tt/sox/ in the distribution to avoid compatibility
	  problems.

	  This was written by Paul Sharpe and N. J. Bailey
	  (<tt/N.J.Bailey@leeds.ac.uk/).  It may be freely used and
	  redistributed if a postcard is sent.

	  <!-- I'm not quite sure if N. J. Bailey is now one of the
	  authors.  (He wasn't originally, as far as I know). -->

	  It can be found at <url name="Sound Studio's home page" url=
	    "http://www.elec-eng.leeds.ac.uk/staff/een6njb/Software/Studio/screens.html">.


      <sect1><idx/Tickle Music/</heading>
	<!-- Probably not outdated - I don't use it -->
	<p>
	  This <em/beta/ Tcl/Tk program is a music file browser that
	  allows you to play various sound formats as long as an
	  appropriate program to play it is on your system.  By
	  default <tt/gmod/ is used for playing MOD files and <tt/mp/
	  for playing MIDI files (you can change the source to use
	  other programs).

	  It is written and copyrighted by Shannon Hendrix
	  (<tt/shendrix@pcs.cnu.edu/ or
	  <tt/shendrix@escape.widomaker.com/).

	  It can be obtained from <url url=
	  "ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/tmusic-1.0.tar.gz">.


    <sect>References</heading>
      <p>
	<enum>
	  <item>The documentation included with the applications in
	    this document.

	  <item>The Linux Sound HOWTO.  It can be found at the <url
	      name="Linux Documentation Project"
	      url="http://sunsite.unc.edu/LDP/">.

	  <item><url name="Linux MIDI and Sound Applications"
	      url="http://www.bright.net/~dlphilp/linux_soundapps.html">

	  <item><url name="Programmer's Guide to OSS"
	      url="http://www.4front-tech.com/pguide/">

	  <item><url name="SoX home page"
	      url="http://www.spies.com/Sox/">
	</enum>
  </article>
