Review: SliMP3 (Updated)

Here is my attempt at reviewing the SliMP3 from Slim Devices, Inc. I say attempt because I always feel sketchy giving a glowing review of a product. As you read this, the enthusiasm isn’t driven by some ulterior motive but instead pure geek and audiophile ecstasy. The SliMP3 is a network-based MP3 player designed to connect to your component audio system (or anything else with RCA line-level inputs). It costs approximately $250 and is available directly from Slim Devices as well as a few other vendors.

I ordered the device last week after Adam pointed me at a review of the unit on Tom’s Hardware. After reading that review (and several others), I felt like I was having a geek wet dream, and I simply couldn’t help myself… (Speaking of ulterior motives, I am convinced that Adam forwarded me the article knowing this would happen… He gets roommate access to the device.. :P).

I received the unit this morning (left by FedEx at the door… Why is it they require a signature when I order a box of Milk Duds, but when I order something for $250 they leave it at the door?) before I left for the dentist and decided there was no need to be 30 minutes early for my appointment and set it up quickly. I had already downloaded and started the server (added ‘server.pl’ to the init scripts) on my linux-based firewall/file-server. Once the server is running you bring up its interface in a web-browser and tell it where your mp3 files are stored. There are many other options, but that’s the important one… If you are a setting tweaker, a quick read of the Tom’s review will make it clear how detailed you can get…

I took the gimzo out of the box, cast the directions aside, hooked up the cat5, power, and RCA cables (all included) and the unit powered up. This is when I noticed the absolutely beautiful vacuum flourescent display brightly beaming it’s goodness towards me… Compared to other home-stereo MP3 solutions (like the Audiotron or the Rio Receiver), this display is large and bright, and even readable from across the room… Continuing on with the setup, I realized that the remote control that it came with was just a generic Sony universal remote, so I decided to pick up the directions to see what I needed to do to set it up.. Six or seven keypresses later the remote was ready to go. The SliMP3 asked me if I wanted to configure it, so I said yes. It asked me if I wanted to use DHCP and the “Slim Discovery Protocol” to obtain the IP address of the unit and of the server (respectively), and I said yes. After a second or two it was up and running. Really. That was it.

The first menu option was “Music Library”, so I pressed the right arrow on the remote and it showed me my directory hierarchy (this took approximately 6 seconds for 170 directories, but caching of this info was activated on the server, so subsequent access were almost instantaneous). Just looking to see if it would make noise I kept pressing right, descending down the left-most branch of the directory tree until I hit a file. I pressed play and amazingly it started playing…. I couldn’t hear any weird electrical noise, or any other distortions, but it was kinda early and I didn’t have too much time, so I didn’t have too much time to scrutinize it… I looked at the remote control guide in the manual and figured out how to add songs to the current playlist… I pressed left a few times then down a few times, and found another file and pressed the proper button. The UI informed me that the song had been added to the end of the playlist… The evil geek in me said “I betcha I can’t add a whole directory to the playlist”, so I tried it and lo-and-behold it didn’t even flinch, adding the directory to the playlist…

After turning it off the display dimmed and displayed the current date and time (which was wrong, because the server’s clock was off.. :P), and I grinned as I headed out to the dentist (and later, work). At work, Carlos was curious about it and wanted to see the web interface at work, so I sshed to my firewall and allowed access to that port from work. I was pleased to notice that the playlist that I had quickly built before I left was still there waiting for me to hit play again when I got back. The web interface is straightforward, a split-frame approach, with a table of links leading to music-browsing and settings pages on the left and the current playlist on the right. From the webpage you can add and remove songs to the playlist or even play them right away. I clicked on a song on the playlist and it started playing it right away (or at least that’s what it told me, I was at work… :P)

While at work I spent a few minutes tweaking various things like how it displayed the filenames on the display, and how dim it got when turned off… I was impressed by the flexibility of the naming options… You can name based on the filename, or the ID3 tags, and you can create custom formatting strings if you aren’t satisfied with their tastes in display.

