Jump to content
Computer Audiophile
HedleyLamarr

Need help with Chromecast Audio gapless playback, if possible

Rate this topic

Recommended Posts

I have the following stuff currently:

Chromecast Audio (CA)

Synology NAS 1515+

Macs

Various iOS devices

Android tablet

 

For the most part I'm very impressed by the CA device. As far as I can tell when casting if using the optical connection on the CA the stream is sent from source to endpoint untouched. This is a good thing. (as a side note I know that I can't really hear the difference between 320kbps AAC and 24/96 FLAC, and I can't hear anything over 14kHz)

 

There are a couple of issues with it that I have discovered, the first being that there isn't a native OS X or Windows SDK. I'm not a fan of browser based apps (primarily becasue I'm a web application developer and I'm always crashing my browser) I could live with that one becasue I have a bunch of iOS devices, and I can get Android tables if needed, but the one that is a complete deal breaker is that when streaming ANY files from my NAS there is no gapless support. Imagine listening to "Dark Side Of The Moon" with a 3 second (or longer) gap between "On The Run" and "Time". Ugh. Might as well not bother.

 

I have tried a number of servers and apps to no avail.

 

I have tried Plex, with web, iOS and Android clients. Gaps.

I've tried adding BubbleUPnP Server. No help.

I've tried DS Audio. Same.

I've tried MinimServer with and without BubbleUPnP Server. Same.

 

If I use BubbleUPnP on my Android device with a local renderer, as in not casting, the playback is gapless. So I know the client software is capable of gapless playback.

 

If I cast Spotify from iOS or Android, that is also gapless, so I know that the CA device should handle it.

 

I feel like I'm tantalizingly close here, and that I'm just being stupid and missing something obvious. I'm perfectly willing to buy software if needed, set up a linux or windows box, etc.

 

My fallback position, and one that I really would rather avoid, is Sonos. Sonos is hugely expensive for what you get, and a friend of mine has them all over his house, and frankly not impressed with the sound. The Sonos Connect does basically the exact same thing as the CA for 10 times the price. My thinking here is that if CA will pass through the digital data from the source that I would spend my money on decent amps and speakers instead of proprietary Sonos stuff.

 

Anyway, hopefully someone here has figured this out and is willing to share.

Share this post


Link to post
Share on other sites
Cebolla   

It's a common misconception that gapless playback when UPnP network file streaming requires the UPnP/DLNA media server to support it. Under standard UPnP, both (and only) the renderer and the controller app need to support gapless (specifically the SetNextAVTransportURI action, as specified by UPnP). So it's irrelevant what UPnP media server is being used for gapless support and swapping between MinimServer, Plex, etc, will therefore not help.

 

BubbleSoft's BubbleUPnP Server application (not to be confused with their similarly named Android controller apps) provides a useful set of UPnP support & remedial functions. Unfortunately, correcting the lack of use of the SetNextAVITransportURI action between standard the UPnP controller and renderer isn't one of them, so also won't help.

 

As you've established, the BubbleUPnP Android app certainly does support gaplesss, since it supports UPnP SetNextAVTransportURI action when used to control UPnP streamers that also support gapless.

 

The Chromecast Audio device is not a UPnP/DLNA streamer and thus the BubbleUPnP app is actually providing a bridge between the UPnP & Chromecast technologies. In other words, for gapless to work the Chromecast Audio device will need to support gapless and the BubbleUPnP app will need to 'translate' UPnP gapless (ie, the SetNextAVTransportURI action) into Chromecast gapless (whatever that may be, assuming that it even exists). Last I heard the BubbleUPnP app was not able to do this.

 

The issue may be that Chromecast Audio doesn't actually support gapless at all and it only seems to support gapless from the likes of Spotify, Google Play Music, etc. It could well be that any gaps between the tracks may be too short to be detected, given that they are all smaller lossy files and relatively quick to load and play compared to larger lossless FLAC, say. See this post on the Hydrogenaudio forum, by Bubbleguuum, developer of BubbleSoft's BubbleUPnP:

https://argonaural.io/index.php?PHPSESSID=jrummpfhuqs34587lhjenkqat4&topic=110158.msg908991#msg908991

Share this post


Link to post
Share on other sites

