The SLiMP3 device is an incredible feat of engineering and design. Released in 2001, it lets you access and play your entire MP3 music collection without physically accessing your computer. A media server, written in Perl, streams music data to the SLiMP3 device, where it is converted into analog and made available on a stereo connection. A remote control that comes with the unit is all that you use to select what to play and to control playback. If not one of the first network media players, it was definitely one of the coolest, with a retro display look reminicsent of Casio devices from the 80s.
And one of the best things about the server software, written by Sean Adams and Dean Blackketter, is that it is open source, released under the GPL.
Although I have used my glorious SLiMP3 without issue for many years, I recently decided that the server software was overkill for my needs. My music library is all in Apple's iTunes, and I thought it would be a cool to use the original SLiMP3 device as a controller and interface for the iTunes program running on my Apple MacMini (G4), with audio coming directly from the MacMini, not the SLiMP3. And so, after a week or two of hacking in Python, I now release to the world: Pyslimp3.
For iTunes control, Pyslimp3 relies on the incredible Python appscript package that "is a high-level, user-friendly Apple event bridge that allows you to control scriptable Mac OS X applications using ordinary Python scripts."
Of course, Pyslimp3 also requires Python (at least 2.5.1 but not yet 3.0).
qtsim SLiMP3 simulator (see below) depends on the Qt library. There is a text-only simulator as
sim.py). Note that neither the Pyslimp3 server (
sim.py depends on Qt; only the
Finally, Pyslimp3 has been tested only against the original SLiMP3 device and the included Sony remote control. It should not be too much work to adapt the code to other devices and remotes.
To start the Pyslimp3 server (from the Pyslimp3 source directory):
The Pyslimp3 should be able to locate your iTunes Music Library XML file, read it, and begin displaying information on any SLiMP3 device connected to your local network.
How to Operate
The code base also contains two very simple simulators that will display screens from the server and provide minimal
emulation of Sony remote control. One version is a graphical application, built with Qt library. It is
found in the
qtsim directory. To build,
cd qtsim qmake make
The other simulator is a bare-bones text-based one. To run:
You can type in one-letter commands in the simulator to simulate remote control keys (be sure to press RETURN after the letter). The following lists the currently-supported keys/actions:
|, (comma)||Volume up|
|. (period)||Volume down|
|s||Stop iTunes playback|
|p||Begin iTunes playback|
|P||Pause iTunes playback|
|S||Toggle SHUFFLE mode|
|R||Toggle REPEAT mode|
|D||Show playback screen|
|H||Show top-level browser|
|i||Show album or track ratings|
|0-9||Enter a digit|
The wiki tab contains additional documentation for Pyslimp3. Start with the TopBrowser page to see the screens available once you "power on" the device. Check out KeyEventProcessing for a discussion of how it handles remote control key events. A related page, TelephoneKeypadProcessing, describes how to enter text using the numeric keypad found on the remote.