Monday, March 30, 2020

ODroid Music Streamer (and FREE Roon Replacement)

I've been playing for a while now with an ODroid N2 and trying to build a music streamer from it. In some ways, that is not particularly difficult, but I'm trying to do it my own way, of course, which makes it more so. This page records the steps I've taken to get it working.1

Generally speaking, I use the Logitech Media Server (LMS) as my main server software. It runs on just about everything, including a lot of NAS boxes, and so can be used by anyone. Basically, what it does is just manage your central digital music library, though it will also allow you to access streaming services like Tidal, Qobuz, and the like. You can run that on an ODriod, too (or similar hardware), even the very same one as you are using to access the server (as a client).

So I won't talk here about how to set up LMS itself but will assume you have that running somewhere on your network. (Maybe I'll do a separate post about that later.)
  1. My ODroid N2 is just running the version of Ubuntu I got from HardKernel (the South Korean company who makes these little things) on the MMC card. Boots right up. So far, so easy.
  2. Now, install the squeezelite software client. The good news is that the Ubuntu repos have this already. (So, for that matter, Fedora repos, though some of the steps are different in that case.) We'll need to do a few things as root here, so:
    # sudo bash
    if you dare. Otherwise, just add "sudo" before most of what follows.
    # apt-get install squeezelite
  3. You will probably want to set a custom name for your streamer, especially if you plan to have more than one. So:
    # vi /etc/default/squeezelite
    Change the SL__NAME variable, which is just set to the hostname, by default. (Note: On Fedora, this file is at /etc/sysconfig/squeezelite, and it has almost nothing in it by default.)
  4. You will probably also want at some point to change the default soundcard, so that squeezelite plays to your DAC, or whatever. This is controlled by the SL_SOUNDARD variable. You can use:
    # aplay -L
    to see the available output devices. These tend to be self-explanatory, though there can be a lot of them. I think you want "hw:CARD=???,DEV=??" in most cases. That's what will give you 'bit perfect' output, at least according to what I've read.
  5. Set squeezelite to start at boot, if you want:
    # update-rc.d squeezelite defaults
At this point, things ought to be working. Test it out by trying it! If you have issues, feel free to email me.

Note, by the way, that an ODroid (or whatever) can also be used as a music server. For that, you can just install the logitechmediaserver package.

There's more one can do, but if you just want to stream LMS to a USB DAC, that should be enough.

1For what it's worth, I don't really need a music streamer. I've got plenty. Ultimately, I want to build something that could be used (e.g., by elementary students) for video streaming for, e.g., educational purposes. But it seems easiest to start with something with which I'm a bit more familiar, and build up to the video stuff. So I'm playing with a lot of different hardware here and trying to see what works best, and what is easiest to use.

No comments:

Post a Comment

Comments welcome, but they are expected to be civil.
Please don't bother spamming me. I'm only going to delete it.