Thanks for the detailed reply. I suspect that a $35 endpoint is too good to be true, which is really a shame, because with BubbleUPnP server transcoding, the ability to stream 24/96 is basically all I need. The only thing keeping me from Chromecast is the lack of gapless. I don't know how Spotify may be different from Google Music, but Google Music has small gaps as well. I've been listening to Spotify 320kbps files for the last couple of days and to my (admittedly poor) ear, the gaps, if there, are inaudible.

Share this post


Link to post
Share on other sites

No, I really don't like their stuff from what I've heard. I do like their app, which seems to be the best that I've seen. The Spotify app is actually pretty good as well, but no local files from a NAS.

 

I was doing iTunes with Airport Express, but that isn't a good solution for multi-room unless you have ethernet, and they have timing issues if you have multiple Airport Expresses.

 

I've been looking at the Denon stuff - their HEOS Link looks way better than the Sonos Connect, but the Heos App isn't great. BlueSiubnd endpoints can be had for $350 periodically from Crutchfield, but I've not heard good things about their app.

 

I get the impression that Google is only really interested in web based services, and they want to sell Google Music. Adding features to GCA that lets it be used as an endpoint for non-web services doesn't help them sell their services. This also helps explain why there is no desktop (Windows, OS X) SDK for Chromecast, and why Google doesn't seem to respond to inquiries about that.

 

All I really want is multi-room audio with my own speakers and amps, with my NAS and Spotify as the source.

 

It has to be wireless for the most part - wiring my house for audio, I might as well rip all the drywall down - no attic.

 

Edited to add that if Google could make Google Music gapless like Spotify, I would be OK uploading the music that they don't have to my locker. I can always hit my NAS directly from my main receiver if I want to do some serious listening.

Share this post


Link to post
Share on other sites
Cebolla   
The only thing keeping me from Chromecast is the lack of gapless. I don't know how Spotify may be different from Google Music, but Google Music has small gaps as well. I've been listening to Spotify 320kbps files for the last couple of days and to my (admittedly poor) ear, the gaps, if there, are inaudible.
I'm guessing here of course, but the difference could be that with Spotify the individual music file streams aren't actually being cast by the CCA. It could well be that the Spotify app itself is playing back the files and therefore also handling gapless between the tracks in the playlist and what is being actually being cast by the CCA is the Spotify app's own playback output that would normally be heard on the Android device itself (as opposed to the Spotify app controlling the CCA by instructing it to playback music file URLs directly from the Spotify internet server).

 

May be that's the answer for apps like BubbleUPnP. Actually play the files in the playlist and get the CCA to cast the resulting output, rather than merely supply the CCA with music file links.

Share this post


Link to post
Share on other sites

Spotify is actually casting. I tested that by starting a cast and shutting the tablet off. I started DSoTM 2011 edition (Has the live version as well as the studio version) - I started it and then shut off my Nexus and listened to the entire thing - no audible gaps.

 

Doing the same test with Bubble, it finishes playing the current song and stops.

 

