Supported sample rate of Chromecast builtin

Hi @support, I have one question for you guys.
How does Roon detect the output capabilities of a connected Chromecast audio endpoint ?

I’ve just purchased a Teufel Connector to replace my Chromecast audio dongle.
While I was able to send high res (96khz/24bit) to the Chromecast audio dongle, the Teufel get’s downsampled to 48khz. Strange because the Teufel is perfectly capable of handling the 96Khz/24 bit stream and that is also confirmed to me by their support department.

I I create a new cast group with the Chromecast audio and the Teufel (and make sure that the Chromecast audio is assigned as group master), Roon will send in the 96Khz signal and the Teufel is also receiving it as my DAC confirms it’s handling a 96khz signal.

My best guess is that Roon listens to some info message from the Cast devices to determine the samplerates it support but that seems flakey. My request would be that there is some advanced setting somewehere in the roon settings to override that manually so I can assign the hi-res signal to a cast device or group myself. Would that be possible ?

BTW: I purchased the Teufel because of the longstanding issue with the Chromecast audio causing stuttering audio since the latest firmware update, there’s a topic of that somewhere too. Instead of waiting for Google to fix it, I decided to go with the Teufel for now.

Hi @Marcel_van_der_Veldt,

The setting you are looking for is here: Settings -> Audio -> Cogwheel icon next to zone -> Device Setup -> Advanced.

You’ll also want to make sure that the maximum sample rate is configured in the same menu:

Thanks,
Noris

Thanks for the quick response @noris but this setting is not there for Chromecast audio devices. In the meanwhile I have also checked with my Harmon Kardon citation speakers which are also high res capable and they also get downsampled to 48khz

@support any update on this ? The only Chromecast device that is recognized as hi-res capable is the Chromecast audio but I have a number of other device that do hi-res through Chromecast built-in and they get limited to 48khz by Roon.

My current workaround is to group the devices with a chromecast audio (not connected to audio equipment) just to bypass Roon downsampling… A bit flaky if you ask me. A simple toggle in the settings for each chromecast device “hi-res capable” would save my day.

Roon only sends >48kHz audio to devices that declare the HI_RES_AUDIO_SUPPORTED flag via the Chromecast SDK. If your device doesn’t report this flag, it’s basically stating that it doesn’t handle anything over 48kHz. If your devices support >48kHz sample rates and don’t report this flag, there is a bug in their implementation of Chromecast.

Well, I already have 4 devices with this issue… Other apps do not seem to suffer from this issue (maybe they bypass checking this flag, I don’t know).

So, my feeling is that however this flag exists, it’s not properly implemented by manufacturers and so it’s not reliable. That’s why I ask for an advanced/hidden toggle to bypass the check.

FYI: I see this issue with devices from Teufel, JBL and Harman Kardon

@support any news about this or some kind of workaround I can use ?
I understand your position that this should be taken care off by the manufacturers theirselves but I have feeling that don’t care much as the popular apps do not have the issue.

Hi @Marcel_van_der_Veldt,

There is no workaround for this issue but I have added your case to be discussed with the team later this week to see what can be done here (if anything). I will be sure to let you know after we discuss.

Thanks,
Noris

1 Like

Hello @Marcel_van_der_Veldt,

I have discussed this issue again with the team and we have a few questions:

  • You mentioned that the content for the Teufel is outputting to 48Khz and that the Harmon Kardon is as well, can you please let us know how you arrived to this conclusion?

  • From what we could gather, these two devices do not have an on-screen display to show the sample rate, does this info show up in an app? Also would be interested for the JBL, what model is it and does it have an OSD to see this info?

  • Can you use other apps to output bit-perfect 24/96 content and if so what apps properly perform this function?

  • Have you contacted Tuefel/JBL/Harmon Kardon regarding this issue yet? It would be good to ask them directly why they are not implementing the high-res flag that is specified in the Chromecast official API.

Please let us know this info when possible.

Thanks,
Noris

@noris thanks for discussing the issue internally!
See below my feedback regarding your questions.

Roon is the limit. If I select one single Chromecast device as output, this is what happens:
Official Chromecast audio --> 96khz/24bit is NOT downsampled by Roon.
Non-Google Chromecast device --> hi-res material is downsampled by Roon

Now comes the fun part. If I create a new group with the Google Chromecast audio in it (connected to ethernet so it will by assigned as master in the group) AND some of the non supported devices, I can actually stream all hi-res material to the Chromecast devices and they do playback hi-res (only checked the Teufel). Even a Google Home Mini which is not hi res capable does playback the same tunes.

The Teufel is connected with toslink to my receiver where I can display the sample rate.
As for the others, no way to check except that the device feature description mentions that it supports hi res.

