Earlier this month I dug into Apple Music's Lossless and Hi-Res offerings, running several bit perfect rests on the audio output of my Macs and iOS devices. The results were less than stellar (link). This week I dug into Apple Music lossless over AirPlay. One would think that the results would be similar if the only thing changing is the method of transporting the music. However, it's still the Wild West and Apple has made the waters even more muddy with AirPlay.
Before I get to the details, I want to thank the Bluesound team. This team was very helpful while I was testing and researching AirPlay and Apple Music Lossless. These guys really know what they are doing and are on the leading edge of supporting and developing solutions that may seem simple to the end user, but are quite complex behind the scenes.
NOTE: Be sure to read the UPDATED parts below, suggested by @Marco Klobas
Let's Dig In
Just like my previous article, I want to start with some basics.
What is bit perfect and why should I care? In the simplest terms, bit perfect means that the audio hasn't been changed. The music sent, in this case from Apple Music, into the playback device hasn't been altered. The source is what has been delivered to Apple by the record labels. Apple is just the delivery company.
If you care about high quality, getting the lossless streaming you're paying for from Apple Music, Qobuz, Tidal, Amazon Music, etc... then you should care about bit perfect because without it you have no idea what's happening to your audio. If this isn't a concern for you, no worries.
Testing Methodology
Testing AirPlay was much more difficult than straight USB connected audio devices. There are AirPlay 1 devices, AirPlay 2 devices, Shairport devices, and a host of applications that don't follow any specific set of standards when sending audio via AirPlay.
My bit perfect testing consists of a Berkeley Audio Design Alpha DAC Reference Series 3 that identifies and decodes HDCD on all sample rates from 44.1 up through 192 kHz. When an unaltered HDCD music track is played, the HDCD indicator on the DAC is illuminated. The HDCD flag is on the 16th bit for lossless CD files and the 24th bit for high resolution files. Any alteration, DSP, volume leveling, etc... changes this least significant bit and won't enable the HDCD indicator to illuminate on my DAC. Apple Music's lossless audio that I tested was 16 bit / 44.1 kHz and the Hi-Res audio was both 24 bit / 176.4 kHz and 24 bit / 192 kHz. That's the hardware piece.
Feeding the DAC I used four devices.
- A Berkeley Audio Design Alpha USB. This converts USB audio to AES or S/PDIF on BNC. This device doesn't use AirPlay, but it helps set a baseline for testing.
- A Bluesound Node 2i that supports AirPlay 2 and uses the newest version of Apple's AirPlay 2 chip.
- An Apple AirPort Express 802.11n (2nd Generation) serial number C86HV7S1DV2R. This device supports AirPlay 2 and features optical S/PDIF output over Toslink.
- An Apple AirPort Express 802.11n (1st Generation) serial number 6F94552G2U6. This device supports AirPlay 1 and features optical S/PDIF output over Toslink.
- A Sonore signatureRendu SE Optical. This device supports ShairPort, an open source version of Apple's AirPlay 1.
Sending audio to the above devices I used the following.
- An Apple iPhone 12 Pro running iOS 14.6 and the Apple Music app.
- An Apple Mac Mini (M1) running macOS 11.4, and Apple Pro Display XDR.
- An iPad Pro (12.9-inch) (2nd Generation) running iOS 14.6.
With respect to source files, here's what I do.
I have a list of roughly ten known HDCD albums (although I could use more if needed). Many of these albums were only released as HDCD encoded CDs/files. There is no alternate lossless version. For example, Reference Recordings only releases CDs that are HDCD encoded. Pearl Jam's Live On Two Legs was only released as an HDCD master for its lossless CD version.
I set a baseline by playing my own local copy of the albums and make sure the HDCD indicator illuminates. I played some Reference Recordings albums through Apple's Music desktop application on macOS and made sure the app could handle bit perfect playback. All was good there. On iOS, I used other apps such as Qobuz, to play the identical music through the identical hardware. All was good through the Qobuz app. Again, there are no alternative versions of these lossless albums. It's the same music on all the services that offer lossless streaming.
Absolutely there are possible holes in my methodology, but I believe I've minimized them as much as possible. If anyone can identify a hole, please let me know and I will retest.
Results Without Context
Here is a list of the results, straight up without any context.
On iOS
- Apple's Music App, lossless streaming content, AirPlay 1 to AirPort Express 1st Gen - bit perfect at 44.1.
- Apple's Music App, lossless streaming content, AirPlay 1 to Sonore Rendu (ShairPort) - bit perfect at 44.1.
- Apple's Music App, lossless streaming content, AirPlay 2 to Bluesound Node 2i - NOT bit perfect at 44.1.
- Apple's Music App, lossless streaming content, AirPlay 2 to AirPort Express 2nd Gen - NOT bit perfect 44.1.
iOS Notable
- Qobuz, lossless streaming content, AirPlay 2 to Bluesound Node 2i - bit perfect at 44.1.
- Qobuz, lossless streaming content, AirPlay 2 to AirPort Express 2nd Gen - bit perfect at 44.1.
- Tidal, lossless streaming content, AirPlay 2 to Bluesound Node 2i - NOT bit perfect at 44.1.
- Tidal, lossless streaming content, AirPlay 2 to AirPort Express 2nd Gen - NOT bit perfect 44.1.
- Tidal, lossless streaming content, AirPlay 1 to AirPort Express 1st Gen - bit perfect at 44.1.
- Apple's Music App, lossless streaming content, USB output with CCK - not bit perfect at 44.1.
- Qobuz, lossless streaming content, USB output with CCK - bit perfect at 44.1 and 192.
On macOS
- UPDATED: Apple's Music App, lossless streaming content, AirPlay 1 to AirPort Express 1st Gen - bit perfect at 44.1 only if the system-wide AirPlay device is set. If AirPlay device only selected in the Music app, the output is NOT bit perfect.
- UPDATED: Apple's Music App, lossless streaming content, AirPlay 1 to Sonore Rendu (ShairPort) - bit perfect at 44.1 only if the system-wide AirPlay device is set. If AirPlay device only selected in the Music app, the output is NOT bit perfect.
- UPDATED: Apple's Music App, lossless streaming content, Airplay 2 to Bluesound Node 2i - bit perfect at 44.1 only if the system-wide AirPlay device is set. If AirPlay device only selected in the Music app, the output is NOT bit perfect.
- UPDATED: Apple's Music App, lossless streaming content, AirPlay 2 to AirPort Express 2nd Gen - bit perfect at 44.1 only if the system-wide AirPlay device is set. If AirPlay device only selected in the Music app, the output is NOT bit perfect.
macOS Notable
- Apple's Music App, lossless local content, AirPlay 1 to AirPort Express 1st Gen - bit perfect at 44.1.
- UPDATED: Apple's Music App, lossless local content, AirPlay 2 to Bluesound Node 2i - bit perfect at 44.1 only if the system-wide AirPlay device is set. If AirPlay device only selected in the Music app, the output is NOT bit perfect.
- UPDATED: Apple's Music App, lossless local content, AirPlay 2 to AirPort Express 2nd Gen - bit perfect at 44.1 only if the system-wide AirPlay device is set. If AirPlay device only selected in the Music app, the output is NOT bit perfect.
- Apple's Music App, lossless local content, USB output - bit perfect at 44.1.
Setting the system-wide audio device to an AirPlay device is done by selecting the following item in the system menu at the top of the screen.
Once selected, it will appear in the Music app this way.
Results With Some Thoughts And Videos
Please see the UPDATED notes above!
Sending Apple Music lossless content from an iOS device to an AirPlay version 1 device was surprisingly bit perfect, when all other methods were not bit perfect. My original guess was that this is because the AirPlay version 1 Express only accepted Apple Lossless Audio Codec (ALAC), so the sending app had no choice. However, this doesn't square with the fact that the Music app on macOS doesn't send bit perfect lossless audio to the same 1st gen Express. I retested this multiple times to make sure the results were identical on every test. The bottom line is that AirPlay 2 isn't currently receiving bit perfect lossless audio unless the system-wide output is set to an AirPlay 2 device, otherwise it's likely converting it to AAC at 256 kbps. Strangely, the Music app on macOS says it's streaming lossless audio only when sending via AirPlay 2 even if it is lossy because of the output selection only being done in the Music app, but the audio isn't bit perfect this way. The same app when sending via AirPlay 1, doesn't even pretend to send lossless, so it doesn't even display the lossless logo will display the lossless logo only if the system-wide audio device is set to the AirPlay 1 device.
Currently, the only way to stream lossless audio from a streaming service, bit perfectly, over AirPlay is to use an AirPlay version 1 device and use Apple Music, Tidal HiFi, or Qobuz, or an AirPlay 2 device and Qobuz. It seems like Qobuz doesn't care what the device supports, it just send the lossless audio without changing it. Apple Music sees AirPlay 2 and dumbs the music down to lossy AAC.
VIDEO One
Here is a video of my testing Apple Music streaming lossless 16 bit / 44.1 kHz audio from an iPad Pro to an AirPort Express (1st gen) via AirPlay 1. You can see several things in this video.
- Shortly after I press play, the sample rate on the DAC changes to 44.1, the Lock light on the DAC turns green to indicated a solid signal is received, and the HDCD indicator illuminates blue to indicate the DAC recognizes the HDCD flag on the 16th bit of the audio signal.
- At 0:25 into the video you can see the app shows its sending Lossless 16-bit/44.1 kHz ALAC content.
- At 0:35 into the video you can see what happens when I adjust the volume. As soon as the volume is not at 100%, bit perfection is lost and the HDCD indicator turns off. When I increase the volume back to 100%, the indicator illuminates blue once again. This is but one example of anything that changes the audio, destroys bit perfection and the HDCD indicator goes off.
- At 0:47 into the video I change tracks. Shortly thereafter you can see the HDCD light go out, while no audio is playing for the split second, then come back on as soon as the track starts.
- At 1:03 into the video you can see as soon as I press pause, the HDCD and Lock indicator lights go out.
VIDEO TWO
Here is a video of my testing Apple Music streaming lossless 16 / 44.1 audio from MacBook Pro to a Bluesound Node 2i via AirPlay 2. You can see several things in this video.
- The sample rate and Lock indicator are already good because the Node 2i had previously played this content.
- When I press play, the HDCD indicator remains off, indicating something in the audio has changed, destroying the 16th bit.
- At 0:23 into the video you can see when I click the Apple Music lossless logo. The app indicates it's receiving lossless audio from Apple Music. The fact that it isn't sending this lossless audio to the AirPlay 2 device is not indicated anywhere for the consumer to see.
- Note: When sending this same audio to an AirPlay 1 device from the MacBook Pro, the lossless logo doesn't appear in the now playing window and the app says AAC if you click Get Info.
VIDEO THREE
Here is a video of my testing Apple's Music application streaming LOCALLY stored / my own CD rip lossless 16 / 44.1 audio from MacBook Pro to a Bluesound Node 2i via AirPlay 2. You can see several things in this video.
- The sample rate and Lock indicators are correct.
- The HDCD indicator never illuminates, indicating the audio sent is not bit perfect.
- I also adjust the volume up and down to make sure it's at 100%.
VIDEO FOUR
Here is a video of my testing Apple's Music application streaming LOCALLY stored / my own CD rip lossless 16 / 44.1 audio from MacBook Pro to an AirPort Express 1st Gen via AirPlay 1. You can see several things in this video.
- The sample rate and lock indicator correctly adjust upon playback.
- The HDCD indicator correctly illuminates upon playback, indicating bit perfect audio.
- At 0:50 into the video you can see the track is local 44.1 AIFF file.
VIDEO FIVE
Here is a video of my testing Apple Music streaming lossless 16 bit / 44.1 kHz audio from a MacBook Pro to an AirPort Express (1st gen) via AirPlay 1. You can see several things in this video.
- Sample rate and Lock indicator adjust correctly.
- HDCD indicator doesn't illuminate upon playback.
- At 0:40 into the video you can see the Get Info screen showing AAC audio being sent. This appears to be the audio sent from Apple Music, not what is sent behind the scenes to the AirPlay device, even though AAc is in fact what's sent to the AirPlay 1 device as well.
VIDEO SIX
Here is a video of my testing Apple's Music application streaming LOCALLY stored / my own CD rip lossless 16 / 44.1 audio from MacBook Pro to an Alpha USB via USB. This is just a baseline video showing Apple's Music app is fully capable of bit perfect output via USB.
VIDEO SEVEN
Here is a video of my testing Apple Music application streaming lossless audio 16 / 44.1 audio from MacBook Pro to an Alpha USB via USB. You can see several things in this video.
- The video shows all my settings correct in the app.
- At 0:40 into the video I hit play and the HDCD indicator goes on for a short period, then continues to blink on/off periodically throughout the video. This indicates the audio fluctuates between bit perfect and not bit perfect.
- At 0:50 into the video you can see the lossless logo clicked and Apple Music displaying Lossless 16-bit 44.1 kHz ALAC as the audio stream.
Wrap Up
There you have the complete soup sandwich that is Apple Music lossless streaming over AirPlay versions 1 and 2.
I'd like to note that some people have said my bit perfect testing isn't really that big of a deal because Apple is streaming lossless audio and they don't care if it isn't bit perfect because it's better than the lossy stuff. After doing my research, I can tell you the "lossless" may be the exact same thing as the lossy, so people really should care about bit perfect playback. If we don't know where the digital signal processing is happening, we don't know that it's even lossless.
If you see anything in my tests that you think isn't right, please let me know. The last thing I want to do is cause even more confusion with misinformation. I believe everything here is 100% correct.
Recommended Comments
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 accountSign in
Already have an account? Sign in here.
Sign In Now