madplay - MPEG audio decoder and player Copyright (C) 2000-2004 Robert Leslie $Id: README,v 1.60 2004/01/23 09:41:31 rob Exp $ =============================================================================== INTRODUCTION `madplay' is a command-line MPEG audio decoder and player based on the MAD library (libmad). For details about MAD, see the libmad package distributed separately. After decoding, `madplay' sends the output to an audio output module. The following audio output modules are provided: - an Open Sound System interface module (for Linux, et al.) - a Sun audio interface module (for Solaris, NetBSD, et al.) - a Mac OS Carbon audio interface module (for Mac OS X) - a Win32 audio interface module (for Windows 95/98/NT/2000, et al.) - an ALSA audio interface module - a QNX audio interface module - an EsounD interface module - a CD audio output module (*.cdr, *.cda) - an Audio IFF output module (*.aif, *.aiff) - a Microsoft RIFF/WAVE file output module (*.wav) - a Sun/NeXT audio file output module (*.au, *.snd) - a raw PCM output module - a hex output module (for debugging and compliance testing) - a null module (for timing the decoder) `madplay' will also read and display ID3 tag information, and further supports the relative volume adjustment information (RVA2) in such tags, as written by tools like `normalize'. Audio Quality MAD produces output samples with a precision greater than 24 bits. Because most output formats use fewer bits, typically 16, `madplay' implements a dithering algorithm when truncating samples for output. This produces high quality audio that generally sounds superior to the output of a simple rounding algorithm. However, dithering may unfavorably affect an analytic examination of the output (such as compliance testing), and therefore it may optionally be disabled at runtime. =============================================================================== BUILDING AND INSTALLING Before you can build this package, you must first build and install the libmad and libid3tag packages distributed separately. Windows Platforms `madplay' can be built under Windows using either MSVC++ or Cygwin. A MSVC++ project file and workspace can be found under the `msvc++' subdirectory. To build `madplay' using Cygwin, you will first need to install the Cygwin tools: http://www.cygwin.com/ You may then proceed with the following POSIX instructions within the Cygwin shell. Note that by default Cygwin will build an executable that depends on the Cygwin DLL. You can use MinGW to build an executable that does not depend on the Cygwin DLL. To do so, give the option --host=mingw32 to `configure'. Be certain you also link with MinGW versions of libmad, libid3tag, and any further dependent libraries (such as zlib). POSIX Platforms (including Cygwin) The code is distributed with a `configure' script that will generate for you a `Makefile' and a `config.h' in each of the subdirectories that require them. See the file `INSTALL' for generic instructions. The specific options you may want to give `configure' are: --disable-debugging do not compile with debugging support, and use more optimizations --with-alsa use ALSA for default audio output --with-esd use EsounD (Enlightened Sound Daemon) for default audio output Support for the EsounD output format type (esd) is enabled automatically if the EsounD library (libesd) is available, however it is not made the default output format unless --with-esd is given. To disable EsounD support completely, use --without-esd. If you have installed libmad and/or libid3tag in an unusual place or `configure' can't find them, you may need to indicate where they are: ./configure ... CPPFLAGS="-I${include_dir}" LDFLAGS="-L${lib_dir}" where ${include_dir} and ${lib_dir} are the locations of the installed header and library files, respectively. Experimenting and Developing Further options for `configure' that may be useful to developers and experimenters are: --enable-debugging enable diagnostic debugging support and debugging symbols --enable-profiling generate `gprof' profiling code --enable-experimental enable code using the EXPERIMENTAL preprocessor define =============================================================================== COPYRIGHT AND AUTHOR Please read the `COPYRIGHT' file for copyright and warranty information. Also, the file `COPYING' contains the full text of the GNU GPL. Send inquiries, comments, bug reports, suggestions, patches, etc. to: Robert Leslie See also the `madplay' home page on the Web: http://www.mars.org/home/rob/proj/mpeg/ ===============================================================================