Jukebox Development Project

Last Update: 2 August, 2002



Prototype Jukebox The prototype jukebox is a bit of a hulk. Its made of plywood so it's quite heavy. Despite it's bulk it has had some travel and performed admirably. This has been our development model for quite some time. It has an integrated P150 with 40 meg of ram running linux slackware 7.1 as the primary OS. The computer acts as a giant track index and intelligent remote control communicating with the cd changers. This communication occurs using the slink protocol.

(Use of this protocol is a hack since we don't really understand all of it, but what we do know gives us considerable control. All of the slink details we have are freely shared at http://www.undeadscientist.com/slink.html.)

If the content of the cd changers are modified the system is capable of rebuilding its own index by use of the CDDB database. Since this database was not designed well to be parsed by a machine, most of the rebuilds actually occur from local records that have been cleaned up to be consistant enough for machine parsing. While updating the internal index it also corrects the disc labels in the cd changers internal memory so the correct artists are displayed on the face plate. A complete rebuild of both decks takes about 4 hours, so its something we try to avoid. (This is driven by an average 20 second disc change delay)
Sony CDP-CX350 The hardware doing the bulk of the work are Sony cd changers. I'm using one 200 and one 300 disc model. The 300 disc is pictured at left. These are the work horses of the jukebox, handling discs and producing high quality audio. One problem with the changers is that there are substantial differences from year to year as Sony tries to improve the units. This produces idiosyncracies in the communication protocol used to talk to the decks and forced a significant modification to the CDP-CX350 changer.
ANSI Interface Image The user interface seen on the prototype is a form of homemade ANSI based GUI. The behavior is very window like, but we have no mouse. So, while we have scroll boxes and drop down windows, it all has to be done on the keyboard. One thing this interface lacked was pop-up windows which inhibited our implementation of a large number of features. Also, like many first efforts, it has been abandoned due to a lack of clear vision at the outset. A great many good things were done at the basic code level, and much of the operating code has survived into its sucessor, but the fundamental structure was flawed and limiting. If you would like to use this version of the jukebox or even attempt to improve upon it, it is available on the download page.
Win9x Interface Image The new interface is considerably better. The jukebox control machine running linux has not been removed, but the operating code has been changed from a stand alone jukebox, to a TCP/IP messaging server which can interact with basicly unlimited clients simultaneously. The client seen at left happens to run under Win9x and is a baseline for development of more complicated and powerful client tools. Related to the creation of this client server solution is the development of the CD24 disc identification protocol. The official spec and the first server are up and running at www.cd24db.com.
Used Rackmount Server As part of an ongoing effort to make the jukebox more easily transported the whole unit is being converted to a roadie style rack mount arrangement. The first component purchased as part of this effort is an old P133 rack mount PC. While the hardware may be antiquated by the standards of internet providers, its more than adequate for our little control project. At left is the new unit getting a new OS, Slackware 7.1.
Used Slim Rackmount Server It didn't take long for us to decide that the monster 4U rackmount PC was too bulky for easy transport. So, here is the new unit. It's 1.75 inches tall and sports a much more modern hardware set. 500 Mhz Celeron, 128 MB ram, and 20 GB of storage. As a bonus there is also integrated sound support allowing us to implement soft volume equalization (a huge benefit since commercial audio recordings are frequently extremely loud or extremely soft). In the photo you can see that the unit is running X-Windows and the jukebox client has been launched in the wine emulator. There are presently some stability issues with this arrangement due to compatability with the Borland Builder development environment used to create the client. We're hoping to resolve these by judicious use of compiler options.
Rebuild Client View Here we finally have one of the more advanced, or at least specialized, clients for the jukebox server. This tool is used to manage the database and rebuild the index of songs available for playback. The color codes indicate the status of various discs after reindexing. If everything had gone perfectly all of these would be green (updated) or white (no disc). As it is there are some issues to resolve, most likely discs in the decks for which we do not have identification records available (recent aquisitions).





DNS Management and hosting provided by EasyDNS