evolving - Monday 16th September, 2003

richardc on 2003-09-16T16:36:18

Released small revisions to File::Find::Rule and Algorithm::GenerateSequence, just pod fixes really.

---

Fricked about for a few hours in setting up an ogg stream to keep me sane in the office. I looked at a bunch of existing web jukebox systems but they all seemed to want to completely take over the organisation of the source mp3s and oggs, sod that for a game.

So I tweaked the ices2 example to serve up a playlist, which was pleasant, but a little awkward since you couldn't jump around. I really wanted a way to (a) jump around the playlist, (b) stream mp3s too and (b), shift the cost of encoding onto another machine on the network.

xmms-liveice seemed to be a fit for that. It'll let you use xmms to feed the stream which gets you all the joy of xmms's playlist handling and being able to generally cope with all the files I already have. There was the small catch of needing an X server somehow but Xtightvnc solved that, so I started streaming.

A 64Kbps mp3 stream of whitenoise, but a stream all the same.

So taking a step back to using ices2 I reconfigured xmms to use esound for output and then used esdmon to tap into that and send it on:

 esdmon | ices2 ices-live.xml

An even better 112Kbps ogg encoded whitenoise stream! Precision is important in these things after all.

So I scratched my head. Eventually it occurred to me that esdmon was probably outputting big-endian values, where ices2 was expecting little-endian values. Neither esdmon or ices2 could be configured to deal with that, so I quickly wrote some C.

 esdmon | ./swapend | ices2 ices-live.xml

112Kbps ogg-encoded RAWK!