Casting About With Bluetooth

Tornadoes are killing people in the south, Russia continues to pummel Ukraine, children are being shot to death at school, and I spent the day playing around with home audio stuff.

Breaking News: A former president has been indicted on criminal charges, not yet disclosed.

One of the annoyances with Windows 10 (I don’t know about Windows 11) is there’s no way to know if a Bluetooth protocol other than standard SBC has been negotiated.

https://www.pcmag.com/how-to/what-are-bluetooth-codecs-a-guide-to-everything-from-aac-to-sbc

Android 13 is more informative. My Sony Bluetooth speaker on the porch supports Qualcomm aptX, and the Onkyo receiver downstairs has Apple AAC.

I prefer Chromecast over Bluetooth with the Onkyo. That way the phone doesn’t need to be near the receiver. It’s probably been almost a year since I began experimenting with Chromecast audio on the Onkyo, along with the Chromecast Audio device hooked up to the Harman Kardon receiver upstairs.

When I first connected the Chromecast puck the sound level was low. I knew its Full Dynamic Range setting would increase the output to the line level standard of 2V, but I couldn’t find the setting. The only explanations online were for older versions of Google Home, and the new app was keeping the option hidden.

I gave up looking for an answer and figured out that rooms had to be defined for the house. After I assigned each Chromecast device to its own room, the Full Dynamic Range setting appeared for Chromecast Audio. Enabling it kicked the volume up to CD level.

Recast

Here is yet another post about Google Chromecast for audio. The eBay seller who sold me a new Chromecast Audio player for $50 started charging $75 for them, and now they’re sold out. So I was lucky to get one when I did, at the price I did.

Considering the utility and quality of this inexpensive product, it’s a shame it was discontinued by Google. Amir at Audio Science Review had high praise for the technical quality of Chromecast Audio, especially when used with a Toslink cable connecting to an external DAC. And he had no complaints about its internal DAC, which is how I use the player.

https://www.audiosciencereview.com/forum/index.php?threads/review-and-measurements-of-chromecast-audio-analog-performance.4562/

When I started testing my Onkyo receiver’s Chromecast Built-in feature, I noted the difference between the behavior of the SiriusXM app on my phone and the TuneIn app.

Cast Away

The tech site reviews I’d read agreed on one point about Chromecast Audio. That it establishes a direct Internet connection between the audio renderer and streaming services. The app doing the controlling is just that, a remote control. The reviewers should have done some deeper digging.

It was very curious to me that TuneIn had some success with the Onkyo, but the SiriusXM app didn’t, requiring the workaround of using the Google Home app. I wanted to know exactly what was going on. To my satisfaction, the excellent HiFi Cast app not only revealed why SiriusXM failed — which turned out to be the Onkyo’s broken Eventing Mode — but also why TuneIn had some success. The answer is in this screenshot.

Casting has an option the reviewers missed — that it can play through an app. The stream comes to the phone and is then redirected to the audio renderer in the player. Switching to “Via Hi-Fi Cast” causes the same sputtering effect I hear when casting with the TuneIn app. The sputtering disappears when I use the Google Home app to do the casting. The implication is the TuneIn app is redirecting by default. That’s why it was somewhat successful with the Onkyo, whereas the SiriusXM app apparently runs in direct mode.

That’s enough for now. To the exasperation of at least one of you, there is even more about Chromecast Audio that I will explain later.

First World Futzing

Putin continues his mad destruction of Ukraine, and I can only hope that Trump is collateral damage. Having reaffirmed that he is still Putin’s boy, I don’t know how any American can favor Trump’s return to elected office. But of course many do.

Meanwhile, extreme weather rages a path of destruction across Tornado Alley, and well beyond. People are being killed and, in an instant, families are losing every physical possession. With all of that going on, my trivial concern was… can a piece of home audio equipment be jealous?

The A/V receiver’s Music Server application for UPnP/DLNA is barely acceptable. I needed something better, and I found it with an Android application called Hi-Fi Cast. I think my purchase set a new personal record for the shortest time between trying and buying. The fact it’s only $9 helped.

Thanks to Hi-Fi Cast, I now understand why casting SiriusXM from the phone wasn’t working with the receiver. A feature called Eventing Mode, “for efficient monitoring of the renderer status,” needs to be disabled. None of other casting-capable apps on the phone offer control over Eventing Mode. Once it’s disabled in Hi-Fi Cast, it works with the receiver, without relying upon the Google Home app.

phone screenshot
Hi-Fi Cast screenshot

Hi-Fi Cast takes control of the Music Server renderer in the receiver, as dutifully reflected in Onkyo’s own controller app. Very nice.

screenshot
Onkyo Controller screenshot

