Techie understanding help?

I have a number of different streaming devices in different rooms. They each have their own control app, either on apple or android, sometimes both. None of them can connect to or control another manufacturers device. I can however download the independent bubble upnp app to my android phone. This can see all of my streamers, whether they normally use an apple or android control app.
How does Bubble work? Where does it reside to enable that control of all devices? For example I can use Bubble on an Android phone to start playing an internet stream on one device, a stream from a local nas on another device, and a stream from a PC on a third device. I then turn off the phone and all streams continue. No control is being exerted by the phone.
It indicates that there is a Bubble ‘layer’ left behind on the streamer. Is that the case?
If it is what is it doing to the data coming in from the source, be it internet or nas?
Still confused after checking the ‘net for answers.
Anyone care to explain to this streaming simpleton?

You can think of streaming as having 3 “actors”: a client (your various output devices, which “render” an incoming digital stream to audio), a server (running on your NAS, pc, or online account where you can browse, select, and get content), and a controller (your iPhone, android, or other app that you interact with directly to choose where you want to play from (from the list of discovered servers) and where you want to play it (from the list of clients found in your network).

There are standard “discovery” functions to generate the lists of devices available as servers and clients (this is what Bonjour is about, as one example used by Naim) and Bubble knows these commands and gives you the lists.

The first U in UPnP stands for Universal, so you can imagine that there is an extensive common command set available to use for all the inner workings - selecting the service or output device, browsing a list of content, connecting a chosen client device to a chosen content server. Bubble knows these commands too, and presents them to you in the app interface so you can choose.

There are also standard commands to create a “pipe” or connection directly between the client and the server, so they talk to each other without passing data through the controller. Bubble sets up such a pipe, and then, when you press play or pause, tells the server to start sending the content to the client through the pipe.

The client and server each know how to talk to each other directly through this pipe to say hello, I’m ready for data, I have data to send, here’s some data, I got the data, and stuff like that. The music streaming conversation doesn’t require Bubble after it is established and launched. So you can switch off the controller and let the client and server do their thing. Or you can switch the controller back on and issue a new command to pause the song or end the stream and start a new one. Or kill the pipe and start playing from a different server or to a different client.

That’s kinda the conceptual architecture of every client/server/controller program. There’s a lot of steps at each layer, but it’s more or less how it works… and the existence of a third “controller” actor and a universal programming interface allows for anyone, such as Bubble, and not just the server vendor (like Tidal or Synology or Asset) or the renderer vendor (like Naim) to write an application that connects you with your music.

Hope this helps. Flame away…!

1 Like

You connect to the streaming source, say Nas or Qobuz via the app on your phone.

You select an album to stream. The details of the album you want to stream is sent to the streamer, it starts streaming.

The streamer continues to stream that album until you send it an instruction to stop.

If you switch off your phone, it can’t send an instruction to stop.

Thanks both.

So does that mean that the ‘stream’ of data arriving at the renderer is unchanged whichever app I use. ie the data has not been through an additional process?

( I know that some apps particularly ipad based, data has to go through the ipad, but I’m not referring to those at the moment)

You’re right: in general, the controller doesn’t mess with the streamed data.

You touch on iPad (for later), and should then know that AirPlay doesn’t use this model: the data flows from the server (Apple Music for example) to the iPad, then to the renderer (your Naim device, for example). It’s the opposite of, say, Chromecast or Tidal (and Spotify) Connect, which “step back” from the data stream after launching things - even on an iPad.

1 Like

Thanks Alan. I can’t here any difference between using say the Auralic app or Bubble but wondered whether I was using a sub optimal data flow with additional timing elements etc with Bubble. It appears not.

1 Like

Right you are. A controller app can be chosen purely on the basis s of features, functionality, and your personal preference for the user interface / user experience (UI/UX).

Things get more complicated in a hurry when the app you’re using for control has additional features.

This is true for, say, Apple Music on your iPad, which connects to the Apple servers and can play directly on your iPad (to the speakers or out to a connected DAC) or can AirPlay to a capable networked device (including your Naim). That’s where the whole “limited access to CD and HiRes content” debacle comes in… since Apple has decided that the AirPlay quality will be restricted to lower resolution than the source material, and (more strangely) to lower resolution even than the AirPlay protocol can deliver.

It’s also true for Roon, which in addition to having huge music curation capabilities, uses its own streaming protocol (not UPnP) and thus requires specially enabled endpoints / renderers (like gen 2 Naim streamers, and unlike the gen 1 models). Some people can hear differences between these nominally equivalent quality protocols, and thus have a preference for one approach over the other on the basis of sound rather than functionality.

It’s a big world out there. Fortunately there’s lots of music to enjoy while you learn the ins and outs of how it works behind the curtain. Take care. Enjoy your systems and your music.

1 Like

The nice think about having FLAC music on a NAS and running a DLNA server (I use MinimServer) on it is that the files can be accessed on a range of devices like my Naim streamer, my Windows pc, my Android phone. By running a vpn server I can even access them outside of my network.

1 Like