Yep, been casting from the official Qobuz app to the Teufel in hi-res. No idea what other apps to test.

Tried that but there’s a mismatch in technical knowledge. Those support guys ask me to reset to factory defaults or unplug the wires etc. They have no idea what I mean with “a high-res flag in the api specification” :slight_smile:

In the meanwhile I discovered this: https://rithvikvibhu.github.io/GHLocalApi/#device-info-eureka-info-get

I used this to get the audio specification of all my devices and just as suspected, only the Google Chromecast Audio reports the hi_res_audio_supported flag as true. The other devices report it as false, even they advertise that they support High res audio and I actually tested that they do.

So, my conclusion is still the same, Google has this flag in their specification but it is not used. Roon should not rely on that flag to determine playback capabilities.

In fact, you can just send all material up to 96Khz/24 bit to the Chromecast because even the crappy Google Home/Mini does playback. Yeah it will internally downsample the audio but the sound on those devices is that bad that there is no way to notice that. The better devices with Chromecast builtin actually support hi res material and they will be able to play it.

@support any update ? Do you need more info from me ?

Hi @Marcel_van_der_Veldt,

Thank you for providing that information. I have added your case to be reviewed again by the devs based on the feeback you provided and as soon as they have a chance to review your findings and comment on them I will be sure to let you know.

Thanks,
Noris

1 Like

@noris any news yet ?

Hey @Marcel_van_der_Veldt ,

Sorry for the slow response here. Noris passed this to me last week, and we’ve been discussing how we can improve Roon’s Cast support in these cases.

I can see that your experience with these devices indicates that they’re not implementing the hi-res flag properly, even though they claim to support high resolution playback. And I understand that some other apps may also ignore the flag and simply put their trust in the Cast device they’re streaming to.

Ignoring the flag may seem like an easy fix, but it causes other problems for us. In Roon, we depend on endpoints accurately communicating their capabilities back to Roon, and Roon users trust that we’ll do everything we can to ensure that works properly. We have an obligation to be a bit more conservative, because of these commitments.

If we don’t insist on an accurate understanding of a device’s capabilities, Roon users can’t depend on Signal Path to accurately convey any conversions that are happening, and other functionality in Roon (like any sample rate conversion settings the user has configured in DSP) won’t work properly.

This isn’t to say we don’t think a fix is possible here – just to explain that we can’t simply ignore the flag as others have done. What we are going to do here is test some of the Cast gear we have in house, see if we can verify your observations, and then we can look into implementing device-specific rules to enable products that we know support hi-res to play the streams that they actually support (and nothing more).

I can’t make any promises on timeline here, or on any products we don’t have in-house. For example, I don’t believe we have any Teufel products on hand. In the meantime, I’d encourage you to reach out to these companies as well, to encourage them to properly implement the flag, or to work with us to make sure we have hardware to verify this behavior.

I hope this helps explain what we think is feasible here, and we’ll provide updates as this process develops, as this will take some time. That said, I really appreciate you bringing this to our attention and we look forward to improving our support for these devices in the future.

1 Like

Hi Mike, thanks for your reply.

I must confess that the last couple of days I switched back to using LMS as I got really annoyed by this issue and another issue. For me it would mean a lot if this could be fixed.

Just an observation as how it works in LMS: You must set the max. sample rate for each device yourself. Maybe some advanced setting somewhere hidden to set this on a poer device basis ?

Thanks!

The Naim Atom I have plays back the max rate for ChromeCast so this issue is definitely device specific. I assume Naim are implementing the API correctly and flagging the abilities of the device.

Good to hear some manufacturers are actually following the specs. I have Chromecast devices from Onkyo, Teufel, JBL and Harman Kardon and all are Hi res capable but they don’t set the flag.

My main issue is that the Teufel is connected to my DAC at my main rig (toslink) so that’s why this issue hurts so much.
Temporary switched to LMS the last couple of days and altough it suits my needs technically, I really miss Roons interface :slight_smile:

I have a Chromecast Audio puck I have attached to a system upstairs in my cottage. I can cast 16-44 files fine and they play perfectly. However, if I cast 24-96 the system stutters/buffers. I suspect it’s my wifi but there’s not much I can do about that as it’s an old cottage with 18-inch thick stone walls. I’d like to limit playback on this particular Chromecast to 16-44 but there is no option on the Chromecast device setup within Roon to set that. Is there a way around this?

That’s actually a whole other issue. Did you connect it with toslink perhaps ?
See here: Chromecast Audio dropouts

It’s the main reason why I purchased the Teufel streamer as a drop in replacement for the Chromecast Audio I had there before. But with the Teufel I have the issue as described in this topic.