slimp3slave – finally working

slimp3slave – finally working

In my last post about setting up a slimserver I said that I was having trouble getting slimp3slave working:

Whilst it doesn’t appear to have any problems, I didn’t have much success with the players. mpg123 got confused by the stream, and madplay kept skipping the beginnings of tracks when I hit next on the server. This could be a problem with slimp3slave – I’ll need to investigate.

The problem did turn out to be with slimp3slave. I discovered that when skipping a track the stream is restarted which caused slimp3slave to start up a new player. The problem was this is that it did it before the old one had exited, thus causing the new one to die because it couldn’t access the sound device. There’s another bug here – it didn’t notice the new player dying and tried to write to it, which resulted in lots of SIGPIPE messages.

So I looked at the code for shutting down the player and noticed that it wasn’t using the right close function. This change fixed it:

RCS file: /home/pdw/vcvs/repos/slimp3slave/slimp3slave.c,v
retrieving revision 1.10
diff -u -r1.10 slimp3slave.c
— slimp3slave.c 12 Apr 2004 08:04:52 -0000 1.10
+++ slimp3slave.c 22 Jun 2006 21:21:31 -0000
@@ -394,7 +394,7 @@

void output_pipe_close(FILE * f) {
– fclose(f);
+ pclose(f);

unsigned long curses2ir(int key) {

I have sent this change to the author, so maybe it’ll get integrated.

Now I have a working streaming system. The only remaining problem seems to be the wireless networking to the client dropping out from time to time – a wire would fix that one 🙂

And in the past couple of days I’ve even got a client (softsqueeze on Windows this time) running at work that’s streaming the music over my ADSL connection. Very handy!

(Visited 405 times, 1 visits today)


  1. I’ve used softsqueeze too, but it’s a java application and the extra overheads there are annoying. I did see mention of a C version, but haven’t found out any more about that.

    Sadly I can’t find the sources for softsqueeze – otherwise I might be able to figure out the MAC address sending routines and add them to slimp3slave 🙂

    It is tempting to just buy a SqueezeBox though!

  2. The problem appears to be that slimp3slave doesn’t send a mac address. In the slimserver config the slimp3slave client appears as “00:00:00:00:00:00”. Looking at slimp3slave.c there appears to be an array for the mac address, but it’s unset. Fiddling with that has no effect, so I’d need to know more about the protocol before I could fix it…

Leave a Reply

Your email address will not be published. Required fields are marked *