the workbench

From time to time I get a project in a state where it might actually be useful to someone. Such things might appear here.

Screen savers

Storming Ions screenshot

A friend came to me one day and asked if I knew how to write screen savers. Uh-oh, I said...

She spoke of a field where coloured dots - representing ions - swirl around a black hole. So I dusted off some code I wrote in 1999, reread up on Newton's laws of motion, and started tinkering. I haven't seen the original, and have only been working from a vague description of it, so this isn't a clone or derivative so much as an inspired work.

The result is a Windows screensaver called Storming Ions, and is MIT-licensed.

I currently maintain a feature request list on my wiki. Suggestions welcome, though if you don't have an account on the wiki please email them...

Empeg hacking

The Empeg is (was) a car stereo audio device created by Empeg Ltd of Cambridge in 1998-99. It was later renamed the Rio Car when Empeg Ltd were acquired by Sonic|Blue. Unfortunately, the line was EOLed in 2001; only around 4300 were ever made. I have a Mk2a, serial number 10102115.

The device features a StrongArm 1100 running linux, decent DACs presenting as phono outputs, a 2.5" hard drive, a 128x32x2bpp VFD, a 10Mbit ethernet port, a remote control, and a player application supporting (amongst other features) playlists, searching and a host of visualisations. Being intended for the car market, it came with a docking sled, though mine has only ever been in my hi-fi stack.

There is however a burgeoning owner community, many of whom tinker with the Linux-based software on the device. See: http://www.riocar.org/, http://empegbbs.com/ and http://www.empeg.mars.org/.

Plans

So, where is this leading?

Take the Empeg. Rip out the hard drive and teach it to nfs-root off a server on my LAN. On that server, run the DisOrder jukebox software in its brand shiny new (as of 2007) RTP streaming mode. So the empeg can live on in my hi-fi stack, but play selected tracks from my master music store (which, incidentally, has grown to be larger than the hard drive in the Empeg), and I've done away with the hassle of the Empeg's faffy synchronisation software.

Phase 1, therefore, is to port the relevant client bits of DisOrder to the empeg. Unfortunately, the empeg doesn't have ALSA - only a slightly idiosyncratic /dev/audio - so this isn't just a cross-compile.

Phase 2 will be to add a display on the empeg's VFD using one or other of the disorder client interfaces showing what's playing and perhaps what's next.

Phase 3 will be to tweak the empeg environment so this code autoruns on boot instead of the empeg's own player.

Phase 4 will be to add a degree of control to the interface so I can scratch tracks, manipulate the playlist and perhaps even search for tracks to queue.

Bonus points for: Visualisations. The visualisation and control interface to be usable other than on the Empeg. A DisOrder logo I can flash in to replace the current boot-time logo.

Status 30/9/2007: Phase 1 completed this weekend. The empeg plays a near-flawless RTP stream, even though its 10Mbit ethernet is close to maximum realistic bandwidth (44kHz stereo 16-bit samples come to about 1.44Mbit/s, allowing for ether+IP+UDP+RTP headers).

Update 1/2/2008: To a working approximation, all four phases are now complete to a basic level. I updated to disorder 2.0.x, at which point rjk had merged my changes; I have a great RTP audio stream, the current track name displays, the player and displayer run on boot instead of the empeg's own player, and I even have play/pause/scratch from both the front panel and the remote.

Remaining wishlist:

N.B. I used to publish a bzr repository here, but it became obsolete after rjk merged in my changes. It may yet reappear if I start making nontrivial internal changes.

Miscellanea

Humour