Now that I finally finished cs161, I've been working on the user-end code and spent a while refactoring it and making it nice and somewhat painless to create somewhat expressive 'galleries' -- meaning, extending a Gallery class to define how a particular gallery works, e.g. RISD gallery, or CIT computer museum gallery, etc...
There is still lots that could be done on it (it's not a hack, it's a very elegant, well-thought-out hack). I'm hoping to connect it to a live cricket data stream in linux in a few days (I've been using a prerecorded session) -- InputStreams are data sources, so it's pretty easy to wire into a file, a socket, or a terminal in Linux.
Of course, this means that the implementation requires a laptop, preferably running Linux (the Cricket code that broadcasts readings from the serial port is *Nix only -- we'd have to port it otherwise), and necessarily running Java. This could be changed by rewriting the code in another language, but Java is good for prototyping.
Ideally the user code would be extended to server code, which would understand stateful sessions of users running the same gallery. And that we could recieve readings via BT or WiFi TCP, and stream audio packets back over BT. (there's more to worry about, like mixing the audio, or making sure there's only one stream playing -- not really within the realm of what we've got now).