I got home and started playing with it right away, this time letting my ears really pay attention to the quality of the playback…. Even when I cranked it I couldn’t hear any interference or electrical noise in the signal, and I also was pretty pleased with the tonal qualities of the audio (although I did end up tweaking my receiver’s equalizer a bit later, but it would have been fine on its own). I pressed the various display buttons on my remote to look at the settings I played with at work… It was nice to see that the display had both a two-line mode and a one-line mode of display (the one line mode is easier to read across the room, but displays less info and looks shittier, IMHO). I then did an experiment where I cut a single MP3 into about 9 chunks and put them in a playlist in order. I pressed play and listened to them play back without any gaps, meaning that as long as you have properly ripped MP3’s you won’t hear any gaps between album tracks (unless they were there in the first place)…. I also played around with something I generally don’t touch, but figured I would for , the genre support…. The server looks at the ID3 genre tags and allows you to browse by genre. You can browse to Jazz and just add the whole thing to the playlist… You can then turn on shuffle to randomly play songs from that playlist… You can of course also dive into the genre and pick and choose from within. I was happy to see that after diving into the Jazz genre, it didn’t present me with a flat list of files, instead organizing them into “directories” of artists, then albums… This preservation of the hierarchy was nice…

I could really go on and on about how nice the user experience is, but I think I will spare you… If you have any questions, feel free to leave a comment and I will get back to you.

Moving on, one of the things that drew me to this device was how open it is…. From the Slim Devices website you can download the source to both the devices firmware and the server. An open system like this is nice because in a competitive industry such as this one it is nice to know that even if the company that made your device goes kaput (which in this case I hope doesn’t happen), you can still keep it alive yourself (and probably with the help of many others). The server software is written in surprisingly understandable Perl, and should run on any OS that supports v5.6.1 of the language… It is officially supported on Linux, OSX, and Windows, but has been run on many other OSes like Be and Solaris, to name a few… My guess is that if your OS supports Perl 5.6.1 and IP operations, you are good to go.

One of the other things that interested me is that the actual hardware is a dumb-terminal, and only knows how to decode MP3 frames and display text… The server does all actual work, right down to telling the unit what’s on the display at any given moment…. This is a bit chatty, but the network traffic appears to be negligible…. The unit only has a 10Mb interface in it, and it doesn’t seem to saturate that, so given the typical 100Mb network in homes today, it shouldn’t even be a concern. What this allows, though, is for fairly unlimited functionality to be added on the server side and the dumb terminal just does what it is told. Even the IR codes that come in to the unit are sent to the server for processing…

Given this flexibility, people have been doing some fun hacking with the software, and the unit even comes with a few games that you can play using the remote control. The neatest one was SlimTris, which was a horizontal four column tetris-like game. It also came with a defender-like game that sucked, but again, it is a neat hack. While the player itself only supports playback of MP3’s, it is a simple leap to imagine transcoding formats (taking an Vorbis file and encoding it to mp3 on the fly for playback on the SliMP3 unit) and lots of other cool features. The player can apparently also play back streaming/shoutcast sites if you have them listed in a playlist, but I didn’t try this at all.

I have to say that this unit hits the mark on almost every aspect, and has fully pleased both my inner geek and inner audiophile. But I feel that every review is incomplete without some criticism, so here are some “problems” I came up with so I didn’t seem like a patronizing nancy-boy:

  • I couldn’t find a way to specify more than one spot in the filesystem where files were stored (but I managed to work around this by creating a symlink to the other mountpoint)
  • I couldn’t find a way to save the current playlist in memory to a file Update: This can be done from the web interface (look at the bottom of the right-hand playlist frame)
  • I actually did have a problem where the 4 pixels, starting from the lower left and going vertical stayed lit and it required a power-cycle to fix this, but I haven’t been able to reproduce this

