It’s here in the sample rate conversion settings
Hrm. That was my best guess. Do you have a way to upload the track from each version to Google Drive or similar and give me a download link? Happy to dig into it.
Maybe I am missing something, but all I see is DSD to PCM, not PCM to DSD like the OP talked about.
Does it show something like the following screenshot:
Btw, your PC/Mac CPU usage will shoot up if you do DSD upsampling.
If you have the time I certainly have the curiosity!
Just OK @Richard.Dane sending me your email by PM and I’ll send them using WeSendIT.
Mike
With thanks in advance to Richard…
I am curious too if I can figure it out. @Richard.Dane you have my email in my profile, please kindly provide to Michaelb
All files have to be convered to raw LPCM before they are sent on to the DAC stage as a DAC can only input LPCM. There for it has to be decompressed. WAV and AIFF are also decoded but as the are not file compressed its just wrapping it differenntly which is less cpu work.
Just sent the files using WeTransfer!
Cheers
Ok, i am convinced of course, till some posts now.
So maybe, even if Flac need to be decompressed, and that need additional processing, maybe Flac are easier to stream, or something like that.
In the case of MQA for instance, the files are easier to stream, because they are quicker to decode, vs for example a hires 24/192 file. With a fully MQA capable dac, many found these files equal or sometimes superior to true hires.
I had my SU for almost 6 months (QNAP/Asset) before I tried transcoding. I read so many posts here about legacy streamers and transcoding to WAV. My library is primarily AIFF and FLAC. And one day I gave it a try and sure enough the music sounded so much better. I was pretty meh about the SU up to this point. Add to that getting a switch and BJC ethernet cables and all of a sudden the SU was quite a formidable one box hifi machine.
MQA requires more processing to decode. As a Roon user the amount of CPU usage is shown and FLAC requires very little to decompress.
What I can read on an audiophile french site: “
The interest of the MQA format is not so much to offer the listener higher quality sound, as to produce smaller file sizes, which is of interest for streaming ”
That’s certainly the case with MQA file sizes, smaller than Hires FLAC. With today’s typical broadband speeds it’s pretty much irrelevant though.
I am back at work now YB,will check if I see that screen tomorrow. I don’t like the idea of the computer working much harder,might not be a worth the hassle in the end I guess.
Honestly can’t tell the difference.
And often surprised how good bluetooth sounds! I know how very dare I. I may be the only forum member to use bluetooth! But my wife often connects her phone with Bluetooth because the casting can be a bit clunky
Thanks to @Michaelb for sending the mysterious flac files for analysis. Here it comes. I did this in Linux, you can do the same with the “flac” command line programs on Windows or the Terminal on Mac. (On the Mac it will most likely work verbatim as it has a similar terminal to Linux. On Window you would have to use their atrocious command line syntax). I will post each step so that the inclined reader can see everything I do in detail. Using the Linux terminal makes this easier for me and I can copy all commands and results to this post, as it is just text. (There might be GUI programs to do this as well, I don’t know). I hope this does not make it too difficult to follow for those not used to the terminal commands - I will try to explain each step.
If you don’t want to know all the nitty-gritty, jump down to the summary in step #15
#1 To clarify first, I am doing all this while logged in as mario on my machine, chronic, in the flac_analysis directory. This is always signified by this in the subsequent copies of the commands:
mario@chronic:~/flac_analysis$
On the same line you will see the command that I issue, on the subsequent line(s) the results that the terminal outputs.
#2 The zip file sent by Michael was downloaded to this folder, it is 79 MB in size. The command is “ls -sh” for “list (ls) the size (s) in human-readable (h) units”:
mario@chronic:~/flac_analysis$ ls -sh
total 79M
79M wetransfer_those-two-files_2022-01-18_2016.zip
#3 Unzipping the zip
mario@chronic:~/flac_analysis$ unzip wetransfer_those-two-files_2022-01-18_2016.zip
Archive: wetransfer_those-two-files_2022-01-18_2016.zip
Written using ZipTricks 5.6.0
extracting: 10 Cocteau Twins - Musette And Drums.flac
extracting: 01-10-Cocteau_Twins-Musette_and_Drums-LLS.flac
#4 This results in two flac files, one is 32 MB in size, the other is 48 MB. (Attentive readers might notice that I have already moved the original zip out of the way for clarity)
mario@chronic:~/flac_analysis$ ls -sh
total 157M
32M 01-10-Cocteau_Twins-Musette_and_Drums-LLS.flac 48M '10 Cocteau Twins - Musette And Drums.flac'
(The 48 MB file shows the file name with enclosing quotes because the name contains spaces)
#5 We are ready to go. First I simply use the offical flac program to decode the two flac files to wav. This also strips out the album art that was embedded into the two flacs (which was not the same but very similar, and was not responsible for the different flac file sizes). The * in the decode command simply means “all files in this folder”:
mario@chronic:~/flac_analysis$ flac --decode *
flac 1.3.3
Copyright (C) 2000-2009 Josh Coalson, 2011-2016 Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
01-10-Cocteau_Twins-Musette_and_Drums-LLS.flac: done
10 Cocteau Twins - Musette And Drums.flac: done
#6 Let’s look at the sizes of the resulting wav files:
mario@chronic:~/flac_analysis$ ls -sh *.wav
48M 01-10-Cocteau_Twins-Musette_and_Drums-LLS.wav 48M '10 Cocteau Twins - Musette And Drums.wav'
Ha! They are both 48 MB.
#7 That’s a rough size in MB, we want to know exactly. The -l option is for “long”. This outputs the file permissions and ownership (ignore these), followed by the sizes in bytes:
mario@chronic:~/flac_analysis$ ls -l *.wav
-rw-r--r-- 1 mario mario 49345004 Jan 18 21:16 01-10-Cocteau_Twins-Musette_and_Drums-LLS.wav
-rw-r--r-- 1 mario mario 49345004 Jan 18 21:16 '10 Cocteau Twins - Musette And Drums.wav'
Both wav files are 49345004 bytes! OK, this is a hint that they might be the same, but I could, e.g., write two entirely different novels with the same number of characters - are the files really the same?
#8 The “sha256sum” program reads files and computes a checksum (a so-called hash). It’s mathematically proven that if the resulting hash is the same, the files are bit-for-bit the same. This saves us from having to compare the two files bit for bit ourselves.
mario@chronic:~/flac_analysis$ sha256sum *.wav
0844e0c3765d0ef4dee9efaf075edf3e054d1074d81b58912d4ffb4f24f84fb9 01-10-Cocteau_Twins-Musette_and_Drums-LLS.wav
0844e0c3765d0ef4dee9efaf075edf3e054d1074d81b58912d4ffb4f24f84fb9 10 Cocteau Twins - Musette And Drums.wav
The same. The two flac files, despite having very different sizes, decode into the exact same wav file. Unless we are dealing with a cruel intelligence service with vast resources, who is intent on tricking us, we can assume that this means that the two flac files were also originally created from the same wav file.
#9 Well OK, but why, then, were the flac file sizes so different? Michael already wrote in a previous post that it’s not the album art embedded into the flac files, as it’s similar. I confirmed this, but am leaving out this part, in order to not make this write-up even longer.
Let’s look at the larger one of the flac files, together with the wav file that was decoded from it. (The spaces in the filename on the command line are escaped with backslashes so that the terminal is not confused about where the filename ends):
mario@chronic:~/flac_analysis$ ls -l 10\ Cocteau\ Twins\ -\ Musette\ And\ Drums.*
-rw-r--r-- 1 mario mario 49469913 Jan 18 21:16 '10 Cocteau Twins - Musette And Drums.flac'
-rw-r--r-- 1 mario mario 49345004 Jan 18 21:16 '10 Cocteau Twins - Musette And Drums.wav'
That’s mighty similar, 49469913 vs. 49345004 bytes. Without writing down further proof, let me state that the small difference is caused by the metadata tags and album art in the flac, which were stripped out when decoding it to wav. So the music data in the flac is not really smaller than the wav. How so?
#10 Let’s analyze the original flac files a bit more. The flac program has an analyze option, which outputs information about each compressed music data frame that’s contained in the flac file. Let’s generate this analysis data:
mario@chronic:~/flac_analysis$ flac --analyze *.flac
flac 1.3.3
Copyright (C) 2000-2009 Josh Coalson, 2011-2016 Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
01-10-Cocteau_Twins-Musette_and_Drums-LLS.flac: done
10 Cocteau Twins - Musette And Drums.flac: done
#11 This gives us two “.ana” files that are text files with analysis data:
mario@chronic:~/flac_analysis$ ls *.ana
01-10-Cocteau_Twins-Musette_and_Drums-LLS.ana '10 Cocteau Twins - Musette And Drums.ana'
Let’s look at them.
#12 I am omitting the command to read the .ana files, it’s just a text reader. Following are the beginnings of the files, including the first frame of music data. The rest is essentially the same within each file.
First the smaller flac file, 01-10-Cocteau_Twins-Musette_and_Drums-LLS.flac. This looks like normal flac. The frame=0 is just empty, the second frame, frame=1, is the start of the music data. The interesting part is the type=LPC. This is the type of compression algorithm that flac normally uses. The analysis shows that it read some music data in this frame, then in qlp_coeff made some guesses about the data, so that it can efficiently compress it, then started its work.
frame=0 offset=503 bits=2126728 blocksize=4608 sample_rate=44100 channels=2 channel_assignment=INDEPENDENT
subframe=0 wasted_bits=0 type=CONSTANT value=0
subframe=1 wasted_bits=0 type=CONSTANT value=0
frame=1 offset=266344 bits=93880 blocksize=4608 sample_rate=44100 channels=2 channel_assignment=INDEPENDENT
subframe=0 wasted_bits=0 type=LPC order=9 qlp_coeff_precision=12 quantization_level=8 residual_type=RICE partition_order=6
qlp_coeff[0]=801
qlp_coeff[1]=-1210
qlp_coeff[2]=1300
qlp_coeff[3]=-1190
qlp_coeff[4]=954
qlp_coeff[5]=-668
qlp_coeff[6]=407
qlp_coeff[7]=-186
qlp_coeff[8]=46
warmup[0]=0
warmup[1]=0
warmup[2]=0
warmup[3]=0
warmup[4]=0
warmup[5]=0
warmup[6]=0
warmup[7]=0
warmup[8]=0
parameter[0]=0
parameter[1]=0
parameter[2]=0
parameter[3]=0
parameter[4]=0
parameter[5]=6
parameter[6]=6
(and so on)
Let’s look at the larger flac file, the one that’s essentially the same size as the wav that it came from, ‘10 Cocteau Twins - Musette And Drums.ana’:
frame=0 offset=634 bits=902392 blocksize=4608 sample_rate=44100 channels=2 channel_assignment=INDEPENDENT
subframe=0 wasted_bits=0 type=VERBATIM
subframe=1 wasted_bits=0 type=VERBATIM
frame=1 offset=113433 bits=147536 blocksize=4608 sample_rate=44100 channels=2 channel_assignment=INDEPENDENT
subframe=0 wasted_bits=0 type=VERBATIM
subframe=1 wasted_bits=0 type=VERBATIM
frame=2 offset=131875 bits=147536 blocksize=4608 sample_rate=44100 channels=2 channel_assignment=INDEPENDENT
subframe=0 wasted_bits=0 type=VERBATIM
subframe=1 wasted_bits=0 type=VERBATIM
(and so on)
Well, that’s not doing much, does it. type=VERBATIM informs us that it just copied the original PCM music data from the wav file and put it into a flac, without compressing it. So that’s not much of a surprise then, that the flac is not smaller than the wav.
#13 How is that? If you look at the info on the web about using flac for encoding, you will see that flac has different compression levels, but even the value “0” does not mean that it does no compression at all.
However, the developers of dBPoweramp proposed using flac without any compression and also implemented this (which is fine because the flac format is free and open, and as long as their implementation does not break other software that wants to read these flac files, why not). Using this approach, the flac file only becomes a container for PCM data with the additional benefit of using the well-standarized metadata tags that the flac file format provides, while metadata support for wav files is more patchy among tagging software. This was not accepted by the flac developers into the official standard, as far as I can tell, because just using the existing “0” compression level has no downsides, anyway.
As @Michaelb wrote, this is what he is using as default in his dbPoweramp settings, so this makes sense. (I believe that the post-installation default in dbPoweramp is flac’s default level 5, but I would have to plug in my CD reader to check and I can’t be bothered )
Nevertheless, although there is no official “no compression” option in the official, “upstream” flac software and specification, there are sets of options that achieve something very similar. So I will try these.
#14 Let’s try this by re-encoding the wav file into a flac with these options. First I simply create a new directory, copy the wav file into it, and change into the new directory:
mario@chronic:~/flac_analysis$ mkdir newflac
mario@chronic:~/flac_analysis$ cp '10 Cocteau Twins - Musette And Drums.wav' newflac/
mario@chronic:~/flac_analysis$ cd newflac/
mario@chronic:~/flac_analysis/newflac
Let’s encode:
mario@chronic:~/flac_analysis/newflac$ flac -l 0 --disable-constant-subframes --disable-fixed-subframes '10 Cocteau Twins - Musette And Drums.wav'
flac 1.3.3
Copyright (C) 2000-2009 Josh Coalson, 2011-2016 Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
10 Cocteau Twins - Musette And Drums.wav: wrote 49480084 bytes, ratio=1,003
Note the “ratio” output info. It’s not exactly 0 compression, but actually the flac is a tiny bit larger by fractions of percents. Let’s look at the file sizes:
mario@chronic:~/flac_analysis/newflac$ ls -l
total 96516
-rw-r--r-- 1 mario mario 49480084 Jan 18 23:25 '10 Cocteau Twins - Musette And Drums.flac'
-rw-r--r-- 1 mario mario 49345004 Jan 18 23:25 '10 Cocteau Twins - Musette And Drums.wav
Confirmed, the flac is a tiny bit larger than the wav. Probably because it contains the same PCM plus some info that the flac decoder needs to know what is going on. Let’s look at the data analysis, again with
mario@chronic:~/flac_analysis/newflac$ flac --analyze '10 Cocteau Twins - Musette And Drums.flac
What’s in the ‘10 Cocteau Twins - Musette And Drums.ana’ analysis file?
frame=0 offset=594 bits=102512 blocksize=1152 sample_rate=44100 channels=2 channel_assignment=INDEPENDENT
subframe=0 wasted_bits=0 type=VERBATIM
subframe=1 wasted_bits=0 type=VERBATIM
frame=1 offset=13408 bits=36944 blocksize=1152 sample_rate=44100 channels=2 channel_assignment=INDEPENDENT
subframe=0 wasted_bits=0 type=VERBATIM
subframe=1 wasted_bits=0 type=VERBATIM
frame=2 offset=18026 bits=36944 blocksize=1152 sample_rate=44100 channels=2 channel_assignment=INDEPENDENT
subframe=0 wasted_bits=0 type=VERBATIM
subframe=1 wasted_bits=0 type=VERBATIM
(and so on)
#15 Ca-ching! It’s not exactly the same analysis data as in Michael’s dbPoweramp rip, but there are other options that could be added to the encoding command, and anyway it’s close enough. To summarize:
- Both flac files that Micheal provided decode into the same wav file, so they also came from the same original wav file.
- The smaller flac from the Qobuz download used normal flac compression.
- The larger flac from @MichaelB’s own rip from dbPoweramp used most likely an unoffical flac implementation by the dbPoweramp developers that performs no compression.
- The two flac files should sound the same as they decode into the same PCM data.
- I have no explanation for why his own rip sounds better to Michael. Suggestions welcome, but please try to be plausible
#16 Materials.
You can see the official technical specification for the subframe types (LPC and VERBATIM) here:
And fundamentals about the encoder design here:
A forum discussion with some knowledgeable posts that also explain a bit about the frame type=LPC vs type=VERBATIM and are not too technical, here:
(I hope this is OK to link, it’s old and unlikely to stir up controversy)
A discussion about the “no compression” suggestion by the dbPoweramp designer here on the Github site of the Xiph project (the official flac developers). (Github provides hosting for software projects):
Now managing the testing & support teams in a software development company. Very long ago also worked as a software developer in a different company (but was worse at it than my own expectations, so that made me unhappy).
By the way, in case you already read the above and found mistakes, I also did while you were reading and made some edits. If you find any issues please let me know and I will fix it, I don’t want to confuse anyone.