Which actually makes it all the more frustrating, becasue the GCA is a very impressive piece of technology for $35, especially with the 24/96 and the multi-room capabilities (it even supports delay). If it could do gapless it would do everything the Sonos Connect does for 1/10th the price (except the low end DAC part maybe, which I don't care about).

 

I could live with needing the device remaining active to stream local files, in fact part of my plan for Chromecasts was to get some Lenovo 8" Yoga tablets to control media selection and playback, as well as home automation stuff.

 

Other solutions I could live with:

 

Spotify having a locker ability like Google Music. Preferably without down sampling, but for this use case I can live with 320kbps.

Google Music fixing their gapless playback. Ditto the above re: down sampling.

Tidal introducing an upload ability like Google. I haven't tried Tidal, not sure if it's gapless. $20/month is pretty steep, but I could live with it if I could upload my own files, it's lossless and gapless.

 

If Google would release Windows and OSX SDKs then local applications like Doubletwist could also be made to work.

 

I'm hopeful but not optimistic that Google will add UPnP/DLNA capabilities to the thing.

Share this post


Link to post
Share on other sites

That's unfortunate.

 

Interestingly I just discovered that Synology's DS Audio in the browser does play back gapless (or so it sounds to me) I've been testing with some Pink Floyd. What's puzzling is that casting from the browser is gapless, but from the DS Audio iOS apps is not. I can't see what's actually being sent to the CA so I don't know if it's down sampling or doing something else. If I close the browser tab it stops, so not sure it's even a proper cast - when I close Google Music or Spotify it keeps playing. Honestly if Google Music could make the stream gapless I'd probably be fine with that given their locker capabilities. In all my testing Google Music isn't gapless on the web or any device.

Share this post


Link to post
Share on other sites
Cebolla   
Spotify is actually casting. I tested that by starting a cast and shutting the tablet off. I started DSoTM 2011 edition (Has the live version as well as the studio version) - I started it and then shut off my Nexus and listened to the entire thing - no audible gaps.

 

Doing the same test with Bubble, it finishes playing the current song and stops.

The Spotify playlist continuing to be played to its end on the CCA when the Spotify app has shutdown, even with the Android device that was running the app being switched off, doesn't actually prove that the CCA supports gapless. Specifically, it does not show that the CCA is streaming individual discrete music file track streams from Spotify (so needing to do gapless itself), as opposed to streaming one long continuous stream of those file tracks built & provided by Spotify (so having gapless already done for it by an 'intelligent' Spotify internet server).

 

All that your observation implies is that 'something' is keeping a copy of the Spotify playlist and that the CCA is being cast directly from the Spotify internet server (and not cast from the Spotify app running on the Android device).

 

Incidentally, what's your understanding of 'casting'/'cast', as in when you say, "Spotify is actually casting" or "not sure it's even a proper cast". My understanding is that you can only cast to the CCA, ie get it to stream, using the Chromecast proprietary streaming mechanism via the Google Cast SDK or not get the CCA to stream at all, so no in-betweens.

Edited by Cebolla

Share this post


Link to post
Share on other sites
The Spotify playlist continuing to be played to its end on the CCA when the Spotify app has shutdown, even with the Android device that was running the app being switched off, doesn't actually prove that the CCA supports gapless. Specifically, it does not show that the CCA is streaming individual discrete music file track streams from Spotify (so needing to do gapless itself), as opposed to streaming one long continuous stream of those file tracks built & provided by Spotify (so having gapless already done for it by an 'intelligent' Spotify internet server).

 

All that your observation implies is that 'something' is keeping a copy of the Spotify playlist and that the CCA is being cast directly from the Spotify internet server (and not cast from the Spotify app running on the Android device).

 

I'm not sure what Spotify is doing from a technical perspective. All I know is that on whatever device I play Spotify on, CA, Mac, Phone, Tablet, that is is gapless. I found this: https://news.spotify.com/us/2012/02/23/spotify-now-with-gapless-playback-crossfade/

 

My test was to put two long live albums and two Pink Floyd albums (Rush R40, Exit... Stage Left, Pink Floyd DSoTM (2011 with live) and Wish You Were Here) into a playlist, start casting that from my iPad and then immediately kill the app. It played through perfectly, not a single gap. Unfortunately even though there are numerous articles on the Web suggesting that Google Music is "now gapless!" It has gaps on every device I've tried it on, even music I'm uploaded to my locker that I know is gapless. If Google Music would go gapless I would use that instead of Spotify and upload all my rare stuff to my locker.

 

Incidentally, what's your understanding of 'casting'/'cast', as in when you say, "Spotify is actually casting" or "not sure it's even a proper cast". My understanding is that you can only cast to the CCA, ie get it to stream, using the Chromecast proprietary streaming mechanism via the Google Cast SDK or not get the CCA to stream at all, so no in-betweens.

 

What I mean specifically is that you can start a cast on a device or web, kill the app or browser, and it continues to play, and that you can "reconnect" with a device and see what's currently playing and modify it if you want. Google Music and Spotify do this. Bubble UPnP does not (at least in my testing - I could be doing it wrong). Plex keeps casting after killing the app. Actually as a side note I really like Plex's UI, both their tablet apps and web based. If they could play gapless to GCA it would be the perfect solution with BubbleUPnP Server to transcode additional formats. Plex can act as a DLNA/UPnP server, but I'm not sure that when using the Plex app that it's using standard UPnP protocols.

 

This is all frustrating to me. It really seems like gapless playback should be a basic requirement of any music playback system. iTunes has been doing it for 20 years. I'm not seeing what the technical challenge is other than the people that originally wrote these protocols are ignorant of how various types of music are consumed.

Share this post


Link to post
Share on other sites
nizz   

slight necrcobump to this thread.

 

I have been a bubble user for a very long time running bub server on a homebrew xpenology nas with minim running on same and using droids to control. could not be happier, greatest setup i have ever had.

 

my primary avr for ht and severe blasting of metal music is Denon X4100W which SUPPORTS GAPLESS playback perfectly using bubble. when looking at that device on bubserver render tab there is a CHECKBOX for gapless. SOME support this, some do NOT, i can tell u for fact X4100W is gapless.

 

I just bought a google chromecast audio to use on my patio receiver which is a trusty and ancient Denon AVR-3805 and for what i was seeking it does the job but it does not *yet* support gapless playback.

 

sooo.. any attempts to make it gapless are not going to work until the device officially supports it.

 

as for getting a playlist going and then shutting down the app, this will work when u create an OPENHOME renderer... I have a dedicated tablet in garage that is hooked to a big monitor via mini hdmi to VGA which displays all info. i leave that thing running but at any time i can grab my HTC phone or any other tablet and choose the google cca as device and it will instantly sync playlist and i can control.

 

anyways, just wanted to add this about google crhomecast audio and the gapless. for $35 bucks it is a no brainer to take ANY non wifi device and put it on ur network.. im using mini toslink to toslink with mine and getting full DIGI PCM to my Denon.

 

p[ardon all typos

Share this post


Link to post
Share on other sites
hopkins   

In Foobar, with the foo_upnp_out extension, playing to the chromecast is gapless.

Google Play Music also plays to the chromecast gapless (there is actually a tiny gap between tracks, but it is hardly noticeable).

Share this post


Link to post
Share on other sites
Cebolla   
In Foobar, with the foo_upnp_out extension, playing to the chromecast is gapless.
Good call, thanks to the recent fixes in the last couple of weeks to the foo_upnp_out plugin by its developer, after a long hiatus. Before then, the foo_upnp-out was quite buggy & only worked with certain UPnP/DLNA renderers.

 

However, you forgot to mention that you also need to install the BubbleUPnP Server helper application to create a standard UPnP/DLNA renderer for the Chromecast Audio device, so that it can be used by by the foo_upnp_out Foobar2000 plugin in the first place:

BubbleUPnP Server

 

The foo_upnp_out plugin diverts the Foobar2000 player's output so that it can be streamed by the nominated UPnP/DLNA renderer. So it's the Foobar2000 player that's handling gapless playback support, not the Chromcast Audio device being used as a UPnP/DLNA renderer. The Chromcast Audio will be streaming the continuous output being produced by Fb2k playback of its current playlist (the Chromecast Audio is not actually streaming the individual file tracks contained in that playlist).

 

I believe this is a similar mechanism that Spotify server uses when casting to the Chromecast Audio, as mentioned in one of my earlier posts. Hence Chromecast Audio 'supporting' gapless when streaming from Spotify, where as in reality the gapless playback support is being handled internally by Spotify.

 

Chromecast Audio still doesn't support gapless when streaming individual file tracks, has been reported as an issue on the Google Chromecast tracker site by BubbleUPnP's developer and has been acknowledged by the Google Project as Type-Defect Type-Enhancement:

https://code.google.com/p/google-cast-sdk/issues/detail?id=745

Share this post


Link to post
Share on other sites
Bad news, looks like Chromecast Audio isn't going to natively support gapless playback:

https://code.google.com/p/google-cast-sdk/issues/detail?id=745#c21

 

I tried to make it work every which way I could, but I just couldn't get it to work properly. I bought an Airport Express and hooked it up via Ethernet to my network, and as much as I don't like iTunes, the fact is that it works. It maxes out at 44.1, but I can't hear the difference between 44.1 and 96 - I never have been. What I can hear is a difference between ethernet -> Airport Express -> Vanatoos and Wi-Fi -> Chromecast -> Vanatoos. The Airport Express soultion sounds less compressed to my ear. I definitely noticed a difference between the AE hooked up via WiFi and ethernet too. I think it's a bandwidth issue.

 

Anyway, I will put the Chromecasts elsewhere for casual listening. Apparently the guys at Rogue Amoeba are adding chromecast support to Airfoil (no idea how since there isn't a Windows or Mac SDK, but they say they are doing it) and the way Airfoil works I'm optimistic that using Airfoil will handle the gapless part, as in iTunes will handle the gapless before Airfoil casts it to the CA. We'll see.

 

Bottom line is that the CA was a good experiment, but for now the Apple soultion is way better from a fidelity and gapless perspective. The downside is that I will probably need to buy an iPhone instead of a Nexus to have my tunes in the car.

Share this post


Link to post
Share on other sites
Cebolla   
the way Airfoil works I'm optimistic that using Airfoil will handle the gapless part, as in iTunes will handle the gapless before Airfoil casts it to the CA. We'll see.
Indeed, Airfoil is after all 'only' network streaming an audio capture, so gapless support isn't relevant and the user is entirely dependant on how the music file playing software itself handles gapless during playback. This is just an extension of Google not wanting the Chromecast devices to take the responsibilty of handling gapless playback when casting individual music file tracks one after the other, ie, they require gapless to be handled externally (by iTunes and similar music file playing software) with the Chromecast devices effectively receiving one long merged (gapless already handled) music 'file' as opposed to individual music file tracks (gapless unhandled). Edited by Cebolla

Share this post


Link to post
Share on other sites

 

All I really want is multi-room audio with my own speakers and amps, with my NAS and Spotify as the source.

 

It has to be wireless for the most part - wiring my house for audio, I might as well rip all the drywall down - no attic.

 

 

Hi Hedley, why not look into LogitechMediaServer.

 

The new Raspberry pi3 does wireless pretty well now and Spotify runs fine too.

 

Cheap as chips (fries to you, lol) and you can populate each room as you like (either hat-dac or spdif into dac).

 

 

enjoy

 

Ronnie (like a stuck record sometimes)

Share this post


Link to post
Share on other sites

Interesting discussion. I have minimal contributions but I would like to add the following:

 

Google Play Music: Can only cast music that are uploaded to the Google account and cannot cast local files. Files that are uploaded to the Google account and are set to download for offline use can be cast. These offline files can only be played using the Google Play Music app. All use of Chromecast Audio with Google Play Music require an internet connection, and offline storage is bypassed. i.e. the CA hooks the steam from the Google internet based server and not the local offline file. It's just like Pandora so to say. This explains why local files cannot be cast. The only method that will force CA to use the local file is too fire up the Chromecast app (now rebranded as Home) and cast from there. i.e. forces the device to render the media locally, which implies transcoding, and stream using unknown encoding and unknown bitrate. Using this method will allow any local file to be cast and does not require an internet connection.

 

 

BubbleUPnP: Local files can be cast. Internet connection is not required. The file is transmitted to the CA, in that you can disconnect the CA from the wireless network and it will continue to play. This explains why seek works so well. Therefore the CA must employ a small amount of storage. The file gets transferred to the CA. I would suggest there is 128MB storage or more as I have audio podcast files that are 68MB. Using playlists, I believe that when one track finishes, the next track is transmitted to the CA and stored locally. The ability to have gapless playback would require that two tracks be transmitted and then the CA would be able to playback gapless. So it would always need the current track and next track on this local temporary storage that I am speculating about. Of course, if you use the Chromecast (Home) app to cast, instead of the cast feature of Bubble, which as mentioned has to employ transcoding, then gapless is achieved. In this scenario, I highly doubt local storage is used, nor buffering and it's probably UDP if I was to take a guess.

 

All of the above statements are based on testing using CA connected to an Android phone with hotspot enabled, where the same Android phone was controlling the CA.

 

I have not performed a packet capture to observe these behaviors at the packet level, but I have tested and measured data usage extensively in order to formulate these conclusions.

Share this post


Link to post
Share on other sites
JJWat would you be more specific as to how to upload local files to Google for playing with CCA via Google Play? Appreciate your help.

 

No problem. You simply install the Windows app which is designed to upload your files and hey presto, they will then be in the cloud. It's actually a nice tool as provides you with unlimited music file backup to the cloud. I uploaded about 100GB of music using Google's tool.

Share this post


Link to post
Share on other sites
Unfortunately, all files uploaded to Google Play are converted to 320Kbs MP3. You may want to compare with lossless playback and see for yourself whether that is acceptable.

 

Understood, but it doesn't change the fact that this is the method required in order to use Google Play Music with CCA.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×