While I probably don’t need to say this explicitly, this seems like a wonderful purchase… At $250, it could be considered a bit pricey, but I maintain that the price is justified based on the display and the capabilities of the unit (not even considering how it will be extended in the future). Looking at the change log of the server software and the many postings to the developers message boards, it appears that this product has sprouted an active development community around it…

Feel free to ask questions below, I will do my best to answer them….

14 thoughts on “Review: SliMP3 (Updated)

  1. Sounds pretty cool… if I was in the market for something with those features, I’d definitely check it out. Sadly, all I want is a device that I can stream to. I don’t want a user interface, I don’t want it wandering through my filesystem, I don’t want to type things in with a remote control, I just want decent audio hardware hooked up to a streaming client; I’ll do the rest, thank-you-very-much. ;)

    It sounds like this device could be driven entirely server-side… true? All the other features aren’t so important to me, but heck, I might be willing to pick it up anyway if it’s as ultimately hackable as it’s made out to be…

    1. The device actually can be (and really is) entirely driven server-side… The UI that is presented on the units display is sent over from the server, and the audio frames that are played back are raw mp3… As I said, the unit itself is fairly dumb and whatever is on the other end of the Slim UDP Protocol tells it how to behave.

      While you might not be interested in any fancy UI, your modified server could simply use the VFD to display other information instead of file name info (new mail notifications, news, weather, whatever) while it was playing back frames…

      1. Aahhhhhhh… now I get it. Don’t know why my brain was apparently in neutral when I first read your post. But now I get it.

        And, now, I want one.

        Dammit.

        1. Hehehehe… Sorry to tempt you… =)

          But yeah, the fact that the hardware is virtually the mp3 equivalent of a dumb terminal is my favorite part of the player…

  2. Review Qs

    Great review, thanks. Questions:

    – I assume you can set a static IP for it instead to DHCP?

    – Is there any built-in firewalling, or can anyone hit your_ip:9000 and get to it? Is the firewalling up to the user, or built in? Can a port other than 9000 be used?

    – Are the web skins customizable / downloadable?

    – Is the server component totally separate from whatever playback app you have running on the server? e.g. If I have all my itunes playlists set up, I would assume that slimp3 cannot use them. And I assume that I can play from itunes on this local machine while the server component broadcasts something totally different out over 9000 (I know you don’t have OS X, but the principle should be the same).

    – When you add new music to your collection, how does slimp3 become aware of it? Like if I add new stuff via the itunes database, is slimp3 automatically aware of anything happening under my /MP3 hierarchy, or do I have to tell it to rescan the dir? IOW, node monitoring? ;)

    – Smiled to see the shacker mention ;) . Congrats on this – sounds like a great purchase. I was on the brink of getting an ipod, now I’m not so sure…. it’s going to be one or the other….

    1. Re: Review Qs

      I assume you can set a static IP for it instead to DHCP?

      Yes, and you can also hardcode the address of the server (as opposed to using the Slim Discovery Protocol).

      Is there any built-in firewalling, or can anyone hit your_ip:9000 and get to it? Is the firewalling up to the user, or built in? Can a port other than 9000 be used?

      It seems to be security-less, so you are definately going to want to protect it behind some kind of firewall… It probably wouldn’t be too much of a stretch for someone to protect it under tcp_wrappers or some kind of basic protection, though.

      Are the web skins customizable / downloadable?

      I didn’t play too much with this, but all the skins appear to be combinations of CSS and HTML files, so I am sure it would be pretty straightforward to modify things. While I don’t see any downloadable skins, it comes with 6 different skins (some of which employ java or javascript for advanced controls).

      Is the server component totally separate from whatever playback app you have running on the server? e.g. If I have all my itunes playlists set up, I would assume that slimp3 cannot use them. And I assume that I can play from itunes on this local machine while the server component broadcasts something totally different out over 9000 (I know you don’t have OS X, but the principle should be the same).

      Well, if iTunes playlists are different from your regular old .m3u or .pls format, I wouldn’t expect them to work, but since the server software is perl, it probably wouldn’t be that difficult to add a tool to parse the iTunes format. Of course, it is also possible that the support is already there, but a quick glance over their docs doesn’t seem to indicate that.

      The current server software is completely seperate from any other software running on your computer, but if your playback software supports streaming ala SoundPlay, you could tune the SliMP3 to that stream… I also wouldn’t be surprised if someone made their own version of the server software since the protocol is open and well documented..

      When you add new music to your collection, how does slimp3 become aware of it? Like if I add new stuff via the itunes database, is slimp3 automatically aware of anything happening under my /MP3 hierarchy, or do I have to tell it to rescan the dir? IOW, node monitoring?

      Node monitoring would be the shit, but as we are all aware, most OSes are currently lacking in that department. The server software builds a cache of the directory structure, and updates it when it notices a change. As far as how often it updates it’s various tag databases (for searching Genre’s, etc), I am not quite sure as I haven’t yet added enough music to give it a test… I will pop onto emusic tonight and grab some stuff and see if it shows up quickly. The night before I got the player I downloaded some new music and when I got the player the next day it was included in the tag database, so it is probably pretty good at noticing.

      1. Re: Review Qs

        Ah, so if I can feed it .m3u files it should be happy? Great – itunes is AppleScriptable, and there are tons of free scripts out there – I’m sure there are some that can translate itunes native playlist format (which is inode based rather than path based, which means you can rename and move files without breaking playlists) and feed them to slimp3. Cool.

        Anyway, thanks much for the feedback. I’m really, really tempted. iPod or SliMP3, iPod or SliMP3, ah, life’s tough questions …

        1. Re: Review Qs

          You could probably also set up a cron job in OSX to run a script that automatically exports all of your iTunes playlists to .pls files on a regular basis.

          The SliMP3 allows you to specify a “Saved Playlists” directory so you can quickly access your playlists from the main menu, so you could toss all the exported playlists right there.

          1. Re: Review Qs

            Sounds like the perfect solution.

            And as you say, it’s open so as soon as Apple gets off their can and makes it possible to write output plugins for iTunes rather than just visualizers, then someone can set up a something similar to what we had with SoundPlay.

      2. Re: Review Qs

        Node monitoring would be the shit, but as we are all aware, most OSes are currently lacking in that department. The server software builds a cache of the directory structure, and updates it when it notices a change. As far as how often it updates it’s various tag databases (for searching Genre’s, etc), I am not quite sure as I haven’t yet added enough music to give it a test…

        The SliMP3 gives you two basic ways to access your music. There’s the “Music Library”, which reflects the exact layout of the files on your hard disk, and then there’s Browse/Search by Artist/Genre/Album, which uses any available ID3 information. We don’t automatically crawl the disk for new files, but we do detect new files/dirs automatically whenever you enter the parent directory. So when you add files, all you do is go into Music Library and navigate to that folder, and the new items will show up. Merely viewing the new files causes them to be added to the ID3 indexes. You can also initiate a complete re-scan of everything just by pressing “play” on the Music Library, from the top level.

        1. Re: Review Qs

          I was trying to think of a reasonable algorithm for doing automated re-scans, but without OS support (like node monitoring) I just don’t think it is worth it… For every user who has a somewhat flat hierarchy there is one like me who has obscene depth to their directory structure…

          How in god’s name did you find this review so fast? I just posted it last night and I already see it linked off the SliMP3 news page… =)

          1. Re: Review Qs

            How in god’s name did you find this review so fast? I just posted it last night and I already see it linked off the SliMP3 news page… =)

            Robert Moser found it on Google – they indexed it within hours of your posting. They crawl weblogs and news pages very frequenty.

            You’re right, without node monitoring it’s impossible to pick up file system changes without looking for them. The best we can do is bring them in when you navigate to the directory, and do it incrementally so the database doesn’t have to be rebuilt. Some people are using this with 400+GB collections, so periodic re-scanning isn’t a good idea.

Leave a Reply