AlsaPlayer - PCM audio player for Linux and compatible OSes

Written by Andy Lo A Foe (andy@alsaplayer.org)

See the file COPYING for license details.


DESCRIPTION
-----------

AlsaPlayer is a new PCM player developed on the Linux Operating System. Since
the first public beta release it support has been added for various other
Operating Systems (mostly Unix variants). AlsaPlayer was written in the first
place to excercise the new ALSA (Advanced Linux Sound Architecture) driver and
library system. 


INTERFACE PLUGINS
-----------------

This cool feature allows you to completely customize your user interface.
I.e. the core of AlsaPlayer is decoupled from the user interface. The default
GTK+ interface is the best supported one. There is also a text interface if
you just want to use AlsaPlayer in a text enviroment. 


INPUT PLUGINS
-------------
The program is very much plugin based. New file formats can be added simply 
by writing a new input plugin. The only requirement is that the data can be
presented in PCM audio format. There are currently no plans to support
video or midi data formats (future projects will address this).
The following plugins are in various states of usability:

- MPEG audio plugin, based on mpg123 0.59r, works quite well, being phased out
  however for:
- MAD based audio plugin, based on the new MAD MPEG decoder library, uses a 
  tiny bit more CPU, but has much better output quality then mpg123.
- CDDA plugin, play back audio CD's by ripping the data digitally of the disk
- MikMod plugin, play back all MikMod supported module formats, no random
  seeking in modules yet
- Audiofile library plugin, this one needs a bit of work still


OUTPUT PLUGINS
--------------
AlsaPlayer also uses a plugin system for outputting audio data. The output
mechanism was designed with ALSA in mind of course. Many other Unix audio
systems map quite well on to it however. Supported output plugins include:

- ALSA, default plugin, best supported.
- OSS and OSS/Lite
- Esound
- Sparc (tested on UltraSparc)
- SGI
- JACK, http://jackit.sf.net, this plugin is actually built-in since its
  differs radically from all the oters. It is callback based. This is my
	preferred output method these days. The underlying audio driver is ALSA.


SCOPE PLUGINS
-------------
Just as input and output support gets loaded in dynamically, scope (or
visualization) plugins are laoded in dynamically also. This enables anyone to
develop a visualization plugin without changing a single line of code in the
main program. A few scope plugins are provided in the main alsaplayer
distribution:

- Monoscope
- Spacescope
- Levelmeter
- FFTscope
- FFTscope II
- logFFtscope

Nothing stops you from writing a kick ass *FULLSCREEN* (DGA) or even a
*Hardwarde Accellerated OpenGL* visualization plugin for AlsaPlayer!


EFFECTS PLUGINS
---------------
Work in progress...


SCOKET CONTROL
---------------

AlsAPlayer can now be controlled from an external program. You only need to
link your application against the supplied libalsaplayer.so and in order
to control AlsaPlayer from your own applications. Seeking, speed control and
playlist advancement are only a few of the commands available to you.


INSTALLATION
------------

Installing AlsaPlayer from source should be as easy as executing the configure
script and then make. The configure script will try to detect all input and
output plugins for your system.
** IMPORTANT**: Make sure you run 'make install' after the compilation is
finished. The various plugins need to be in a specific place on your system.
If you don't want to install it on your system right away you can always use a
different --prefix when running configure. 


RUNNING
-------

Just fire up the executable. You can pass files to play on the command line
too. These will be added to the queue while the first entry will start playing
automatically. The CD like button hides the menu. All other controls should be
straight forward. Improvements to the interface will follow soon.


MAILING LISTS
-------------

We now have a couple of mailing lists for alsaplayer

Name		: alsaplayer-announce
Description : notification of new versions (read-only)
Address		: mailto:alsaplayer-announce-request@lists.tartarus.org
			  with subject "subscribe"
			  
Name		: alsaplayer-devel
Description	: discuss development of alsaplayer
Address		: mailto:alsaplayer-devel-request@lists.tartarus.org
			  with subject "subscribe"
			 
Name		: alsaplayer-commits
Description	: keep up to date on the CVS commits
Address		:  http://lists.sourceforge.net/lists/listinfo/alsaplayer-commits


More information on these mailing lists and online archives can be found at
http://lists.tartarus.org/mailman/listinfo/


CVS REPOSITORY
--------------

You can always check out the latest version of AlsAplayer. Execute the
following commands in the directory you want the sources in:

cvs \
-d:pserver:anonymous@cvs.alsaplayer.sourceforge.net:/cvsroot/alsaplayer \
login

cvs -z3 \
-d:pserver:anonymous@cvs.alsaplayer.sourceforge.net:/cvsroot/alsaplayer \
co alsaplayer

A browsable CVS repositary is also available at:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/alsaplayer/

Thanks to the folks at SourceForge.net for providing these resources.


OTHER INFO
----------

WWW Page: http://www.alsaplayer.org/
Email	: <andy@alsaplayer.org>