Giddy with success, I went upstairs to try Hi-Fi Cast with Chromecast Audio and, uh oh, the screen on the Logitech Squeezebox Touch for LMS (rather than DLNA) looked very wrong. A quick check revealed that not only was it off the network, it thought it didn’t have a network interface. WiFi was completely dead, and cycling power didn’t bring it back. From happiness downstairs, to despair upstairs!

My immediate suspicion was the Touch was mad at me for adding Chromecast Audio to the stereo receiver. The timing was too coincidental. After ten years of loyal service, it was like a child being jealous of a new baby in the house. I sternly informed the Touch that if it didn’t start working again, then Chromecast Audio wouldn’t be supplementing it, but replacing, and the loss of gapless playback wouldn’t stop me!

I took the Touch downstairs, where I could put it on Ethernet. Before doing that I started it up again and confirmed it was still helpless. I warned the Touch it had better behave, or it would find itself back in its original packaging. I plugged in the Ethernet cable and WiFi came on! Everything was working! Ethernet hadn’t even been selected as the network interface, but it too worked when tested. Good boy!

Back it went upstairs. Properly chastened, the Touch further redeemed itself by continuing to work.

Logitech Touch
Logitech Squeezebox Touch and Chromecast Audio

Perhaps the Touch is just trying to tell me it’s sincerely feeling its age, and needs help rather than discipline. With that possibility in mind, I have ordered a WiFi-to-Ethernet adapter.

https://www.amazon.com/dp/B018YPWORE

IT for IoT

IoT. Internet of Things. Not something that holds a lot of interest for me. If package thieves were a concern, then I could see getting a webcam for the front porch. But as I recently learned, Google has rolled streaming media into its Home concept.

This is the Cast tab in the Google Chrome browser on my desktop PC when I am not using Chromecast.

This is the Cast tab when I am casting. Not from the PC, but from my Pixel 4a phone, going to Chromecast Audio on the upstairs stereo.

So of course this is how it looks when casting from the phone to the Onkyo A/V receiver downstairs.

When Google Chrome is running it finds compatible devices on the local network and maintains connections to poll for changes.

TCP 192.168.1.179:63387 Chromecast:8008 ESTABLISHED
TCP 192.168.1.179:63388 StreamingStick4K:8060 CLOSE_WAIT
TCP 192.168.1.179:63390 RokuStreamingStick:8060 CLOSE_WAIT

It makes sense to check casting devices, but it raises thorny questions. What else might Google be monitoring, now that it considers everything to be part of an IoT Home, and are there vulnerabilities in the casting protocol that hackers could exploit?

Better Than Bluetooth

Having found a workaround to make audio casting work between my Android phone and A/V receiver, I kept thinking about where it worked as it should — connecting to the Chromecast video adapter on the porch TV.

What about Google’s Chromecast Audio device? It was discontinued three years ago, but an outfit has some from Japan available on eBay for $50, including shipping. A reasonable price over the original $35. They’re supposed to be new in original boxes, so I ordered one.

Yep, new and sealed in its original Japanese language box. Chromecast Audio is now playing on the living room stereo, replacing a 6-year-old Bluetooth dongle, and working directly within the SiriusXM app, as it should.

Will Drew Carey have to take a break from his Friday Night Freak-Out on SiriusXM to go on the coast-to-coast tour for his day job?

Cast Away

Audio electronics manufacturer Onkyo/Pioneer disappeared for a while, and after a period of uncertainty about its survival the company returned. I first realized they hadn’t gone out of business when my Onkyo — or, as some say, Oinkyo — receiver announced it had a firmware update to install.

The receiver has all of the apps I want, except for SiriusXM. I could use Bluetooth from my Google Pixel 4a phone, but it would have to be kept in proximity with the receiver. Chromecast was the way to go, except it wasn’t working through the SiriusXM app. It would attempt to connect, then give up. The cast icon in TuneIn had only slight success, sputtering badly with a buffering indicator.

The phone was showing only the Onkyo and the Google Chromecast “puck” on the porch TV as available devices. I had no trouble connecting and disconnecting the phone with the Chromecast puck. Which made sense, as both gadgets were made by Google. I opened Google Chrome on a PC and clicked the casting icon on a YouTube video. The browser had a different “cast list” that curiously didn’t include the Onkyo.

So there was some inconsistency to be found in Google’s various software implementations. With that in mind, I decided the thing to do was forget about trying to invoke Chromecast from within the apps. I went to the Google Home settings on the phone. As before, it showed only the two devices. Would a casting connection work, by making the phone send all audio to the receiver?

BOOM! YES! It came up and played instantly with no sputtering. It even directly adjusts the receiver’s volume control. How I love workarounds.