I bought a Google Chromecast Audio for my budget audiophile system, due to problems with Apple’s AirPlay. I like the Chromecast, but as I listened to my favorite music on Spotify Premium, I was disappointed. The audio quality was noticeably worse than casting Spotify to AirPlay. I decided to figure out what was going on and see if I could fix the audio quality issues. I think I’ve learned what’s wrong, and unfortunately I don’t think it’s fixable. Read on to learn more.
A while ago I did an experiment to determine the all-around best lossy music compression format. There’s a lot of “it depends,” but my takeaways were:
At that time I was actively using both Apple Music and Spotify. Ultimately, I stopped using Apple Music because I didn’t need two services, and I like Spotify’s UI and recommendations better. I stopped my trial of Google Play Music and haven’t thought about it since then, because of the terrible sound it produces by transcoding everything to MP3 files.
Since then, I’ve been listening to a lot of music by playing it on Spotify Premium and using AirPlay to cast it to an Apple Airport Express hooked up to my stereo system. I have generally been very happy with the audio quality. Despite what many people claim, even though I’m growing older and I’ve suffered some hearing damage, audio compression artifacts are very obvious when listening on a decent system. But Apple Music and Spotify both use high-enough-quality compression that it’s still pleasant.
AirPlay became frustrating, though. There were so many reliability issues with it! I needed to reboot the Airport Express on a pretty regular basis to get audio to stream to it. It was so annoying that I eventually gave up and bought a Sonos in the kitchen. This has been much more enjoyable than trying to stream to the boombox I had previously. In my listening room, though, I still used AirPlay.
After a while I decided to try a Chromecast Audio. If you haven’t heard about these, they’re a super small, convenient little puck that plugs into power, connects to WiFi, and streams music. It’s brilliant, much better designed than AirPlay or similar.
But the sound quality was immediately disappointing! One example is the triangles in the chorus to Jann Arden’s Sleepless. They don’t even sound like triangles; they sound like someone spitting while whistling. It’s not subtle: it’s horrible.
So I decided to repeat my experiment to evaluate audio quality in Audacity, and see what’s going on with Spotify. Did I just not notice this before when I was using AirPlay? Or is something wrong with the Chromecast? I decided to compare Spotify’s audio quality to iTunes’s AAC and to the original music.
You may know that Spotify uses Ogg Vorbis. According to the documentation,
The desktop app’s standard quality is Ogg Vorbis 160kbit/s. Premium subscribers can choose to switch on High quality streaming, which uses 320kbit/s
I own the Blood Red Cherry CD that has that song, so I ripped it to WAV and used iTunes to encode it to AAC. Then I used Soundflower to record Spotify, set to high-quality 320kbps audio. I tried to see if I could hook the Chromecast up to my computer and record the audio from its output, but I wasn’t successful with that.
I compared these recordings against each other. What I found reassured me: Spotify’s audio quality is not terrible. If you have Spotify Premium, you should be getting very good quality audio, even though it’s not perfect.
For those who are curious, it’s not as good as Apple Music’s, though. Apple Music encodes everything in 256kbps AAC files, which are nearly transparent to most listeners even on audiophile systems. For the records, here’s an excerpt of the chorus to Sleepless in several formats. Notice the triangles, mostly lost in the dense layers of instruments and vocals:
The triangles in this chorus make a good test case because of the complexity of the music and clarity of the triangles; if they’re badly compressed, it’s easily audible.
To put Spotify’s audio quality into a different perspective and compare versus AAC, here’s the residual/noise after subtracting the encoded versions from the original bit-for-bit copy ripped from the CD.
Less noise is “better,” from a purist’s point of view, because it means less musical information was discarded while encoding. But remember the point of lossy encoding is to throw away as much signal as possible, inaudibly. So this is not necessarily a good measure of how good quality the compression is, because a perfect algorithm would discard lots of inadible information!
I was a bit stumped. Spotify’s audio quality is excellent for lossy-compressed streaming. What on earth could make Spotify sound so bad through the Chromecast Audio? I checked the Spotify documentation again, and found the following:
What bitrate is used when streaming Spotify with Chromecast? Standard quality for streaming Spotify with Chromecast is AAC 128kbit/s, and 256kbit/s for Premium.
Suddenly it made sense. I think the Chromecast is playing Ogg Vorbis transcoded to AAC. That would absolutely explain the degraded sound quality I noticed.
Transcoding is a terrible idea. This is the very reason that I ran screaming in terror from Google Play Music. Transcoding a lossy-compressed format to another lossy-compressed format sounds like garbage. If this is what’s happening with Spotify Connect and Chromecast, I think I’ll reconnect my AirPort Express.
I’m spending enough time and effort on this that I’m seriously considering a music server with all of my CDs in FLAC or ALAC lossless format. My CD collection is decades old and I can’t imagine those CDs will last forever anyway. I’m starting to learn about Roon, which seems pretty amazing and integrates with Tidal, a lossless streaming service. There’s also Deezer, Murfie, and Subsonic.
To conclude, I have two wishes for Spotify:
I want these things because I’m convinced that at some point, perhaps soon, I’m going to be able to find my wished-for service that combines lossless streaming of music via subscription, with a subscription to store the music I own and isn’t available through the service itself. It just feels like an absolute certainty that this will come to pass. Whoever gets there first will likely earn my business.
A couple of footnotes I didn’t want to mention above, to avoid distracting readers: