Maplay 1.2+ for Win32

  Web Site

                          Last modified: May 13, 1997

     ----------------------------------------------------------------------

Newest version released: 1.81

  Latest News:

   The HP version is now downloadable. Sorry for those who couldn't get the
   old archive to work.

   I've got MPEG-2 streams kind of working on the version I'm working on at
   home, but it needs some bug fixes before I release it to the public.

   Version 1.81 has been ported to Linux, Macintosh (on PowerPC), OS/2, BeOS,
   HP-UX, and FreeBSD successfully. For the newest source files and
   information on these ports, check the ports section.

   Alas, I have found out that the console version does not work with Windows
   3.1. Sorry for the inconvenience.

   The layer III version of maplay 1.2+ for Win32 is now available, including
   the complete source code! It requires at least a Pentium-60 CPU for stereo
   layer III streams. The overall performance of the decoder, for all layers
   has increased. See the file whatsnew.txt for a complete description of the
   changes.

   This version should be very portable because I spent a lot of time making
   it so. I also did a minor port to the Win32 console. See the porting
   section for information.

   A console version is also now available!

   Anyone who is interested in purchasing a DLL, let me know. I have not
   begun work on it yet, I just want to get an idea of the demand for it.

   The layer III decoder of maplay is highly optimized from the original
   public c source, but still is quite CPU intensive. If you are interested
   in making optimizations (and getting a share of the glory) please don't
   bother with the following functions, which I've already gotten
   optimizations for:
     * Bit_Reserve::get_bits()
     * Ibitstream::read_buffer()
   Optimizations for any other functions are welcomed. Send them to
   ctsay@pasteur.eecs.berkeley.edu!

  What is maplay 1.2?

   Maplay 1.2 is a program written for UNIX systems by Tobias Bading. What it
   does is decodes MPEG Audio Layer I and II files, which are factor of 6-12
   times smaller than uncompressed audio (like Windows PCM WAVE, Sun AU, or
   Mac AIFF files). Despite the huge compression, there is no audible signal
   loss! Using MPEG Audio Layer III, you can retain CD-quality sound at
   compression ratios around 1:11 (112 kbit/s). Unfortunately, decoding MPEG
   audio streams is a very CPU intensive process. And until now, there have
   been no fully-featured decoders available for Windows.

  What is maplay 1.2+ for Win32?

   Thanks to Bading's hard work in maintaining portability in maplay, I was
   able to re-target maplay to run on the Windows 95 and Windows NT operating
   systems. I also added a few features such as WAV playing, pausing,
   stopping, and repeating MPEG audio playback. It took about 4 weeks, since
   I had no prior Windows programming experience. Now after a year of work,
   maplay 1.2+ for Win32 also has support for layer III MPEG-1 audio streams.

  What do I need to run maplay 1.2+ for Win32?

   Maplay 1.2+ for Win32 requires the following hardware and software to run:
     * 486 or higher CPU (Pentium required for stereo playback.)
     * Either the Windows 95 or Windows NT operating system. It will not run
       on Windows 3.1 or lower operating systems, even if you have Win32s.
     * A 16-bit sound card, and the appropriate driver for Windows. (I have
       reports that 8-bit sound cards such as the SB Pro and SB work as
       well.)

  What about the competition?

   Ever since maplay 1.2 for Win32 was released, many other MPEG audio
   decoders for Windows have also been released. But I still think maplay 1.2
   for Win32 is still the best! Compare the features in the following table:

   +------------------------------------------------------------------------+
   |Program       |Layer  |Layer |Layer |WAV   |Bits/sample |Sample |Stereo |
   |              |I      |II    |III   |      |            |freq.  |       |
   |--------------+-------+------+------+------+------------+-------+-------|
   |XingSound^1   |?      |Yes   |No    |Yes   |16^2        |22.0   |No     |
   |              |       |      |      |      |            |kHz    |       |
   |--------------+-------+------+------+------+------------+-------+-------|
   |AMAPLAY       |?      |Yes   |No    |No    |16          |48.0   |Yes    |
   |              |       |      |      |      |            |kHz    |       |
   |--------------+-------+------+------+------+------------+-------+-------|
   |Philips       |No     |Yes   |No    |No    |16          |48.0   |Yes    |
   |mpgplay       |       |      |      |      |            |kHz    |       |
   |--------------+-------+------+------+------+------------+-------+-------|
   |ActiveMovie   |?      |Yes   |No    |Yes^4 |16          |22.0   |Yes    |
   |              |       |      |      |      |            |kHz    |       |
   |--------------+-------+------+------+------+------------+-------+-------|
   |WinPlay3      |No     |No    |Yes   |No    |16          |48.0   |Yes    |
   |              |       |      |      |      |            |kHz    |       |
   |--------------+-------+------+------+------+------------+-------+-------|
   |museArc       |No     |Yes   |Yes   |No    |16          |48.0   |Yes    |
   |              |       |      |      |      |            |kHz    |       |
   |--------------+-------+------+------+------+------------+-------+-------|
   |maplay for    |Yes    |Yes   |Yes   |Yes   |16          |48.0   |Yes    |
   |Win32         |       |      |      |      |            |kHz    |       |
   +------------------------------------------------------------------------+

   +---------------------------------------------------------------------------+
   |Program     |Seeks |Playlists |Interface |Win3.1 |Win95 |WinNT |Distributed|
   |            |      |          |          |       |      |      |As:        |
   |------------+------+----------+----------+-------+------+------+-----------|
   |XingSound   |Yes   |No        |OK        |Yes    |Yes^3 |Yes^3 |Freeware   |
   |------------+------+----------+----------+-------+------+------+-----------|
   |AMAPLAY     |Yes   |No        |Ugly!     |No     |Yes^3 |Yes^3 |Shareware  |
   |------------+------+----------+----------+-------+------+------+-----------|
   |Philips     |No    |No        |Good      |No     |Yes^3 |Yes^3 |Freeware   |
   |mpgplay     |      |          |          |       |      |      |           |
   |------------+------+----------+----------+-------+------+------+-----------|
   |ActiveMovie |Yes   |No        |Media     |No     |Yes   |Yes   |Freeware   |
   |            |      |          |Player    |       |      |      |           |
   |------------+------+----------+----------+-------+------+------+-----------|
   |WinPlay3    |No    |Yes       |Good      |Yes    |Yes^3 |Yes^3 |Shareware  |
   |------------+------+----------+----------+-------+------+------+-----------|
   |museArc     |Yes   |Yes       |OK        |Yes    |Yes   |Yes   |Shareware  |
   |------------+------+----------+----------+-------+------+------+-----------|
   |maplay for  |Yes   |Yes       |Good      |No     |Yes   |Yes   |Freeware   |
   |Win32       |      |          |          |       |      |      |           |
   +---------------------------------------------------------------------------+

   ^1Freeware version of XingSound. There is a full-featured version, but it
   is not free. 
   ^2Low precision 
   ^3Not a native 32-bit program 
   ^4Through Media Player 

   museArc has a 60 second restriction on playback time. The non-hacked
   version of WinPlay3 has a 20 second restriction on playback time.
   Ridiculous!

  Should I even consider WinPlay3 at all?

   Yes. Maplay 1.2+ for Win32 takes more CPU time to decode stereo layer III
   files than WinPlay3. Also, WinPlay3 has several modes that tradeoff audio
   quality for CPU usage. In general, WinPlay3 requires about 2/3 of the CPU
   time that maplay 1.2+ for Win32 does. So your background tasks will also
   execute faster if you are using WinPlay3. However, WinPlay3 lacks the
   ability to seek within a stream, and the highest playback quality is the
   same as maplay's.

   Besides speed, WinPlay3 also decodes MPEG-2 LSF streams which maplay 1.2+
   does not support yet.

  What kind of interface does the program have?

   Check out the Maplay 1.2+ for Win32 Gallery!

  Cool. Where can I get maplay for Win32, and how do I install it?

   Maplay for Win32, version 1.81, is available here (on my shell account on
   cory, a Berkeley EECS server) in following four flavors:

+------------------------------------------------------+
|                      | 486           | Pentium       |
|----------------------+---------------+---------------|
| InstallShield Setup  | mpw181-4.zip  | mpw181-5.zip  |
|----------------------+---------------+---------------|
| No Installshield     | mpw4nois.zip  | mpw5nois.zip  |
+------------------------------------------------------+

   A few notes on installing:
     * The InstallShield Setup takes longer to download but will
       automatically configure everything for you. If you have WinZip, you
       can simply open the archive with WinZip, choose the file "setup.exe"
       and select the menu option Action...Install. If you are having
       difficulties (getting stuck at 42%, etc.), close all of your other
       programs and add the maplay through the Add/Remove Programs icon of
       the Control Panel.
     * The same files are contained in archives that do not contain the
       InstallShield setup. These are for people who are having problems
       using InstallShield, or who are having downloading problems. The
       versions with InstallShield are approximately 878 KB; the ones without
       InstallShield are approximately 270 KB.
     * If you plan to use the version with InstallShield, you should
       uninstall version 1.71 or later of maplay, if you have it, before you
       proceed.
     * All of the above 4 archives contain the source code. If you are using
       the InstallShield version and want to copy the source code, choose
       "Custom Setup". The source code is automatically unzipped to a /src
       subdirectory if you have the non-InstallShield version.
     * I have reports that non-Intel CPU's such as AMD's K5 and Cyrix's 6x86
       run the 486 version much faster than the Pentium version.

   The console version is also available here in two flavors:

+-----------------------------+
| 486          | Pentium      |
|--------------+--------------|
| mpcon-4.zip  | mpcon-5.zip  |
+-----------------------------+

   These command-line versions (about 83 KB) do not include source code; for
   the source, please download one the GUI versions. Please see the above
   note for non-Intel CPU's.

   These are the NEWEST versions (1.81), last modified on April 20, 1997. See
   the "whatsnew.txt" file for details on the changes. 

  How do I use maplay for Win32?

   Maplay for Win32 supports command-line playback, so you can associate MP2,
   MP3, or MPG files with maplay in the File Manager of Windows Explorer.
   Actually, this will now be partially done by the installation program, so
   you don't have to do anything yourself. Just select the MP2 (MPEG-1 Layer
   II Audio Stream) or LST (playlist) file in Explorer, and double-click! If
   you want to associate MP3 files to maplay, you will have to do this
   manually. Just delete whatever association you had before, and
   double-click on the MP3 file. Use maplay to open the file from now on.You
   can also use it as a viewer in Netscape. The MIME type is "audio", and the
   subtype is "x-mpeg". Finally, you can use as a stand-alone program, as
   there is a menu item to open files. Feel free to e-mail me if you need
   further instructions.

   If you need more powerful playlist abilities, you can use either :
     * MP3 Manager, Peter Strnad's playlist creator/launcher.
     * MP3 Jukebox by Niclas Borg.

  How much does maplay for Win32 cost?

   Nothing. Well, almost nothing. Of course you still have to pay for the
   access time and the long distance charges to download it! However, your
   generous donations are welcomed but not required. To donate, please send a
   check or money order to:

                                   Jeff Tsay
                            1818 Walnut St. Apt. #3
                               Berkeley, CA 94709

   I'm an extremely poor college student, so anything I receive will go
   towards my college education. I do also take donations of the form of
   interesting CD's, anime CD's, videos, posters, cels, etc., or pretty much
   anything else. If you're not sure I want it, just e-mail me before you
   send it. Thanks.

  Are there any bugs in maplay 1.2+ for Win32?

   Well, as I said before, I'm new at Windows programming, so I'm sure there
   are. But the following are the only bugs I know about:

     * Audio streams with the Low Sample Frequency extension of MPEG-2 are
       supported yet. This isn't really a bug, but I get a lot of mail from
       people asking why maplay reports an error when opening MPEG-2 streams.
     * Ooops! Layer I files playback incorrectly. I have already fixed this
       and the next version shouldn't have this problem.
     * The trackbar and playing time do not advance if a file is repeated.
       This will be fixed in the next version.
     * Due to a memory leak in the waveOut functions of Windows 95, the
       allocated memory slowly increases for large files. There is nothing I
       can do about this.
     * Sometimes the shortcut keys don't work. You just have to use the
       mouse.
   I'll work on getting rid of these bugs, and if you find any others, please
   e-mail me.

  Where can I get MPEG audio files?

   Check out my list of MPEG Audio links.

  How do encode my own MPEG audio files?

   You can use Cool Edit 96 (with the MPEG audio extensions) or AMPEG 4.3,
   which is a DOS program, but considerably faster. (AMPEG now decodes Layer
   III files) Also required is the the source code archive that contains the
   tables. Remember, before WAV files are encoded, they must be saved in
   16-bit format, with a 32 kHz or above sampling frequency. 

  How do I obtain or port maplay 1.2+ for other platforms?

   The source is much more portable, so it should be relatively easy to
   compile. The rows of this table that have links indicate that maplay has
   already been ported, and you can obtain an executable. The rows that are
   marked "N/A" are ports that haven't been done yet, but should be
   relatively straightforward (all the code is already written -- the only
   things left to do are compiling and linking).

   +------------------------------------------------------------------------+
   |           | Version | Distribution  | Binary Executable   | Ported by  |
   |           |         | Site          |                     |            |
   |-----------+---------+---------------+---------------------+------------|
   | IBM AIX   | N/A     | N/A           | N/A                 | N/A        |
   |-----------+---------+---------------+---------------------+------------|
   | Sun SPARC | N/A     | N/A           | N/A                 | N/A        |
   |-----------+---------+---------------+---------------------+------------|
   | HP-UX     | 1.81    | N/A           | maplay_hp.zip       | Earle      |
   | 9.05+     |         |               |                     | Philhower  |
   |-----------+---------+---------------+---------------------+------------|
   | Linux     | 1.81    | N/A           | maplay3-1.1.tar.gz  | Timo       |
   |           |         |               |                     | Jantunen   |
   |-----------+---------+---------------+---------------------+------------|
   | FreeBSD   | 1.81    | Here. Duh!    | maplay+_freebsd.zip | Jeff Tsay  |
   |-----------+---------+---------------+---------------------+------------|
   | SGI       | N/A     | N/A           | N/A                 | N/A        |
   | Indigo    |         |               |                     |            |
   |-----------+---------+---------------+---------------------+------------|
   | NeXTStep  | N/A     | N/A           | N/A                 | N/A        |
   |-----------+---------+---------------+---------------------+------------|
   | BeOS      | 1.81    | N/A           | maplay_beos.zip     | Thomas     |
   |           |         |               |                     | Philippe   |
   |-----------+---------+---------------+---------------------+------------|
   | OS/2      | 1.81    | N/A           | maplay10.zip        | Timo       |
   |           |         |               |                     | Jantunen   |
   |-----------+---------+---------------+---------------------+------------|
   | MacOS     | 1.81    | SoundApp Home | SoundApp.sit.hqz    | Norme      |
   | System 7  |         | Page          |                     | Franke     |
   +------------------------------------------------------------------------+

   I don't want to take away from the authors of SoundApp for the Macintosh
   and maplay for Linux and OS/2; SoundApp supports a ton of audio formats
   besides MPEG Audio. maplay3 for Linux and OS/2 have playlist
   functionality, which the pure command-line version lacks.

   Please see my porting notes for information on how to port to these and
   other platforms. Also note that since the release of 1.81, I have made
   some changes to the source so it ports better to other platforms. This
   source is available here as maplay+.181.src.zip, which doesn't have all
   those nasty ^M's if you are using it for UNIX.

     ----------------------------------------------------------------------

  Credits

     * Original source code by Tobias Bading.
     * Layer III code adopted from the ISO MPEG Audio Subgroup Software
       Simulation Group.
     * Win32 port, interface, and layer III porting and optimizations by Jeff
       Tsay.
     * Additional optimizations/modifications by Conrad Song, Timo Jantunen,
       and and Mikko Tommila. Please see the file credits.txt for the full
       credits.
     * License rights for the original maplay granted by the Free Software
       Foundation, Inc.
     * Borland C++ 5.01 compiler donated by Borland International.

   I wish to thank the following donators, whose contributions make
   developing maplay worth the effort:
     * Corky Coreson
     * Rich ??? (sorry, I don't remember your last name)
     * Deutsche Welle Radio via Wilfried Solbach

  The Future

   This MPEG decoder is only for MPEG-1 streams. The ability to decode MPEG-2
   streams with the Low Frequency Extension will be added ASAP. Also a
   playlist creation interface and Netscape plug-in functionality are
   planned.

   The latest version of maplay is very portable, so I am waiting for people
   to port the code to many other operating systems. I'd like to see a
   version for DOS. 

     ----------------------------------------------------------------------

   Need more information? Broken links? Comments? Please contact me at
   ctsay@pasteur.eecs.berkeley.edu.
