HifiZine
The enthusiast's audio webzine

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.

BubbleUPnP Server

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/.)

BubbleUPnP status

On the Network&Security tab, I turn all of the options shown below off:

BubbleUPnP Server Network and Security

On the Media Servers tab, I select each server in turn and turn off “Make this Media Server available … for Internet access”:

BubbleUPnP Server Media Servers

 

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.)

BubbleUPnP Server Media Renderers

 

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.

BubbleUPnP (Android)

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.

Bubble Tidal renderer

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.

Bubble Tidal settings annotated

Back on the main screen, go to the Library view, scroll down and tap on TIDAL. You will get the TIDAL main menu:

Bubble tidal home

From there, you can access your TIDAL favorites (albums, playlists, artists), browse by genre, or use search:

Bubble Tidal annotated

 

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:

Lumin Settings

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.)

Lumin settings volumio

Then tap on Options and then on TIDAL Settings to log into your TIDAL account:

Lumin Tidal login

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:

Lumin toolbar annotated

This is the TIDAL home screen:

Lumin Tidal home

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:

Lumin Tidal menu

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):

Linn Kazoo home

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:

Linn Kazoo search

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:

Kazoo play album

Where to now?

The overall system architecture that I’ve put together through this series of articles so far looks something like this:

architecture

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.

Acknowledgments

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.


Readers' comments

    Dear John,

    maybe you can help me out. Everything works fine when disabling firewall on my CentOS 7 Server where BubbleUPnP Server is running on. Port 58050 is configured to be open when firewall is running, webserver access works fine. The problem is that clients like bubbleupnp or lumin only see the OpenHome renderer when turning firewall completely off, so there must be another port beside 58050 that has to be open.

    Kind regards
    Andre Dibowsky

    • Hi Andre, I can’t be sure but it looks as though BubbleUPnP server is also listening on TCP ports 58051 and 38251. The bubble web page also says “make sure that a firewall running on the machine on which BubbleUPnP Server runs is not blocking UDP port 1900”. You could try enabling those? Otherwise, might be best to try to get in touch with the BubbleUPnP developer.

    Awesome!
    Thank you very very much!!

  • Dear John,
    Are you streaming Tidal from the Tidal browser this way?
    Is it also possible to stream from the Tidal Windows App where the Tidal Masters MQA are enabled?
    Is it possible to stream Tidal in MQA quality this way?
    That would be nice using a Meridian Explorer 2 or Audioquest Dragonfly Red on the RPi.
    Kind regards,
    Wim

    • Hi Wim, no you can’t do this with the Tidal browser, you need to use the software as described above in the article. As far as MQA goes, I doubt it, the only way the configuration described in this article would work is if you have an MQA-enabled DAC… even then I’m not sure.

      Technology marches on, I don’t think it will be long before native 96k streaming is easily possible (without special proprietary encode/decode).

    Hello,

    I have a Raspberry pi 3 with Volumio,
    And I just intall minimserver, BubbleUPnP, Kinsky and Kazoo.

    I can stream files (evan hi-res) from my iTunes library and stream music from Qobuz : nice !

    But, I can’t stream iTunes files with Kazoo, I have to use Kinsky to to that, I find that strange.

    And I don’t see any way to simply find to see any hi-res files on Qobuz, ie I’m not sure that it is possible to stream hi-res from Qobuz

  • Hello,

    I have a Raspberry pi 3 with Volumio,
    And I just intall minimserver, BubbleUPnP, Kinsky and Kazoo.

    I can stream files (evan hi-res) from my iTunes library and stream music from Qobuz : nice !

    But, I can’t stream iTunes files with Kazoo, I have to use Kinsky to to that, I find that strange.

    And I don’t see any way to simply find to see any hi-res files on Qobuz, ie I’m not sure that it is possible to stream hi-res from Qobuz with Kazoo.
    In fact, I do not like Kazoo and Kinsky navigation.

    But at last, I can listen to music : thank to you !

Leave a Comment