Marco Klobas Posted June 20, 2021 Share Posted June 20, 2021 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: Here's the original ALAC after trimming: Here's the inverted original ALAC: Here's the nulled playback: wklie 1 Link to comment
Marco Klobas Posted June 20, 2021 Share Posted June 20, 2021 @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
Marco Klobas Posted June 20, 2021 Share Posted June 20, 2021 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: Here's the nulled playback: wklie 1 Link to comment
Marco Klobas Posted June 20, 2021 Share Posted June 20, 2021 It’s Donegan’s Gone – Shangri-La – Mark Knopfler. Link to comment
Popular Post Marco Klobas Posted June 21, 2021 Popular Post Share Posted June 21, 2021 True. Apple should at least offer an option to activate it – even hidden somewhere, you know, for those who are interested in it. AudioDoctor, The Computer Audiophile and MikeyFresh 3 Link to comment
Marco Klobas Posted June 22, 2021 Share Posted June 22, 2021 To complete my previous test (the second one – recording through routing), a simple diff command between the trimmed original track and the trimmed registered track shows 0 differences. wklie 1 Link to comment
Marco Klobas Posted June 22, 2021 Share Posted June 22, 2021 I repeated my first test (the one with AirPlay 1 to Shairport Sync), this time using AirServer. It's a software AirPlay 1 receiver (running on Mac in my case). The result is the same: reversing the polarity of the recorded track is muting completely the original track. My tests so far always included complete tracks, from the start to the end. Link to comment
Marco Klobas Posted June 23, 2021 Share Posted June 23, 2021 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
Marco Klobas Posted June 23, 2021 Share Posted June 23, 2021 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. MikeyFresh 1 Link to comment
Marco Klobas Posted June 23, 2021 Share Posted June 23, 2021 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 MikeyFresh 1 Link to comment
Marco Klobas Posted June 23, 2021 Share Posted June 23, 2021 48 minutes ago, Geoffrey Armstrong said: You are correct as far as my understanding goes, yes. Thanks. Basically, the information that spread when Apple Music lossless launched claiming that purchases aren't lossless isn't correct (DRM aside). MikeyFresh 1 Link to comment
Marco Klobas Posted June 23, 2021 Share Posted June 23, 2021 @Geoffrey Armstrong So, when you downloaded your purchased song, you actually downloaded an Apple Music offline file. How do you differentiate the two things after a purchase? Link to comment
Marco Klobas Posted June 23, 2021 Share Posted June 23, 2021 My previous purchases (before the Apple Music lossless) show: kind: Purchased AAC audio file cloud status: Uploaded Link to comment
Marco Klobas Posted June 23, 2021 Share Posted June 23, 2021 On Apple Support Communities forum, where the AirPlay issue is debated as well, a user replyied to me with an interesting post: https://discussions.apple.com/thread/252848734?answerId=255437882022#255437882022 Link to comment
Marco Klobas Posted June 27, 2021 Share Posted June 27, 2021 @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
Marco Klobas Posted June 28, 2021 Share Posted June 28, 2021 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: Part 2/3: Part 3/3: I even tried a second "hardware loopback" test: wklie 1 Link to comment
Marco Klobas Posted June 28, 2021 Share Posted June 28, 2021 😀 I speak for myself: no. At least, not in a relaxed way, as it should be. I do listen without all these bit perfect/lossless/whatever distracting thoughts between the tests, though. MikeyFresh 1 Link to comment
Marco Klobas Posted June 28, 2021 Share Posted June 28, 2021 @wklie Do you mean something like BlackHole or Loopback? Link to comment
Popular Post Marco Klobas Posted June 29, 2021 Popular Post Share Posted June 29, 2021 I analyzed deeply the tracks comparison during playback: At -140/-160 dB there's a difference. Not audible of course and the level meters don't move. Still there's a difference – not bit perfect. It's highlighted here: Intrigued by the result, I picked my previous test where I compared 6 different recordings with the original track and looked at the same detail level. The results: The loopback track (track #7 – basically the same as track #2 above) shows the same difference at around -170 dB confirming what noticed today – No bit perfect The AirServer Mac to Mac AirPlay 1 (track #6) shows a difference at around -80 dB (as expected because it's not nulled) – No bit perfect The ShairPort Sync Mac to Mac AirPlay 1 (track #5) shows a difference at around -80 dB (as expected because it's not nulled) – No bit perfect The ShairPort Sync iPad to Mac AirPlay 1 (track #4) shows no difference (as expected because it's nulled) – Bit perfect The AirServer iPad to Mac AirPlay 1 (track #3) shows no difference (as expected because it's nulled) – Bit perfect The ShairPort Sync iPad to Mac AirPlay 1 (track #2) recorded via stdout shows a difference at around -190 dB. In this case it has a more irregular range (going from -140 db to -240 db). Sometimes it seems that the tracks null each other for a fraction of time – No bit perfect A quick recap because I get that it's difficult to follow: Bit perfect is reached only via AirPlay 1 (iOS/iPadOS or macOS system-wide only) and AirPlay 2 (macOS system-wide only as Chris demonstrated). The Computer Audiophile and Uncoy 2 Link to comment
Marco Klobas Posted June 29, 2021 Share Posted June 29, 2021 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
Marco Klobas Posted June 29, 2021 Share Posted June 29, 2021 @wklie I listed Loopback app in my previous reply when you mentioned a virtual soundcard driver. FYI, I have Loopback installed on my machine. Keep in mind that a slight latency is involved: ~20 ms. P.S.: did you take a look at my Roon message covering the iPad recording? It's a too complex process, isn't it? Link to comment
Marco Klobas Posted June 29, 2021 Share Posted June 29, 2021 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
Marco Klobas Posted June 29, 2021 Share Posted June 29, 2021 2 minutes ago, pkane2001 said: My Mac is an old one that has Toslink input built into the microphone jack, so that was easy to record from the DAC output. Clever. My relatively recent Mac (2018) doesn't have TOSLINK (neither in nor out). Link to comment
Marco Klobas Posted July 2, 2021 Share Posted July 2, 2021 3 hours ago, new_media said: The last several versions of MacOS have allowed an iPhone or iPad to be added as an audio source. Very interesting. Thanks. Link to comment
Recommended Posts
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