Jump to content
IGNORED

Article: Apple Music's Lossless and Hi-Res Mess


Recommended Posts

I tried to replicate the shairport-sync test:

 

  • Run shairport-sync in writing mode (shairport-sync -u -o stdout > 'file-name.wav')
  • Streamed from iPad a 16/44.1 track to my Mac running shairport-sync
  • Imported the raw audio file written by shairport-sync in Audition (PCM 16/44.1 stereo)
  • Imported the same 16/44.1 ALAC original track I own in Audition
  • Trimmed silence at the start and at the end of both tracks to match the duration
  • Inverted the original track
  • Added the two tracks in multitrack Audition

 

Here's the imported raw WAV after trimming:

 

spacer.png

 

Here's the original ALAC after trimming:

 

spacer.png

 

Here's the inverted original ALAC:

 

spacer.png

 

Here's the nulled playback:

 

spacer.png

Link to comment

@vortecjr Sorry, I don't follow you. I already compared the original song with the song provided by Apple Music.

 

Apple's server -> iPad (Music app  – Apple Music lossless stream) -> AirPlay (shairport-sync on Mac) -> File 1

 

The same ALAC song I bought elsewhere -> File 2

 

File 2 is inverted

 

File 1 – File 2 = 0

 

I tried another test where AiPlay isn't involved, rerouting the Music app output on my Mac to Audition using Loopback. It somehow worked (I successfully recorded the song). Problem is that unfortunately the recorded song doesn't match with the original one: after a few seconds they seem slightly out of tempo ruining the whole comparison process.

Link to comment

