Amphion Project

This project has nothing to do with the NASA project of the same name.

Source and binaries available here.

    Table of Contents

  1. About Amphion
  2. Features
  3. System Requirements
  4. Current Status
  5. Relevant Links
  6. Features to be added
  7. 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.


System Requirements

  1. Required hardware:
  2. Required packages: (tested versions in brackets)

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:
  1. A linux server with all music in one directory structure; kernel 2.2.12 or later
  2. 2 Windows 98 clients, 1 Windows 2000 client
  3. Java clients running on linux, using JDK 1.2.2rc4 from blackdown, and Win2k using Sun's JDK 1.3
  4. A linux curses client

Relevant Links

Features to be added

Known Bugs

  1. 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 Get Amphion Jukebox System at Fast, secure and Free Open Source software downloads

Created on 17 Jan 2000