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. You can read the full documentation on the LUMIN website, but here are specifics for our setup. 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:


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.

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.

    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,

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


    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 !

  • Thanks for this informative article. How can we use a DLNA compliant network streamer like Teac NT-503
    as the renderer instead of raspberry Pi

    • Hi Rajiv, just follow the procedure above but select the Teac as the renderer/room.

    I have a Raspberry Pi3 with Volumio. I noticed no problems with running Tidal but my DAC Chord 2qute can’t find better upsampling than 44.1 kHz via USB. When I connect my MacBook same way Chord is changing upsampling to 96 kHz.

    Could you help me with that issue because it makes difference.

    Thanks in advance,

    • Hi Cuba, I’m not sure I understand the issue but if you want Volumio to upsample you will need to change this in its settings. I found the RPI doesn’t really have enough power for it, but you can try it.

    Dear John,
    many thanks for your article. I have a QNAP NAS which I use for backup and also to store my music library. The server comes with a bundle of software for server applications, but I also found on the website of BubbleUPnP the server applications for QNAP, downloaded it and configured it following your instructions. Works like a charm for Tidal with te Lumin app on an iPad.

    Again many thanks

    • Hi Joerg, thanks for posting, great to hear it’s working for you on a NAS system 🙂

    Hello John,
    I have completed the steps as defined above to use with my iMac with Linn app but cannot play a song from Tidal.
    Tidal shows up on the Linn app and I am able to search albums, but every album I pick goes to the playlist and does not play. If I enter the playlist and try to play from there, still nothing. I am able to play my itunes library stored on my NAS.
    Under the media servers only the NAS is visible. Is this correct? Shouldn’t Bubbleserver be here as well?
    Any assistance would be greatly appreciated. I am not very computer savvy.

    • Hi Craig, only the media server (minimserver) should appear in the list of servers, BubbleUPnPServer is “transparent.” I can only guess at what the issue here might be, please double check that you have selected the OpenHome version of the renderer in the Kazoo interface.

    Nice article with lots of useful information!! I jumped into this adventure having:

    a Qnap TS-439ProII+ with my music media on it
    a RPi 2 with Volumia running on it as renderer for my Wadia121 DAC
    an iPhone (i know, should be an Ipad) with lunin software on it as well as the Volumio App.

    I installed the JRE 8 version for Qnap on it, directly followed by the Bubble UPnpserver
    My Volumio works fine, using the Qnap for it’s media files.
    The lumin app shows the Volumia renderer AND the Qnap proxy (nice!! 🙂 )
    Looks like everything should be working well BUT: I Can’t add a Tidal entry anywhere.

    Is it nessessary to have a third PC in order to use Tidal in the way you drawed above or should it be possible to run the bubble app on the Qnap and working with the lumin to control the RPi with volumio on it.

    Maybe I try to change a wheel on a driving car?? I think I am missing something 🙂

    Ana thoughts??

  • To answer my own questions: Time!! After waiting some time the OpenHome settings on my Qnap appeared and after that, everything worked fine! Some Thoughts however:
    What about safety?, until now, I didn’t had to worry about safety leaks on my Qnap but with JRE and an inviting openhome protocol, running on the same NAS as where all my data is stored……….
    For my own music, stored on my NAS, Volumio works like a charm so the only question I am asking myself: is making such changes in my system for using Tidal only, the best deal concerning safety and usability? Without Ipad (just an iPhone), Roon is slightly better for Tidal but when it comes to dragging and dropping new music on my NAS, and finding it, for me Volumio is the only answer!

    • Hi Paul, glad you got it sorted 🙂 You raise a valid point – I always turn off all the Internet access settings in the BubbleUPnPServer interface. I assume this makes things reasonably safe but exactly what other security implications there are, I really don’t know.


    It make no sense to use a computer if Raspberry has substitute it as player. If you want play Tidal, use a simple labtop and forget pi.

    • Hi, you can use another Pi to run the music server instead of a computer if you want to. I have other articles on how to do that, or for my preferred choice these days, an ODroid HC1. Others posting in the comments are using an off-the-shelf NAS.


    There is no option to select the OpenHome renderer in Linn Kazoo app even after following all the steps listed by you. What should I do?

    • Sorry, I don’t know. Did you enable it in BubbleUPnP server?

    Hi, thanks for this guide. I tried it following your instructions – Minimserver and BubbleUPNP running on Synology DS418 NAS, Volumio installed on RPi3 and “enabled” as renderer in BubbleUPNP, using Linn Kazoo (or Lumin) on my iPad.

    It seems everything works fine, I can see and play music files from my NAS and even see TIDAL logo (no account yet, so can’t check if it works).

    One question – in Linn Kazoo I can see 2 Volumios – one is the one created in BubbleUPNP (which I want to see as this one enables the TIDAL). However I can also see the other one (I think it is enabled by Volumio’s internal UPNP?) without TIDAL option. Is there any chance to “disable” the second one? (make it invisible). I tried to disable UPNP in Volumio (there is a switch in the latest release) but when I did it I can’t see it in BubbleUPNP anymore. So now I can see either 2 Volumios in Kazoo or non of them.

    • Hi, thanks for the comment 🙂 I’m not aware of any way to disable the original renderer. That’s why I suggest making the OpenHome one a different name, you can see in the Lumin example there are two with the different names. Hope that helps 🙂

Leave a Comment