IPB

Welcome Guest ( Log In | Register )

2 Pages V   1 2 >  
Reply to this topicStart new topic
Patched foo_input_sacd version for high-quality DSD->PCM (88.2/96 k
vladg
post Aug 25 2012, 17:44
Post #1





Group: Members
Posts: 5
Joined: 25-August 12
Member No.: 102656



Hi guys!

This plugin (foo_input_sacd_hq) is patched version of Super Audio CD Decoder plugin v0.5.11 with added high-quality DSD->PCM 88.2/96 kHz conversion.

http://dl.dropbox.com/u/18475891/foo_input_sacd_hq.zip

Technical details of patched version:

- single-pass double precision processing;
- 24-bit dithering;
- SSE2 required;
- 88.2 kHz sample rate support (32x downsampling);
- 96 kHz sample rate support (5/147 polyphase filter);
- 2.8 mHz DSD stream support;
- filters were selected by ear.

Removed functionality in patched version:

- DSD stream output (PCM only);
- 44.1 kHz support (doesn't make sense);
- 176.4 kHz support (my audio interface doesn't support it);
- 5.6 mHz DSD stream support (didn't find any to check);
- all another DSD->PCM algorithms (BTW, only double precision multistage
one sounded good for me).

Conclusion:

New filters added depth and feel of SACD in PCM output. I can't say that sound of converted PCM stream is better then native SACD player one but results are really comparable.

PS. Also this plugin capable to play 5.1 with 55%/61% load on my CPU (Athlon 7750 2.7 GHz).

PPS. Also single-precision version with lower CPU load available in "bonus\single-precision-version" directory of archive.
Go to the top of the page
+Quote Post
GeSomeone
post Aug 25 2012, 19:15
Post #2





Group: Members
Posts: 920
Joined: 22-October 01
From: the Netherlands
Member No.: 335



QUOTE (vladg @ Aug 25 2012, 18:44) *
- 24-bit dithering;

Just a question, why the dithering? In foobar the dithering (if so desired) is done in the output stage. Not to mention that 24bit doesn't seem to benefit from dither.


--------------------
In theory, there is no difference between theory and practice.
Go to the top of the page
+Quote Post
vladg
post Aug 25 2012, 20:04
Post #3





Group: Members
Posts: 5
Joined: 25-August 12
Member No.: 102656



QUOTE (GeSomeone @ Aug 25 2012, 22:15) *
QUOTE (vladg @ Aug 25 2012, 18:44) *
- 24-bit dithering;

Just a question, why the dithering? In foobar the dithering (if so desired) is done in the output stage. Not to mention that 24bit doesn't seem to benefit from dither.


It sounds better (checked with foo_abx for blind testing).

Also in Vista/Seven foobar dithering is disabled.

--------
YirkhaDec 31 2009, 06:41
Using DirectSound output, the output format should be fixed only for Windows Vista and later, to avoid unnecessary conversions when the data will be processed by the main system mixer later anyway. The mixer uses 32-bit floating point samples, so that's what the option is fixed to. Also for floating point data, dither doesn't make sense, therefore it's disabled as well.
---------
http://www.hydrogenaudio.org/forums//lofiv...php/t77399.html
Go to the top of the page
+Quote Post
Sandrine
post Aug 25 2012, 22:23
Post #4





Group: Members
Posts: 319
Joined: 2-July 10
Member No.: 81991



All this "selected by ear" and "sounds better" makes me ask: Are you a sound engineer? What is your equipment? Also, I prefer higher samplerates as my equipment supports them. Also also, quoting "Direct Sound" sounds kind of fishy, WASAPI should be the output of choice when playing SACD. Thanks.


This post has been edited by Sandrine: Aug 25 2012, 22:37
Go to the top of the page
+Quote Post
vladg
post Aug 26 2012, 14:56
Post #5





Group: Members
Posts: 5
Joined: 25-August 12
Member No.: 102656



QUOTE (Sandrine @ Aug 26 2012, 01:23) *
All this "selected by ear" and "sounds better" makes me ask: Are you a sound engineer? What is your equipment? Also, I prefer higher samplerates as my equipment supports them. Also also, quoting "Direct Sound" sounds kind of fishy, WASAPI should be the output of choice when playing SACD. Thanks.


Echo AudioFire 8 -> KRK VXT6 in threated home studio room. And also Marantz SA7001 KI SACD player to check.

I'm the author of "Limiter No6" mastering limiter plugin and "Molot" compressor plugin.
http://www.pluginboutique.com/manufacturers/37-VladgSound

Echo AudioFire drivers don't support WASAPI :-( I use ASIO output.
Go to the top of the page
+Quote Post
Sandrine
post Aug 29 2012, 20:10
Post #6





Group: Members
Posts: 319
Joined: 2-July 10
Member No.: 81991



Just a quick feedback that the modifications sound great! Any chance to put back in what you took out before? (Especially higher sample rates)
Go to the top of the page
+Quote Post
vladg
post Aug 29 2012, 21:40
Post #7





Group: Members
Posts: 5
Joined: 25-August 12
Member No.: 102656



QUOTE (Sandrine @ Aug 29 2012, 23:10) *
Just a quick feedback that the modifications sound great! Any chance to put back in what you took out before? (Especially higher sample rates)


Thanks!

About stuff removed:
- DSD output. If you have DSD capable DAC you don't need this patched version :-)
- 44.1 support. I don't think it's usable to listen SACD on 44.1
- all another algorithms of PCM conversion. Again, if you like them you don't need this patched version.
- 176.4 support. That's what you want for! :-)

About 176.4. I have idea to add both 176.4 and 192 support (add to 88.1 and 96 that already supported). But I don't have any >96 kHz capable audio interface around me to check! As soon as I can find it I'll add it!

Hmm. Maybe I should add them blindly and ask to check somebody else...
Go to the top of the page
+Quote Post
db1989
post Aug 29 2012, 21:44
Post #8





Group: Super Moderator
Posts: 5141
Joined: 23-June 06
Member No.: 32180



QUOTE (vladg @ Aug 29 2012, 21:40) *
- 44.1 support. I don't think it's usable to listen SACD on 44.1
Because?
Go to the top of the page
+Quote Post
Sandrine
post Aug 30 2012, 07:12
Post #9





Group: Members
Posts: 319
Joined: 2-July 10
Member No.: 81991



QUOTE (vladg @ Aug 29 2012, 22:40) *
About 176.4. I have idea to add both 176.4 and 192 support (add to 88.1 and 96 that already supported). But I don't have any >96 kHz capable audio interface around me to check! As soon as I can find it I'll add it! Hmm. Maybe I should add them blindly and ask to check somebody else...


Yup, those samplerates are what make me happy smile.gif Most people use HDMI to send the output to their digital receiver and most digital receivers can at least do 192 (mine can also do 176).
Go to the top of the page
+Quote Post
Takaji
post Aug 30 2012, 23:28
Post #10





Group: Members
Posts: 232
Joined: 17-June 05
Member No.: 22787



Cool, thanks for this! Looking forward to trying it out. Will you be updating it alongside foo_input_sacd updates?
(As an aside, I can't for the life of me find a changelog for foo_input_sacd on the website; I'd love to know what changes between versions!)

Slightly unrelated to what you're doing with the component, but one of the things concerning tagging of SACD .ISO files using foo_input_sacd is that an XML file containing the tags is stored in foobar2000 appdata's /sacd-metabase using a long string of numbers... this makes copying/moving a SACD release with its tags particularly annoying, as you have to go into /sacd-metabase and search for the file containing the tags. As a feature request, would you be able to make the .xml be stored in the .iso's directory, and read from there? I asked the author about this and he said not having a main folder to store the .xml files would be "not good," but didn't specify why...

Thank you smile.gif
Go to the top of the page
+Quote Post
Sandrine
post Aug 31 2012, 22:28
Post #11





Group: Members
Posts: 319
Joined: 2-July 10
Member No.: 81991



I noticed now that Max has updated his original sacd decoder to include selectable FIR filters. Has anybody compared results yet?
Go to the top of the page
+Quote Post
SoNic67
post Sep 3 2012, 00:48
Post #12





Group: Members
Posts: 108
Joined: 3-February 11
Member No.: 87877



QUOTE (Takaji @ Aug 30 2012, 18:28) *
not having a main folder to store the .xml files would be "not good," but didn't specify why...

I guess that is because there is no way for the SACD plug in to inquire foobar about the actual location of the file... If is in the play list, it plays; probably only foobar knows where it "comes" from.
Go to the top of the page
+Quote Post
Jackal29a
post Sep 3 2012, 08:18
Post #13





Group: Members
Posts: 36
Joined: 28-May 11
Member No.: 91053



QUOTE (Takaji @ Aug 31 2012, 00:28) *
(As an aside, I can't for the life of me find a changelog for foo_input_sacd on the website; I'd love to know what changes between versions!)


check the readme.txt inside the plugin zip, the changelog is there.
Go to the top of the page
+Quote Post
Takaji
post Sep 3 2012, 16:10
Post #14





Group: Members
Posts: 232
Joined: 17-June 05
Member No.: 22787



QUOTE (SoNic67 @ Sep 2 2012, 18:48) *
I guess that is because there is no way for the SACD plug in to inquire foobar about the actual location of the file... If is in the play list, it plays; probably only foobar knows where it "comes" from.


That would make more sense.


QUOTE (Jackal29a @ Sep 3 2012, 02:18) *
check the readme.txt inside the plugin zip, the changelog is there.


Thanks!
Go to the top of the page
+Quote Post
db1989
post Sep 9 2012, 20:26
Post #15





Group: Super Moderator
Posts: 5141
Joined: 23-June 06
Member No.: 32180



QUOTE (db1989 @ Aug 29 2012, 21:44) *
QUOTE (vladg @ Aug 29 2012, 21:40) *
- 44.1 support. I don't think it's usable to listen SACD on 44.1
Because?
I’m still waiting…

I don’t really know where to start with applying TOS #8 to this thread, but I just binned one especially obvious case. If you’d all like to provide some evidence for all this ‘sounds better wow high resolutions’ stuff, or at least stop talking about it, that’d be great.
Go to the top of the page
+Quote Post
vladg
post Sep 9 2012, 22:31
Post #16





Group: Members
Posts: 5
Joined: 25-August 12
Member No.: 102656



QUOTE (db1989 @ Sep 9 2012, 23:26) *
QUOTE (db1989 @ Aug 29 2012, 21:44) *
QUOTE (vladg @ Aug 29 2012, 21:40) *
- 44.1 support. I don't think it's usable to listen SACD on 44.1
Because?
I’m still waiting…


Hmm, I'll try to explain.

If you want to listen high-quality audio records (24/96 for example and DSD too) you should have high-quality audio gear. In another case you can listen lossy encoded files because there's no hearable difference. High-quality audio interfaces support high sample rates (more than 48 kHz).

Support of 44.1 kHz requires very steep filter with roll-off starting from about 20.5 kHz to 22.5 kHz. This filter will contain big number of taps and it will lead to increased CPU load but the sound won't be better. Also high number of taps will increase quantization errors in FIR multiplication.

Now check this well-known DSD dynamic range picture:
http://www.positive-feedback.com/Issue59/i...SD_figure_2.jpg

The DSD 1-bit quantization noise slowly rising more and more and starts to dominate above audio harmonics around 30-40 kHz.

The task of DSD->PCM conversion is to filter out 1-bit quantization noise. If I set my low-pass filter around 30-40 kHz, it'll be okay. But if I set my low-pass filter around 21 kHz, I will filter out some audio harmonics.

Next, I can say that gently sloping filter curves have more natural sound. It's common audio-processing knowledge. I think it's related with less ringing artifacts and maybe less FIR taps (and less quantization errors and so on). To filter out 1-bit quantization noise I can use gently sloping filter. Why? Because sound above Nyquist frequency is just a noise. And after downsampling this noise will be "mirrored" back and act as "dithering (shaped) noise", e.g. psychoacoustically will enhance depth (dynamic range).

If I apply such filter to area of 21 kHz, harmonics of audio signal will be "mirrored" back and if you familiar how aliasing sounds it will sounds in this way (e.g. "dirty")

So my conclusion is:
1. Support of 44.1 kHz requires different type of filter.
2. This type of filter has greater CPU usage than high-sample rate filters
3. This type of filter has more quantization errors, which reduces sound quality.
4. This type of filter drops artifacts of SACD sound, which enhance percepting depth of audio image (high-frequency noise). If you listen to SACD, they all have great depth. Look also at the picture of DSD dynamic range.
5. People, who prefer high-quality audio records (24/96 for example) will not listen to them downsampled at 44.1.

That's why there's no 44.1 support. :-)

QUOTE (db1989 @ Sep 9 2012, 23:26) *
I don’t really know where to start with applying TOS #8 to this thread, but I just binned one especially obvious case. If you’d all like to provide some evidence for all this ‘sounds better wow high resolutions’ stuff, or at least stop talking about it, that’d be great.


The quesion is about why this mod is better than original?

1. Support of 96 kHz (original had not).
2. Less CPU usage (about 1.5 times).
3. Single-pass 64-bit internal processing with dithering the result to 32-bit.

Some comments about output dithering. As you know, dithering can psychoacoustically increase depth (dynamic range). For example, for 16-bit it can be increased from 96 dB to around 115 dB. As I said SACDs have great dynamic range so why don't try to increase dynamic range above 24-bit. It's also common knowledge that human ear has dynamic range about 120 dB, but also human ear can adapt to sound volume, so even in quieter parts of record we can hear reverberation tails.
Go to the top of the page
+Quote Post
amiti
post Oct 2 2012, 04:33
Post #17





Group: Members
Posts: 152
Joined: 1-January 05
Member No.: 18746



Question about the dithering: Does the plugin use foobar own dither process (with noise shaping) or tpdf?
Go to the top of the page
+Quote Post
Anakunda
post Oct 4 2012, 15:09
Post #18





Group: Members
Posts: 414
Joined: 24-November 08
Member No.: 63072



I'd have a noob question about SACD conversion:

does this patched decoder at 96kHz produce generally more faithful audio than original SACD plugin with multistage FP double precission at 88.2 kHz

and

is the quality of 96kHz output better quality than 88.2kHz or is that only upsampled 88.2kHz output? I'm curious because SACD 2822400 bits/second can't produce higher output than 88.2kHz.

This post has been edited by Anakunda: Oct 4 2012, 15:09
Go to the top of the page
+Quote Post
SoNic67
post Oct 4 2012, 21:14
Post #19





Group: Members
Posts: 108
Joined: 3-February 11
Member No.: 87877



Probably 96k it will sound worse than 88.1k. At the best case scenario it will sound equal. This is because the fact that SACD/DSD samplerate is a 64 multiple of 44.1kHz, so the conversion to 88.2 or 176.4 leads to better estimated PCM values (less distortions). 96kHz needs to make use of supplemental polyphase FIR filters. Those might not be "heard" by somebody that already uses a sigma-delta DAC that employs internally that kind of filters, but if somebody use a true multibit DAC, that doesn't use any FIR filters inside, then it might hear the difference.

And BTW, based strictly on information capacity, DSD is equal either to 32 bit 88.2kHz PCM or 16 bit 176.4kHz PCM.
Because the state-of-the-art DAC's have only 22bit of actual output resolution (even the ones that claim 32 bit capability), I favor the conversion of DSD to 24bit 176kHz PCM.

This post has been edited by SoNic67: Oct 4 2012, 21:19
Go to the top of the page
+Quote Post
Anakunda
post Oct 4 2012, 21:23
Post #20





Group: Members
Posts: 414
Joined: 24-November 08
Member No.: 63072



QUOTE (SoNic67 @ Oct 4 2012, 22:14) *
Probably 96k it will sound worse than 88.1k. At the best case scenario it will sound equal.


What's the 96kHz target samplerate in patched build good for then?
Then if I decide for decoding target PCM at 88.2kHz, does the patched decoder still provide a quality lead over the original decoder (using multistage double prec)?
Go to the top of the page
+Quote Post
SoNic67
post Oct 5 2012, 01:13
Post #21





Group: Members
Posts: 108
Joined: 3-February 11
Member No.: 87877



Well, there are many sound cards that work nativelly only at 48/96 kHz, because they have just one clock on-board. Windows will upsample automatically the 44.1 to 48 via DirectSound, but it doesn't do a good job. Only using ASIO or WASAPI you can be sure of the real capabilities.

This post has been edited by SoNic67: Oct 5 2012, 01:13
Go to the top of the page
+Quote Post
Anakunda
post Oct 5 2012, 07:25
Post #22





Group: Members
Posts: 414
Joined: 24-November 08
Member No.: 63072



Unfortunatelly neither WASAPI nor ASIO seems to be supported with my audio card for 88.2kHz rate streams.
If my desired input for conversion of SACD is PCM at 96kHz / 24-bit / 2 channels, what of listed ways is the less lossy (ie. retains the most of SACD dynamics for converter)?

1. Use patched foo_input_sacd with target set to 96kHz
2. Use patched foo_input_sacd with target set to 88.2kHz, then upsample by SoX with dithering to 96kHz
3. Use standard foo_input_sacd with multistage double precission and output 88.2kHz, then upsample by SoX with dithering to 96kHz
4. Use standard foo_input_sacd with multistage double precission and output 176.4kHz, then downsample by SoX with dithering to 96kHz (this method probably narrows the stream to 16 bit samples)

Not sure which methods retain 24 bits and which not.
Go to the top of the page
+Quote Post
SoNic67
post Oct 5 2012, 17:51
Post #23





Group: Members
Posts: 108
Joined: 3-February 11
Member No.: 87877



I personally like the job done by SoX upsampling.

There is not a "retaining 24 bit" per se, DSD is 1 bit stream. Conversion at 176kHz is done with full 24 bit. Now, I am not sure how much real information you get in those 24 bit at the top end of the spectrum (over 50-60 kHz of analog) versus the 88kHz (that limits the analog BW at 40-42kHz). SNR for DSD drops drastically past 50kHz.
But... probably is not enough to make a difference, especially when a lot of my SACD's, from classic rock albums, don't go past 18kHz in musical program (probably the original analog tapes limit).

This post has been edited by SoNic67: Oct 5 2012, 17:57
Go to the top of the page
+Quote Post
amiti
post Apr 3 2013, 15:43
Post #24





Group: Members
Posts: 152
Joined: 1-January 05
Member No.: 18746



QUOTE (vladg @ Aug 25 2012, 18:44) *
Hi guys!

This plugin (foo_input_sacd_hq) is patched version of Super Audio CD Decoder plugin v0.5.11 with added high-quality DSD->PCM 88.2/96 kHz conversion.

http://dl.dropbox.com/u/18475891/foo_input_sacd_hq.zip

Technical details of patched version:

- single-pass double precision processing;
- 24-bit dithering;
- SSE2 required;
- 88.2 kHz sample rate support (32x downsampling);
- 96 kHz sample rate support (5/147 polyphase filter);
- 2.8 mHz DSD stream support;
- filters were selected by ear.


QUOTE (vladg @ Sep 9 2012, 23:31) *
The quesion is about why this mod is better than original?

1. Support of 96 kHz (original had not).
2. Less CPU usage (about 1.5 times).
3. Single-pass 64-bit internal processing with dithering the result to 32-bit.


Can you clarify please?

Is the 64-bit wordlength dithered at 24 bit or at 32 bit?
Or maybe dither noise is added at the 24th bit but the data truncated at 32 bit?

Go to the top of the page
+Quote Post
audiogene
post Apr 4 2013, 16:54
Post #25





Group: Members
Posts: 2
Joined: 3-August 08
Member No.: 56633



Aside from your question which I cannot answer either the patched plugin is not working in recent foobar versions. I tried it out because I wanted to carry out some research about the plugin's quality but foobar refused to install it.

Does anybody have some advice which is the proper (most "audiophile") setup for the offline conversion of DSD->PCM with the original foo_input_sacd plugin (not taking into account CPU load).

I am not interested in an answer regarding the (re-)sample rate (which I will chose dependent on the highest *usable* frequencies in the DSD material, which oftentimes does not go beyond 22kHz). I am interested in answers about the best sounding cut-off filters - and/or the theoretically best ones. And is there a single answer to the question if double precision or floating point math is sounding better (and again: should be theoretically better)?

Thanks for all contributions - theoretical and practical ones wink.gif

/audiogene

This post has been edited by audiogene: Apr 4 2013, 16:55
Go to the top of the page
+Quote Post

2 Pages V   1 2 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 16th April 2014 - 18:54