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/