Amphion Project
This project has nothing to do with the NASA
project
of the same name.
Table of Contents
- About Amphion
- Features
- System Requirements
- Current Status
- Relevant Links
- Features to be added
- Known Bugs
About Amphion
Amphion is the name of a Greek god who is reputed to have built a wall
around Thebes by enchanting the stones with his music.
The Amphion Project is a client-server music jukebox. It allows
multiple independant clients to manage a playlist that is held on a
central sever. The server then plays these music files through the
hardware. Currently, the server deals with mp3 files and plays them
using mpg123. The server is easily extensible to any file and player
combination.
The project currently has a server that is known to run on Linux and
FreeBSD, using g++. Clients exist for Windows 9x/NT/2k and unix.
Unix clients are both X11 and curses based. A Java 2 client exists,
potentially allowing access from any platform. The server also includes
a small telnet server for some administration tasks. Most
administration of the server can also be accomplished via signals.
The server maintains a database of available music "tracks" (files).
This database can handle 65535 artists, each with 65535 albums, each
with 65535 tracks. A utility is included to construct the database
given an organized directory structure, and it is easily extendable.
Features
- Pause, skip and add tracks to playlist
- Randomize, or rearrange tracks in a playlist
- Independent of audio format, uses existing players
- Control volume (via sound hardware) and power (power requires X10 interface)
- 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
System Requirements
- Required hardware:
- Disk to store music files, probably rather large
- Sound card - the server plays the music, not the clients
- Network interface
- Required packages: (tested versions in brackets)
- perl (for the database generator) [5.004_04 5.005]
- MP3INFO (ibid)
- g++ (to build the server) [2.91.60 2.95.2]
- 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)
- Java 2 (for the graphical Java client/sync client) [JDK 1.2.2 or 1.3]
Current Status
The Amphion project is usable, and has been extensively tested on the
development platforms. Any other platforms are presumed to work. The
current test setup is:
- A linux server with all music in one directory structure; kernel 2.2.12 or later
- g++ 2.95.2 or later (haven't tried with 3.0 yet)
- Python 1.5.2 w/Tk 8.0, ncurses 3.4
- Perl 5.004_04 (or later 5.x releases)
- mpg123 0.59r
- Soundblaster AWE64 connected to a Sony receiver
- 2 Windows 98 clients, 1 Windows 2000 client
- Java clients running on linux, using JDK 1.2.2rc4 from blackdown,
and Win2k using Sun's JDK 1.3
- A linux curses client
Relevant Links
Features to be added
- Multiple databases, with files in multiple heirarchies - DONE!
- X11 client closer to the Windows version - DONE (Java client w/Swing)
Known Bugs
- If a client disconnects without informing the server, a select()
call may enter an infinite wait state; the server has to be killed and
restarted. Fixing this is not trivial, since linux doesn't support
timeouts on sockets (!).
This site and the project itself graciously hosted by
Created on 17 Jan 2000