Amphion - A remote control jukebox
----------------------------------

			  Version 0.95 Beta

		    http://amphion.sourceforge.net


Amphion is a server and a collection of clients designed to play audio
tracks, maintain playlists, and tweak the volume.  Amphion lets you
plug a server into your stereo and control the tracks played on your
stereo from another machine.

FEATURES:
	Pause, skip and add tracks to playlist
	Randomize, or rearrange tracks in a playlist
	Independent of audio format, uses existing players
	Control volume and power
	Tracks up to 65,535 artists
	Simultaneous access by many clients
	Clients can save and restore playlists
	Tracks more than 32 useless statistics
	Windows, curses, and X clients available
	Server runs on Linux or FreeBSD
	Supports syslogging of server messages
	Telnet interface to administer server

Although Amphion is not partial to audio format (it will run whatever
you tell it to) we've only used it our 18GB mp3 collection.

To give you an idea of how Amphion works, we'll tell you about the
single motivating setup.  Ours.

	cerberus is our Linux firewall box.  Its audio card (SB AWE64)
	is plugged into Pat's amp (on the TV/LD input).  The amp is
	plugged into an X10 firecracker module (so we can turn it on
	and off).  cerberus has a simple VT420 terminal for a head.

	Our desktop machines (pizza, quasar, and brew) are connected
	to cerberus by a shared 10Mb link.  They all dual boot
	Linux/Win98.

	All of our music is on cerberus in /usr/local/music (on a
	dedicated 20GB drive :). The collection is organized in a
	hierarchy of artist's, album's and tracks.  Like so:
		artist/album/track-xx.mp3

	We've got a cron job that runs make_db.pl every night (in case
	new music is added).  It stores the (text) database in
	/usr/local/music/music_db.

	The server is started with the following arguments:
		-player /usr/local/bin/mpg123 \
		-mdb /usr/local/music/music_db \
		-musicdir /usr/local/music
		
	All of the server's messages are syslog'd.  We put them
	in /var/log/amphion.log by adding the following line to 
	syslog.conf:
		local7.*                /var/log/amphion.log
	(With the '-d' it will log to stdout.)
	
	Then we connect to the server from our Linux and Windows boxes
	using the various clients.  We add tracks, change the volume,
	and listen to music while we code.  You've not listened to
	your music collection until you can pull out various
	individual tracks off 17 different albums and listen to them
	in your preferred order.
	
Setting up Amphion:

	0) Prequisites:  A good bit of patience.  This is the first
	   public release (see that 'BETA' up there?).  It does,
	   however work very well for us.  So, you should be able to
	   get a useful system going.  See the 'Required Packages'
	   section, below for specific required packages.

	1) Compile the server.  Linux or FreeBSD only.  You'll have to
	   edit the Makefile in server/ to point to your version of
	   g++.  You'll need a sufficiently recent g++, too.

	2) Compile the Windows clients if so inclined.  [Not
	   required]. You'll need to make both the server source and
	   the Windows client sources visible to VC++.  The VC++ v6.0
	   project files are included.

	   Windows client binaries should be available on the Amphion
	   web page.

	3) Create a database of your music.  Run 'make_mp3_db.pl' in
	   the database/ subdirectory.  This script creates a text
	   file describing all of the tracks available in your
	   collection.  The 'make_mp3_db.pl' script expects your
	   archive to be organized in directories of aritsts, with
	   each artist's albums in subdirectories.  The script figures
	   out names for tracks, albums and artists from mp3 tags,
	   index files, or directory names (in that order).

	   Look at the sample database in the database/ directory if
	   your environment doesn't quite match ours.

	   Note that the server itself never looks beyond the
	   information stored in its database file for track
	   information.  So, feel free to generate the database by
	   another method.

	4) Start the server.  Just run it out of the build directory
	   for now.  Be sure to pass the '-d' parameter so you can see 
	   what it complains about (otherwise complaints are logged
	   through syslog...).  Give the music database to the -mdb
	   parameter, the root directory of your music collection to
	   the -musicdir parameter and the full path your music player 
	   (we use mpg123) to the -player parameter.
	  
	   Assuming it doesn't blow up immediately, you should be able 
	   to telnet to the server on port 57969.

	5) Run the main python client
	   (pythonClients/amphionClient.py).  You'll have to give it
	   the -H parameter to specify the hostname to connect to.
	   E.g., 'python pythonClients/amphionClient.py -H serverbox'.
	   This client uses curses.  The tk clients are just for
	   status info.

	6) Listen to some music!

	7) Send us some feedback: We take feature requests, even.
	   Patches are, as always, appreciated strongly!


Required packages: (tested versions in brackets)
	perl (for the database generator) [5.004_04]
	MP3INFO (ibid)
	g++ (to build the server) [2.91.60]
	mpg123 (or some player for your files) [0.59r]
	python (to run the python tk/curses clients) [1.5.2]
	  Tk (compatible with your version of python) [8.0]
	  curses (compatible with your version of python) [ncurses 3.4]
	Windows 9x/NT4 (to run the Windows clients)
	Visual C++ v6.0 (to build the Windows clients)

Links:
	Home: http://amphion.sourceforge.net/
	MPG123: http://dorifer.heim3.tu-clausthal.de/~olli/mpg123/
	IDv3 Tag Info: http://www.id3.org/
	MP3INFO: http://search.cpan.org/search?dist=MPEG-MP3Info
	
  The competition:
	MP3 Server Box: http://igalaxie.com/ltt/mp3/us.html
	Mp3Jukebox: http://ananke.worldonline.nl/~t755188/
	MC-Foo: http://mc-foo.sourceforge.net/