I successfully recorded a routed audio coming from Apple Music. This time I didn't use Loopback:

 

  • Streamed on my Mac a lossless song in Music app
  • Set output to my RME Babyface Pro audio USB interface
  • Routed inside RME's Totalmix mixer the output as an input
  • Recorded in Audition the routed input
  • Trimmed as usual the silence at the start (at the end actually isn't necessary)
  • Loaded the original ALAC song I own
  • Inverted the original song
  • Added the two tracks in multitrack Audition

 

Here's the scheme of the routing:

spacer.png

Here's the nulled playback:

 

spacer.png

Link to comment

Apple Music as a subscription always had DRM even before the lossless introduction. Purchases don't have DRM. Apple sells only AAC, though.

 

Dolby Atmos is AAC. I think Apple decided to keep Dolby Atmos in AAC to reduce bandwidth. I'm not a Dolby expert. I see that it can carry up to 128 channels.

I've downloaded on my Mac a lossless / Dolby Atmos track.

The .movpkg file package contains a subfolder Data. The .data file inside it contains, among other things, an index of the various versions (emphasis is mine to spot easily main informations):

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-stereo-256-binaural",AUTOSELECT=YES,CHANNELS="2/-/BINAURAL",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-stereo-256-downmix",AUTOSELECT=YES,CHANNELS="2/-/DOWNMIX",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-stereo-256",AUTOSELECT=YES,CHANNELS="2",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-HE-stereo-64",AUTOSELECT=YES,CHANNELS="2",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-HE-stereo-64-binaural",AUTOSELECT=YES,CHANNELS="2/-/BINAURAL",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-HE-stereo-64-downmix",AUTOSELECT=YES,CHANNELS="2/-/DOWNMIX",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-stereo-128",AUTOSELECT=YES,CHANNELS="2",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-stereo-128-binaural",AUTOSELECT=YES,CHANNELS="2/-/BINAURAL",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-stereo-128-downmix",AUTOSELECT=YES,CHANNELS="2/-/DOWNMIX",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-alac-stereo-44100-24",AUTOSELECT=YES,CHANNELS="2",NAME="songEnhanced",SAMPLE-RATE=44100,BIT-DEPTH=24
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-atmos-2448",AUTOSELECT=YES,CHANNELS="16/JOC",NAME="songEnhanced"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-atmos-2768",AUTOSELECT=YES,CHANNELS="16/JOC",NAME="songEnhanced"

#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=264995,_AVG-BANDWIDTH=264995,BANDWIDTH=267287,CODECS="mp4a.40.2",STABLE-VARIANT-ID="d8cb7044e68ba2036c03274d24e70ef6a1c6375b35fce16fae5632f4070007d5",AUDIO="audio-stereo-256-binaural"
P293742664_A1450330590_audio_en_gr256_bm.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=260511,_AVG-BANDWIDTH=260511,BANDWIDTH=271347,CODECS="mp4a.40.2",STABLE-VARIANT-ID="eac10af3428251ee2f8c056eb966570d813b967fd5027667c83bf865953a772c",AUDIO="audio-stereo-256-downmix"
P293742664_A1450330590_audio_en_gr256_dm.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=259294,_AVG-BANDWIDTH=259294,BANDWIDTH=268186,CODECS="mp4a.40.2",STABLE-VARIANT-ID="1098626e2bc698d3fea380193f55075503656719bdbd2e09647c2ee7be8ae66b",AUDIO="audio-stereo-256"
P293742664_A1450330590_audio_en_gr256.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=70918,_AVG-BANDWIDTH=70918,BANDWIDTH=75373,CODECS="mp4a.40.5",STABLE-VARIANT-ID="7f82811019138e2e2c0dcb6d6ae14ee0bb30d90dba7831696b9260759d814dfe",AUDIO="audio-HE-stereo-64"
P293742664_A1450330590_audio_en_gr64.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=74656,_AVG-BANDWIDTH=74656,BANDWIDTH=76988,CODECS="mp4a.40.5",STABLE-VARIANT-ID="ee326e45b1d644ad57f56a20971eca4c967802c57db831bef805ffa4ae30c4d1",AUDIO="audio-HE-stereo-64-binaural"
P293742664_A1450330590_audio_en_gr64_bm.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=71685,_AVG-BANDWIDTH=71685,BANDWIDTH=77809,CODECS="mp4a.40.5",STABLE-VARIANT-ID="b24912204d3bd110e11669069ed0f3d9eaa20ecdadd241cbaba7d58ce284ea17",AUDIO="audio-HE-stereo-64-downmix"
P293742664_A1450330590_audio_en_gr64_dm.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=132080,_AVG-BANDWIDTH=132080,BANDWIDTH=139028,CODECS="mp4a.40.2",STABLE-VARIANT-ID="dfb08389c21b5b8cff34ac9c3ff2ab65cd0eb4ab896eecde483241dab02604db",AUDIO="audio-stereo-128"
P293742664_A1450330590_audio_en_gr128.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=134888,_AVG-BANDWIDTH=134888,BANDWIDTH=137584,CODECS="mp4a.40.2",STABLE-VARIANT-ID="d68193e91e715e107dd1b1d76e3779a57b67c4f7ea67c909510add1cb9e23e95",AUDIO="audio-stereo-128-binaural"
P293742664_A1450330590_audio_en_gr128_bm.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=131847,_AVG-BANDWIDTH=131847,BANDWIDTH=137378,CODECS="mp4a.40.2",STABLE-VARIANT-ID="2659ce21a0707f412ce382b2c096554c6443d3beb1c51948401e48160d591963",AUDIO="audio-stereo-128-downmix"
P293742664_A1450330590_audio_en_gr128_dm.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=1650502,_AVG-BANDWIDTH=1650502,BANDWIDTH=1745984,CODECS="alac",STABLE-VARIANT-ID="561e16644b039475f6a2aa0739a2281398f639ee7934180c027ec4042f1bbee8",AUDIO="audio-alac-stereo-44100-24"
P293742664_A1450330590_audio_en_gr2116.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=450221,_AVG-BANDWIDTH=450221,BANDWIDTH=450191,CODECS="ec-3",STABLE-VARIANT-ID="5ac776f49c9709c22da6c83f603d6354be78b352e9ae3122f6b2043953319443",AUDIO="audio-atmos-2448"
P293742664_A1450330590_audio_en_gr2448.m3u8
#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=770212,_AVG-BANDWIDTH=770212,BANDWIDTH=770191,CODECS="ec-3",STABLE-VARIANT-ID="bb1ee4d3bea1c3fb25f0795af98d2b9a25825c28bcab87b05ac383062aee8ab0",AUDIO="audio-atmos-2768"
P293742664_A1450330590_audio_en_gr2768.m3u8

The codecs of the two Atmos versions are marked as EC-3 which is a lossy format. The only ALAC version is the 44.1 kHz/24 bit.

I've downloaded then another song from another album which isn't Dolby Atmos. It contains of course only AAC and ALAC versions.

 

HLS, as you said, it's an audio/video streaming format (.m3u8) composed by chunks (fragments). I guess that if you disable Dolby Atmos in Music preferences, then the download provides a regular .m4a files instead of .movpkg (always with DRM of course).

 

Edit: I just read that you have already tested the "disable Dolby Atmos" thing to check how it changes the download.

Link to comment

You're right. It's a new "thing" that Apple introduced. It surprised me.

 

I'm now afraid – as it seems to me, you are – that Dolby Atmos it's a sort of Trojan horse to reintroduce DRM.

 

I rarely purchased music from Apple because I prefer lossless files. Now with this HLS trick it's even less attracting.

 

I agree: it'd be nice if Apple provided an option to purchase ALAC music.

Link to comment

Correct me if I'm wrong, @Geoffrey Armstrong.

 

A quick recap:

Non Dolby Atmos purchase + "Download Dolby Atmos" unchecked = lossy m4a without DRM

Non Dolby Atmos purchase + "Download Dolby Atmos" checked = movpkg package with DRM containing lossless and lossy m4a

Dolby Atmos purchase + "Download Dolby Atmos" checked = movpkg package with DRM containing lossless, lossy m4a and Dolby Atmos

 

 

 

 

Link to comment

@seasonsinthesky 

 

For what is worth, I made some tests using the null method, recording the stream and comparing it with an original counterpart track.

 

I could’t test AirPlay 2 because I don’t own an AirPlay 2 device. Actually I own two of them: an Apple TV and a HomePod. They simply aren’t suitable for testing for obvious reasons: Apple TV’s output resamples everyting at 48kHz and with the HomePod is impossible to know what it is receiving and, besides, it doesn’t support Apple Music lossless yet.

 

My AirPlay 1 tests (iOS/iPad OS -> Mac and Mac -> Mac) confirm what Chris found out. I couldn’t test the system-wide AirPlay 1 on Mac, only within Music app.

 

My USB loopback test on Mac doesn’t match with Chris’s test. In my case the tracks are nulled.

 

I even managed to make a loopback USB test with iPad. I haven’t shared it publicly yet because I find it quite convoluted and so prone to variables that could ruin the reliability.

 

I will share it, in case. Anyway, for the record, even in this case the tracks don’t null.

 

Basically, with the exception of the USB test on Mac and excluding what I couldn’t do, almost everything matches Chris’s tests.

 

I find the HDCD test quite interesting and definitely worth to be considered. The null test is theoretically very valid. Unfortunately certain crucial conditions have to be met: the recording has to be “pure”, without any alteration and the original file used for comparison has to be exactly the same file provided by the streaming service. The former is somehow possible to keep under control, the latter … well not really.

Link to comment
15 hours ago, The Computer Audiophile said:

We should look into this one further. 

 

8 hours ago, wklie said:

Album/track, sample rate, bit depth, other settings, etc.  There may also be other factors such as presence of certain apps like BitPerfect, integer mode, etc.

 

I redid the test.

 

I'm using the same album over and over again because it's the only album I bought after the introduction of Apple Music. Every previously matched album is unfortunately still provided by Apple's servers in AAC. It's a common issue.

 

This time, at least, I changed the track. 🙂

 

I tried to provide as much informations as possible, documenting every step. My obsession with graphic produced a tall image. I divided it in three pieces. I hope they are usable (download it, in case).

 

Part 1/3:

 

spacer.png

 

Part 2/3:

 

spacer.png

 

Part 3/3:

 

spacer.png

 

I even tried a second "hardware loopback" test:

 

spacer.png

 

Link to comment
8 hours ago, pkane2001 said:

Out of curiosity I tried a recording of a 24/96k Apple lossless Hi-Res track that I already owned in this format.

 

Used iPad to stream through the Music app, and an all digital recording into an iMac.

 

Out of curiosity: how did you manage the recording session between the iPad and the Mac?

Link to comment
1 hour ago, wklie said:

When I mentioned virtual soundcard driver I assumed it will somehow allow directly capturing of the bits (i.e. performs like stdout from shairport-sync), but I don't know whether this makes sense or not as I have not looked into this, and I'm not familiar with Mac OS.

 

It's interesting to observe that the Shairport Sync recording via stdout compared to the original FLAC file in a multitrack session (all three 16 bit) isn't bit perfect.

 

The result is audibly muted, the volume levels the same and yet the Frequency Analysis shows that it's not perfectly nulled.

Link to comment

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



×
×
  • Create New...