How to stream TIDAL to the Raspberry Pi
In earlier articles on networking your Mac music system, I showed how to set up an inexpensive networked music streamer using a Raspberry Pi and a HifiBerry DIGI+ digital output card. Part 1 focused on putting the streamer together and initial setup, and Part 2 showed how to configure a music server to read your iTunes (or other) files and send them to the streamer. For the sake of having a concrete example, the software distribution Volumio was installed on the Raspberry Pi.
But what about music streamed from the Internet? If you’ve poked around the Volumio interface, you’ve probably noticed that it has Internet radio stations. Still, we’re audiophiles, and the hot topic right now is lossless streaming – that is, CD quality audio streamed from the Internet, with TIDAL getting most of the press. Having just set up the Raspberry Pi to play music, we want to be able to send our streamed lossless audio there too…
This is not hard to do. It’s just not all that obvious how. I decided to write down this short step-by-step guide for those who are as mystified as I was. The article assumes that you have a Mac computer, but the Windows or Linux user should be able to adapt easily enough. You will also need a UPnP renderer to send audio to, and in this article I will assume it’s a Raspberry Pi running Volumio.
The article starts by explaining how to install and configure a server application called BubbleUPnP Server. You can install it on your Mac (or a Windows or Linux computer). A controller app will also be needed. Now that we are using BubbleUPnP Server, a broader range of controllers becomes available to us, and I have selected three that I like on three different platforms: BubbleUPnP on Android, LUMIN App on iPad, and Linn Kazoo on Mac.
In the following, Qobuz (another lossless streaming service) often appears alongside TIDAL. I have not tried the Qobuz option, but I expect it will work fine also.
The first thing needed is a program called BubbleUPnP Server running on one computer on your network. This program acts as a “proxy” for a UPnP renderer (like Volumio), effectively turning it into an OpenHome renderer. Essentially, BubbleUPnP Server manages the playlist on behalf of Volumio, so you can have multiple tablets connected and they will all see the same playlist, for example. You also have access to a broader range of controllers (see following sections).
Download and install BubbleUPnP Server as described here:
When the installer completes, it will open a webpage interface to BubbleUPnP Server. Bookmark it to make it easy to find later. (If you lose it, it is at http://localhost:58050/.)
On the Network&Security tab, I turn all of the options shown below off:
On the Media Servers tab, I select each server in turn and turn off “Make this Media Server available … for Internet access”:
On the Media Renderers tab, select your streamer and turn on the option “Create an OpenHome renderer.” In the “Room” field, type in a different name. In this example, I have used “volumio-tidal.” Finally, turn on the option “Gapless playback.” (It does work with Volumio.)
And that’s it. You can close the browser window now. The next task is to install and/or configure a controller of your choice. Choose any of the following three sections, depending on the platform(s) that you want to use.
To control playback from an Android tablet, install the BubbleUPnP app. (It’s appropriate that BubbleUPnP is the first controller listed in this article, as BubbleSoft have provided us with BubbleUPnP Server for free. The full licensed version of the BubbleUPnP app costs a few dollars, and you pay for it by purchasing the BubbleUPnP licensing app.)
Once the BubbleUPnP app is installed, drop down the main menu (top left). For the renderer, select “volumio (OpenHome)” (or the equivalent name for your own). Be sure to select the OpenHome version. For the library, select Local Media Server.
Open Settings (at the bottom of the menu), scroll down and select Local Media Server, then scroll down again and select TIDAL. Check the Enable box and tap on Account to enter your TIDAL username and password, then tap OK.
Back on the main screen, go to the Library view, scroll down and tap on TIDAL. You will get the TIDAL main menu:
From there, you can access your TIDAL favorites (albums, playlists, artists), browse by genre, or use search:
Tap on the three dots to bring up the menu to play an album or add it to your TIDAL favorites. Or tap on the album cover to drill down.
You may be wondering what happens if you select the regular (UPnP) version of the renderer from the menu instead of the OpenHome version. This will still work – the difference is that your tablet is controlling track-by-track playback instead of BubbleUPnP Server. The advantages of using the server are summarized here (scroll down a bit further on that page). But if you do intend to use an Android device as your only controller, using just the BubbleUPnP app without installing BubbleUPnP Server does work very well.
LUMIN App (iPad)
To control playback from an iPad, install the LUMIN App. Once you have it running, drop down the “gear” icon to access the Setup menu:
Tap on the first entry. Initially this says “Select a LUMIN” but it soon changes to the first renderer that the app finds on your network. After tapping on it, select the OpenHome proxy for your renderer – “volumio-tidal” in my example. (If you select the regular UPnP renderer, you can still use the LUMIN App to control file-based playback but the app will simply not show anything related to TIDAL.)
Then tap on Options and then on TIDAL Settings to log into your TIDAL account:
You should also select MinimServer as the music library. That way, you will be able to control file playback from your library as well as TIDAL streaming.
You can navigate through your file library using the first seven icons in the little toolbar near the top. The eighth (second from last) icon will take you to the TIDAL home screen:
This is the TIDAL home screen:
From there, tap on My Music (lower right) to access your TIDAL Favorites, or use the search function (top right).
A tip: press and hold the album cover to bring up the menu to add an album to the playlist or to your TIDAL favorites:
See the LUMIN App page for more help on the app.
Linn Kazoo (Mac)
To control playback from a Mac, install Linn Kazoo. (You can also install Linn Kazoo on Windows and on iPad/iPhone.) If you have already installed and used BubbleUPnP or the LUMIN App, you will have no trouble figuring this out. This is the home screen (you can always click on the icon at top left to get back there):
Click next to the home icon to select the OpenHome renderer (“volumio-tidal” in this example). Click Settings and select MinimServer as the music library. You can then access your music library from “My Music.”
From the Home screen, click on the Tidal icon and then on “My Tidal” to reach your favorites, and drill down from there. Or, use search. Here is an example screen:
To play an album, click on its artwork and from the popover screen, just click the Play Now button, or use the three dots to bring up more options:
Where to now?
The overall system architecture that I’ve put together through this series of articles so far looks something like this:
It works really well! But there is one drawback: a computer (shown as “Desktop Mac” in the diagram) has to be on every time you need to play music.
Why is that a drawback? Well, some may prefer not to have to turn on (or leave turned on) a computer just to play music. In my case, I do have a computer that’s always on, but I still want to try replacing it for audio playback with… another Raspberry Pi. It seems like a natural way to continue this journey.
Until next time then.
The author gratefully acknowledges the support of the following companies and individuals:
- HifiBerry, for providing the Raspberry Pi add-on board (DIGI+) and case used in this article.
- Patrick Dillon, for reviewing and commenting on the article prior to publication.