Xmcd & Cda

No one cares about this anymore. I wrote it in 1996, back when people listened to music on CDs. I leave it here for historical disinterest.

I really like xmcd & cda, but they each have some (complimentary) problems.

Xmcd uses Motif. This means I can't compile it because I haven't bought Motif libraries, which means I can't customize it. It also doesn't like to share. It doesn't make its great services available to other applications. It's a great interface for humans, but a louse one for other programs.

Cda is a non-graphical CD controller and consists of a daemon, a command line client, and a curses client. That makes it much more application-friendly, but it lacks a nice GUI. I tried writing a Tcl/Tk front-end, but it was too slow since it had to run cda every time it wanted to do something.

cdash & cdashtk

I embedded a Tcl/Tk interpreter into cda and wrote Tcl commands for most of the features. Then I changed my GUI, tkcda, to use this new interpreter, and now it's great. In addition to tkcda I've written a bunch of other really nifty scripts.

I've got one already have a Perl script that makes my browser bring up a web page appropriate to what I'm listening to, sometimes even lyrics for the current song. I have a button to run this from butler, and because I don't always have butler running, I also stuck a button for it on my CD player GUI.

I've got another Perl script that makes sure the current CD is in my database of music I own, and a Tcl/Tk script that will show me the track list of what's playing. It's all great fun.


Here's what you need to do:

  1. Get the Xmcd/Cda source
  2. Untar it somewhere
  3. Get the cdash source
  4. Untar it on top of Xmcd.
  5. Make sure you have Tcl and Tk libraries installed, at least versions 4.0 and 7.4 respectively.
  6. Build everything according to the Xmcd directions. If you don't have Motif libraries, you won't be able to build the Xmcd executable, but you can get one from the Xmcd web site. Everything else should build, including cdash and cdashtk.
  7. Install cda as per the instructions that come with it.
  8. The install script won't take care of cdash and cdashtk, so copy those executables from xmcd-2.0/cda_d/ to somewhere more useful. They do not need to run as root.
  9. Also download and try out tkcda, a nice front end.