TLDR: Tidal has an awful implementation of exclusive mode and you should avoid using it.
TIDAL DOES stream proper lossless FLAC identical to anywhere you could buy it, but their player is awful.
You can avoid it by streaming Tidal through Roon instead
(Note: All tests were done using 44.1khz 16 bit FLAC files, no DSP, and with no MQA so as to ensure a fair test)
Why am I doing this?
I’ve for a while felt that Tidal whilst great in terms of resolution etc, sounded somewhat harsh in comparison to either local FLAC files, or interestingly, Tidal streamed through Roon.
Also, a lot of people have often accused tidal of “bass boosting” or adding DSP to their music to create a false illusion of increased clarity.
I can’t say that I feel its bass boosted but it certainly seemed different. And after hearing the staggering difference between streaming tidal natively vs through Roon, I knew this was NOT placebo and wanted to find out what was happening.
Testing Tidal vs Roon measuring in Windows
First, I played “Weak” by AJR on both Tidal, and Tidal via Roon, streaming the same track directly into audacity. Both in bit perfect 16 bit 44.1khz.
I then used “Audio DiffMaker” To perform a null test (subtract one audio file from another. If there is a result, it means they are different. If not, it means there is no difference between the two files.) The result was a 0 null, meaning as far as audacity was concerned, both players were outputting 100% bit by bit identical audio. Which surprised me as there is definitely an audible difference, much more than placebo.
Perhaps a FLAC file would show a different result? I purchased a FLAC from HDtracks of the song I was testing, and played it through both Foobar and Roon, which showed a 0 null again on both instances when compared either to eachother or to the original Tidal stream, suggesting these players are identical. Which was odd.
Within the OS it seems, there is 0 difference at all and in theory the players should sound 100% identical.
Testing Tidal vs Roon measuring real DAC output
I was not happy yet though. I was convinced something more was going on. And if it couldn’t be detected within the OS then it must be to do with how the player and the DAC itself or its drivers are interacting when playing in WASAPI exclusive mode.
So: I hooked up the output of my RME ADI-2 DAC to my audio interface input, in order to record what the dac was ACTUALLY outputting.
I performed a null test once again between streaming the track through tidal vs streaming tidal through roon and boom, we have a difference result:
That file is the result of the null test between Tidal and Tidal through roon. Ie: Anything present in both files is removed and only the difference remains. And as you can hear, there is a LOT of difference, meaning not only is the audio altered a little, its changed a LOT.
If we look at a peak FR measurement for that file, done with RME Digicheck, we can see that there is a significant amount of increase in the higher frequency areas. Suggesting that the Tidal player is playing audio “Brighter” than Roon. This would explain why to my ears it sounded harsher than other players. To be clear, Roon was operating in WASAPI exclusive mode, not ASIO mode, so as to make it a fair test.
Next, I wanted to find out, given as the digital-only measurements showed 0 difference, and yet we clearly see a difference here. What happens if we put both players on equal ground by having them operate in WASAPI non-exclusive mode. Ie: through the windows audio mixer?
So, I did just that, again measuring the output from the DAC in each case and…nothing…100% identical, 0 null.
Therefore this shows that the problem lies within Tidal’s implementation of Exclusive mode. And SOMETHING about it is bad and causing audio to be altered in an undesirable way.
And also shows that when not using ASIO/WASAPI exclusive mode for lossless files, the player you use does not matter, as the windows audio mixer is handling all outputs and the result will be the same.
Yeah its different, but is it wrong?
Whats to say that Tidal is wrong? Surely It could be that Tidal is “correct” and Roon is wrong?
To test this, I got the FLAC for the track purchased from HDtracks, and played it through Roon. I then null-tested this against Roon-Tidal streaming, Tidal native streaming, and Foobar playback of the same track.
Null test results:
Foobar/Roon: Small differences, but so incredibly low that it would be completely inaudible and impossible to say which is better.
Roon Flac/Roon Tidal stream: 0 null, completely Identical.
This means that since the roon tidal stream was identical to the FLAC played either through Roon or almost identical to the track played through Foobar, it is indeed Tidal’s native player that is “wrong”.
Something about TIDAL’s “Exclusive Mode” implementation causes audio to be altered. This would explain why a lot of people accuse TIDAL of adding DSP to their music. They aren’t, their player is just awful and alters the music because its bad.
If you play TIDAL through Roon, it is 100% identical to an actual local FLAC file from a site such as HDtracks or 7digital. Meaning the actual “Streaming” part of Tidal is indeed just streaming lossless FLAC and is actually excellent.
So what’s the “Best” way to listen to music on my PC?
I did a couple tests between ASIO and WASAPI exclusive mode, and for my DAC anyway, there was 0 null, meaning no difference at all.
So ideally, the “Best” way to listen to music is either local FLAC files, or tidal streaming, played through Roon, and outputting to your DAC via WASAPI exclusive or ASIO.
Preferably ASIO to avoid any driver or software issues with switching sample rate or bit depth.