About | Download | Features | Shots | Docs | Geeks | SF  

CVS Access:

Or, the latest bleeding edge version of the Obs source is always available by read-only CVS (available at Cyclic Software). You can check out the source code from CVS by doing the following:

cvs -d:pserver:anonymous@cvs.obsbox.sourceforge.net:
    /cvsroot/obsbox login
to log into the CVS server. Note that this is one command, and should all be entered in one line. Then to check out the souce code do:
cvs -d:pserver:anonymous@cvs.obsbox.sourceforge.net:
    /cvsroot/obsbox co obsbox
Once you have checked out a copy of the source you can retrieve the latest version by typing:
cvs -d:pserver:anonymous@cvs.obsbox.sourceforge.net:
    /cvsroot/obsbox update
This page has more details, if this doesn't make sense. Also you might want to browse the CVS tree.

System Overview

Obsequeium uses Perl, Apache, MySQL and Zinf. Without these components Obs would not be possible. Currently the obs server only runs on Linux. If you are interesting in porting it to other platforms, please let me know.

All the data about the music and the playlists are stored on the MySQL server. The MP3s are stored on the local file system in seperate volumes. A volume can simply be a directory where Obs can stash MP3 files. Unfortunately obs does not check available disk space right now -- you'll need to make sure it doesn't run a partition out of space. (This will obviously need to get fixed soon)

The web interface for browsing the music database, creating playlist and manageing the play queue are done via the web. In this case perl scripts talk to the database to manage the data on the server. Using the mod_perl plug-in for Apache SIGNIFICANTLY speeds up the processing of the scripts.

The Obs server is a multithreaded application that talks to the database server to find out what tracks are in the play queue. The top 3 rows in the play queue are locked for caching purposes. (my obs system at home has two 4 CD-ROM changers, and the obs server manages the switching of the disks and caching tracks to the server. Using the cache there is never an interruptiong of the music stream)

The obs server also responds to requests via port 4420. Connecting to that port allows a client to give the 'next' command which moves the play queue to the next track, and it allows the user to submit tracks remotely (anyone with internet access can theoretically submit tracks into any obs server. We'll need to tighten that up.) Via the protocol any user can also download MP3 -- the Rio.pl script downloads a playlist straight into the Rio player.

The playlist manager script is a bit too simple for it own good. In order to move a track to the top of the playlist you need to click the up button way too many times. We've got a new interface prettier, intregrated and more functional) in the works. Stay tuned.