Most of the latest Sony audio and video equipment have an interface called S-Link, which makes it possible to control equipment through an external connector. Also some other electronics manufacturers have similar interfaces, but they are not as versatile as S-Link. Sony itself hasn't really used this interface as well as it would be possible, but a company called Nirvis Systems has made a great effort in this area with their Slink-e control device, which is connected to a standard serial port on the computer. While the device itself can also do generic infrared transmitting and receiving, and other controlling tasks, it is most commonly used for controlling CD-changers and, to lesser extent, some other Sony devices.
I listen to music, a lot. My CD collection isn't really that huge, but I like so many CDs that changing the contents of my old 5-disc changer was a pain in the ass. The other day in Summer 1999 I happened to search the web for different CD jukebox solutions people have. I don't remember the details how I got there, but I did find the site of a nice little company called Nirvis Systems. I quickly noticed what their Slink-e product is all about - controlling Sony's large CD changers and other equipment with a computer. A couple of hours later I knew I wanted one, bad. I also realized that I'm one of those people who would probably write their own software even if there was something ready and usable, so the fact that ready software existed only for Windows didn't bother me at all.
Late August 1999 I got myself a brand new Sony CDP-CX350 300-disc changer, and on September 13th finally a Slink-e.
All this software has been developed on Linux. Everything is written in 100% Python, so in theory it should work on any unix-like system (or even Windows) with similar serial-device and Python language installed. GTK+ widget set will be used for the user interface. Some modules (mainly the server) may be ported to C later.
A little server that handles the serial traffic between actual software and the Slink-e, allowing more than one program to use different Slink-e ports at one time. Also makes programming a lot easier, while taking care of all the serial traffic and Slink-e message handling. Communicates with clients through a TCP socket. This is pretty much usable already.
This already exists in very preliminary pre-alpha quality, and I use it all the time. It has easy-to-use drag'n'drop-based playlist editing and some simple functionality. Old screenshot is available also at the top of this page. At the moment this depends heavily on my own custom CD-database that I've used myself for over six years. Also some device codes and settings are hard-coded :-) Later when this is more self-contained it will be available here, naturally. It will probably take quite a lot time, a lot of rewriting is required.
Some features already implemented
Features to be implemented
I have only one changer, so I won't be able to test whether anything works with other models. I'm also not going to code support for multiple changers for now, for the same reason.
In the works. Learns infrared signals from remote controls and can transmit them.
This is free software, distributed under GNU General Public License, version 2. Notice that this is still pre-alpha quality, it may or may not work depending on machine, configuration, cosmic radiation and sunspots.
Send feedback and bug reports directly to me, firstname.lastname@example.org.