IPB

Welcome Guest ( Log In | Register )

> Upload forum rules

- No over 30 sec clips of copyrighted music. Cite properly and never more than necessary for the discussion.


- No copyrighted software without permission.


- Click here for complete Hydrogenaudio Terms of Service

DSD-2-PCM -- proof of concept, test sample and source code here
SebastianG
post Oct 8 2005, 23:55
Post #1





Group: Developer
Posts: 1318
Joined: 20-March 04
From: Göttingen (DE)
Member No.: 12875



The ZIP contains 4 files:
- dsd2pcm.jar (the converter written in Java, outputs raw 24/88 PCM, intel byte order)
- info.txt (contains some infos)
- test2822k.dsd (14 seconds, mono DSD, 5 megs)
- test44k.mp3 (conversion result)

have fun,
Sebi

Edit-2011: For the latest C/C++ source code see https://code.google.com/p/dsd2pcm/ It is released under the new BSD license. The attatchment to this post is still the first Java release.



This post has been edited by SebastianG: Dec 4 2011, 17:45
Attached File(s)
Attached File  dsd2pcm.zip ( 3.56MB ) Number of downloads: 2837
 
Go to the top of the page
+Quote Post
 
Start new topic
Replies
LukeS
post Nov 24 2009, 21:39
Post #2





Group: Members
Posts: 12
Joined: 7-September 09
Member No.: 72985



QUOTE (rpp3po @ Nov 24 2009, 08:01) *
The problem with the "most accurate capture" is that DSD players do 'know' that terrible amounts of noise are there and their analog low-pass probably reaches far enough down to compensate somewhat. PCM doesn't have this problem, a good 96 kHz DAC will roughly output at least 40 kHz of perfect analog bandwidth. This would be a capture of the full digital DSD signal, but probably not an accurate capture of the equivalent DSD low passed 'experience'.

My Denon player has a setting labled "SACD Filter" which can be set to 50kHz or 100kHz. I do not know what it is set to because I just got the player used a few days ago and it doesn't have a remote so I do not have access to the menu. I have ordered a remote and once it comes I will go through and turn off any audio post processing options I can. It the option is set to 50kHz, changing it to 100kHz may help with some of the noise I am getting.

I am very new to the SACD format but I am interested in picking up a second hand SACD player that outputs DSD over HDMI and trying to grab the DSD signals before they get encrypted and sent over HDMI, it may offer a less altered signal.


QUOTE (Canar @ Nov 24 2009, 09:49) *
I'd suggest keeping the originals as un-converted DSD and just decode to PCM on the fly using a foobar2000 component or something. I'm not sure that one exists currently, but having a library of lossless DSD material is probably preferable to the same material in PCM-decoded form. One less source of loss...

My plan exactly, I will keep the originals for archival purposes and make a copy that is converted it to a lossless PCM format like FLAC if a good conversion becomes available.

QUOTE (rpp3po @ Nov 24 2009, 11:23) *
Raw DSD means saving about 3 GB per 70 minute stereo album. Kind of a waste when you can save 48kHz files, that should perfectly* preserve the 0-22 kHz band, and only need about 475 MB (FLAC). That's over 2.5 GB wasted, not for discarded but inaudible recorded information but plain quantization distortion, added by an inferior form of digitalization. Why save 2.5 GB of garbage per album? Has there ever been just one solid positive blind test for DSD?

* talk about differences of -110db or lower

A couple things here...
48kHz files do not preserve 0-22kHz band perfectly, the brick wall effect means that the high pass filters have to cut into much lower frequencies for seamless playback.

Storage is cheap nowadays and will keep getting cheaper, I keep all my music on a NAS server. You can buy a 1.5TB drives for less then $100 each which is about 500 SACD albums depending how many tracks they have one them and over then next few years it will cost even less to store.

There is one important feature of SACDs that CD's do not offer, multi channel audio. Many albums do not have any other multichannel format like DVD-A, blu-ray so SACD is the only option.

Also the storage could be greatly reduced is a loss less container format was made to store the raw DSD channels.

This post has been edited by LukeS: Nov 24 2009, 21:50
Go to the top of the page
+Quote Post
rpp3po
post Nov 25 2009, 03:00
Post #3





Group: Developer
Posts: 1126
Joined: 11-February 03
From: Germany
Member No.: 4961



QUOTE (LukeS @ Nov 24 2009, 21:39) *
48kHz files do not preserve 0-22kHz band perfectly, the brick wall effect means that the high pass filters have to cut into much lower frequencies for seamless playback.


I think you'll have a hard time explaining this, because it's simply not true. What's the "brick wall effect"? Do you have that from Stereophile magazine?
Go to the top of the page
+Quote Post
LukeS
post Nov 25 2009, 04:20
Post #4





Group: Members
Posts: 12
Joined: 7-September 09
Member No.: 72985



QUOTE (rpp3po @ Nov 24 2009, 21:00) *
QUOTE (LukeS @ Nov 24 2009, 21:39) *
48kHz files do not preserve 0-22kHz band perfectly, the brick wall effect means that the high pass filters have to cut into much lower frequencies for seamless playback.


I think you'll have a hard time explaining this, because it's simply not true. What's the "brick wall effect"? Do you have that from Stereophile magazine?


This is not from some magazine; I don't read those audiophile \ home audio magazines. This is basic signal processing, learned it in my EE classes in college and has been reinforced by stuff I have done in practice and what I have read in professional technical publications. You can read about this in any DSP textbook too.

The "brick wall" is an easy way of saying the frequency cutoff due to nyquist frequency which is half the sample rate. You can not accurately capture frequencies above the nyquist frequency. The problem when converting audio into 44.1kHz or 48kHz is the audio you are going to convert can not contain frequencies above 22.05kHz or 44kHz respectively. All data sampled at higher sample rates (which master recordings are) contains higher frequency information then lower sample rate data unless the "brick wall" low pass filter was purposely set below the nyquist frequency.

A low pass filter is required to cutoff frequencies above the nyquist frequency to eliminate picking up aliasing of higher then nyquist frequency, frequency components of the original input waveform. This filter distorts and attenuates high frequencies near the low pass filter cut off point because if the filter was setup to be a sharp low pass filter it would cause auditable high frequency distortions. Whether most people can hear this is arguable but the affect is there and that is just another reason why high fedility formats like 96kHz are nice. DSD also does not suffer from this brick wall low pass filter problem.

It is also worth saying that 48kHz will not suffer as bad as CD 44.1kHz from this effect.

There are references to this all over the place but here is a reference I can remember and another explanation from a AES technical paper I read a a month or so ago on HDCD.

QUOTE
It is now clear that the very sharp cutoff "brick wall" filter required to represent an audio signal in digital form with a sampling rate only slightly higher than twice the audible frequency range does cause problems. This issue will be discussed in more depth below.

..

One can predict that fast cut off low pass filters could be problematic. The sharp removal of higher frequency sidebands creates response ripples from rapidly swept sine waves. These will alter peak energy at basilar membrane sites. In addition, ringing responses near transient events can mix with low level harmonics in the signal to create short beats. [17] One can perform simple experiments to demonstrate that both of these are audible.

The necessity of having a sharp cut-off brick wall anti-alias filter in a digital system in order accommodate a sampling frequency near the minimum necessary for the audio band is bound to create some distortions to sound envelopes. This can be easily demonstrated: If one measures the frequency response of such a low pass filter with a very slow frequency sweep, one gets the classical rectangular envelope. If, on the other hand, one increases the sweep speed, the envelope becomes full of ripples because the faster sweep produces sidebands which fall above the cutoff frequency of the filter. Removing the filter restores the rectangular envelope even for the fast sweep. Listening tests have shown that sweeps with different envelopes but the same spectral content do sound different, although it is very difficult to eliminate all system related sources of confusion in these tests.

Music can contain very complex high frequencies which produce complicated envelopes. It is a logical extension of the above results that if removing high frequencies, which in themselves may not be audible, produces changes in the envelope of audible sounds, then a change in those sounds can be heard. Changes in the characteristics of the filters in the neighborhood of their transition regions can have an effect on the behavior of signal envelopes.


There are other areas of the article that discuss how the brick wall nyquist filter affects the lower frequencies. I didn’t feel like rereading the whole thing again to copy and past each reference.

This post has been edited by LukeS: Nov 25 2009, 04:22
Go to the top of the page
+Quote Post
saratoga
post Nov 25 2009, 05:25
Post #5





Group: Members
Posts: 4925
Joined: 2-September 02
Member No.: 3264



QUOTE (LukeS @ Nov 24 2009, 22:20) *
QUOTE (rpp3po @ Nov 24 2009, 21:00) *
QUOTE (LukeS @ Nov 24 2009, 21:39) *
48kHz files do not preserve 0-22kHz band perfectly, the brick wall effect means that the high pass filters have to cut into much lower frequencies for seamless playback.


I think you'll have a hard time explaining this, because it's simply not true. What's the "brick wall effect"? Do you have that from Stereophile magazine?


This is not from some magazine; I don't read those audiophile \ home audio magazines. This is basic signal processing, learned it in my EE classes in college and has been reinforced by stuff I have done in practice and what I have read in professional technical publications. You can read about this in any DSP textbook too.



Thats a very long way of not answering his question at all. Let me try and focus you:

What's the "brick wall effect"? Why does it mean that "high pass filters have to cut into much lower frequencies for seamless playback"? Although I think you meant lowpass not high pass wink.gif

Edit: To be clear, you're claiming that you can't go up to 22kHz with good alias rejection using a 48kHz sampling rate, or rather that a DAC can't accurately reproduce ~.46*fs, which I think is a little nuts.

This post has been edited by Mike Giacomelli: Nov 25 2009, 05:29
Go to the top of the page
+Quote Post
LukeS
post Nov 25 2009, 05:29
Post #6





Group: Members
Posts: 12
Joined: 7-September 09
Member No.: 72985



QUOTE (Mike Giacomelli @ Nov 24 2009, 23:25) *
Thats a very long way of not answering his question at all. Let me try and focus you:

What's the "brick wall effect"? Why does it mean that "high pass filters have to cut into much lower frequencies for seamless playback"? Although I think you meant lowpass not high pass wink.gif


The high pass filter is a typo and after I realized it I was locked out from editing it, apparently there is a edit timeout on this board sad.gif Also I think I explained the brick wall well enough

QUOTE
Edit: To be clear, you're claiming that you can't go up to 22kHz with good alias rejection using a 48kHz sampling rate, or rather that a DAC can't accurately reproduce ~.46*fs, which I think is a little nuts.

I was not referring to the end user DAC \ output side of things, I was referring to input ADC, processing, and down sampling to 48kHz of the original audio data that causes issues. Most people can't here this stuff or care.

This post has been edited by LukeS: Nov 25 2009, 05:47
Go to the top of the page
+Quote Post
saratoga
post Nov 25 2009, 05:55
Post #7





Group: Members
Posts: 4925
Joined: 2-September 02
Member No.: 3264



QUOTE (LukeS @ Nov 24 2009, 23:29) *
Also I think I explained the brick wall well enough


The reason I ask is that a brick wall filter doesn't "distort and attenuates high frequencies near the low pass filter cut off". A brick wall filter is shaped like a brick. Infinite attenuation on one side, unity on the other. I would not call the use of something not a brickwall the brickwall effect smile.gif

QUOTE (LukeS @ Nov 24 2009, 23:29) *
QUOTE
Edit: To be clear, you're claiming that you can't go up to 22kHz with good alias rejection using a 48kHz sampling rate, or rather that a DAC can't accurately reproduce ~.46*fs, which I think is a little nuts.

I was not referring to the end user DAC \ output side of things I am discussing the input ADC, processing, and down sampling to 48kHz of the original audio data that causes issues. Most people can't here this stuff or care.


Yes, and if the filter in a DAC can do it, then the same filter if used in a resampler can also do it. So clearly it would be (and absolutely is) possible.
Go to the top of the page
+Quote Post

Posts in this topic
- SebastianG   DSD-2-PCM -- proof of concept   Oct 8 2005, 23:55
- - skamp   Now you need to develop a DVD-ROM driver for readi...   Oct 9 2005, 01:27
|- - SebastianG   QUOTE (skamp @ Oct 9 2005, 01:27 AM)Now you n...   Oct 9 2005, 10:32
|- - SebastianG   Oh, I noticed a small bug: The dsd file size must ...   Oct 9 2005, 11:06
- - tarsier   So is it theoretically possible to convert the PCM...   Dec 24 2006, 20:33
|- - putanik   QUOTE (tarsier @ Dec 24 2006, 13:33) So i...   Dec 24 2006, 22:54
|- - tarsier   Thanks for the link. But right now, I'm only ...   Dec 26 2006, 16:28
|- - Kees de Visser   QUOTE (tarsier @ Dec 26 2006, 16:28) In d...   Dec 26 2006, 19:03
- - andyshedd   I'm mildly curious how this method compares an...   Jan 8 2007, 22:44
- - frenchglen   Is there any updated info about this program? I tr...   Jun 8 2009, 15:23
- - LukeS   I am bringing this back form years of being dead. ...   Nov 23 2009, 15:56
- - GeSomeone   I think it's in the first post. QUOTE (Sebasti...   Nov 23 2009, 19:12
|- - SebastianG   QUOTE (GeSomeone @ Nov 23 2009, 19:12) I ...   Nov 23 2009, 20:31
- - LukeS   SebastianG, Awesome job on the program, my proble...   Nov 23 2009, 22:32
|- - vincefalks   I am not an expert but it would be cool to compare...   Nov 24 2009, 00:17
|- - rpp3po   What would be a higher quality approach than 1. co...   Nov 24 2009, 02:48
- - SebastianG   QUOTE (LukeS @ Nov 23 2009, 22:32) The ou...   Nov 24 2009, 10:38
- - 2Bdecided   With the huge caveat that I made no attempt to do ...   Nov 24 2009, 12:40
- - vincefalks   The noise is indeed a problem with the DSD format ...   Nov 24 2009, 13:07
|- - rpp3po   The problem with the "most accurate capture...   Nov 24 2009, 14:01
|- - vincefalks   QUOTE (rpp3po @ Nov 24 2009, 15:01) The p...   Nov 24 2009, 14:25
||- - Canar   QUOTE (vincefalks @ Nov 24 2009, 08:25) I...   Nov 24 2009, 15:49
||- - rpp3po   Raw DSD means saving about 3 GB per 70 minute ster...   Nov 24 2009, 17:23
||- - BOBCHEWIE   QUOTE (rpp3po @ Nov 24 2009, 10:23) Raw D...   Jan 3 2010, 12:14
||- - rpp3po   QUOTE (BOBCHEWIE @ Jan 3 2010, 12:14) scr...   Jan 3 2010, 14:15
||- - Axon   QUOTE (BOBCHEWIE @ Jan 3 2010, 05:14) QUO...   Jan 3 2010, 14:22
||- - Martel   QUOTE (BOBCHEWIE @ Jan 3 2010, 12:14) ......   Jan 4 2010, 09:53
|- - Mike Giacomelli   QUOTE (rpp3po @ Nov 24 2009, 08:01) DSD h...   Nov 24 2009, 15:46
- - LukeS   QUOTE (rpp3po @ Nov 24 2009, 08:01) The p...   Nov 24 2009, 21:39
|- - rpp3po   QUOTE (LukeS @ Nov 24 2009, 21:39) 48kHz ...   Nov 25 2009, 03:00
||- - LukeS   QUOTE (rpp3po @ Nov 24 2009, 21:00) QUOTE...   Nov 25 2009, 04:20
||- - Mike Giacomelli   QUOTE (LukeS @ Nov 24 2009, 22:20) QUOTE ...   Nov 25 2009, 05:25
||- - LukeS   QUOTE (Mike Giacomelli @ Nov 24 2009, 23...   Nov 25 2009, 05:29
||- - Mike Giacomelli   QUOTE (LukeS @ Nov 24 2009, 23:29) Also I...   Nov 25 2009, 05:55
|- - vincefalks   QUOTE (LukeS @ Nov 24 2009, 22:39) I am v...   Nov 25 2009, 08:02
|- - knutinh   QUOTE (LukeS @ Nov 24 2009, 21:39) Also t...   Nov 25 2009, 08:36
- - Axon   Look into the dynamic range of SACD at 22khz somet...   Nov 24 2009, 21:56
- - Axon   Yes, let's all thank LukeS for being a boy sco...   Nov 25 2009, 04:59
|- - LukeS   QUOTE (Axon @ Nov 24 2009, 22:59) Yes, le...   Nov 25 2009, 05:21
||- - Martel   QUOTE (LukeS @ Nov 25 2009, 05:21) The bo...   Nov 25 2009, 10:24
|- - 2Bdecided   QUOTE (Axon @ Nov 25 2009, 03:59) Sorry f...   Nov 25 2009, 12:13
|- - udauda   QUOTE (Axon @ Nov 24 2009, 19:59) You...   Nov 26 2009, 02:31
|- - 2Bdecided   QUOTE (udauda @ Nov 26 2009, 01:31) Does ...   Nov 26 2009, 11:46
|- - vincefalks   QUOTE (2Bdecided @ Nov 26 2009, 12:46) Li...   Nov 26 2009, 12:02
|- - rpp3po   Yawn! Am I really the last one to get where t...   Nov 26 2009, 12:37
|- - vincefalks   QUOTE (rpp3po @ Nov 26 2009, 13:37) Yawn...   Nov 26 2009, 13:10
|- - rpp3po   At least you seem believe the life-like-analog-sou...   Nov 26 2009, 13:25
|- - vincefalks   QUOTE (rpp3po @ Nov 26 2009, 14:25) At le...   Nov 26 2009, 13:40
- - LukeS   QUOTE (vincefalks @ Nov 25 2009, 02:02) Q...   Nov 25 2009, 09:16
|- - SebastianG   QUOTE (LukeS @ Nov 25 2009, 09:16) See th...   Nov 25 2009, 10:32
|- - knutinh   QUOTE (LukeS @ Nov 25 2009, 09:16) DST wo...   Nov 25 2009, 18:02
|- - simmconn   QUOTE DST would work but I have not found a no low...   Nov 26 2009, 01:31
|- - vincefalks   QUOTE (simmconn @ Nov 26 2009, 02:31) QUO...   Nov 26 2009, 03:38
- - rpp3po   Sorry, if I didn't express myself clearly enou...   Nov 25 2009, 12:04
- - Axon   It's a surprisingly well known mod, actually. ...   Nov 25 2009, 19:38
|- - rpp3po   I find it interesting, nevertheless. What equipmen...   Nov 25 2009, 20:38
- - LukeS   Wow, I really am messing thing up lately ; I got ...   Nov 26 2009, 07:27
|- - simmconn   And I just spent one and a half hours to encode an...   Nov 26 2009, 08:16
- - 2Bdecided   Yes, the distortions of SACD are inaudible. Especi...   Nov 26 2009, 15:57
- - Canar   So that's what they mean by "warm" s...   Nov 26 2009, 16:22
- - Axon   If SACD really did have a similar distortion profi...   Nov 26 2009, 21:14
- - SebastianG   Just for kicks and giggles I rewrote most of ...   Nov 27 2009, 03:26
|- - vincefalks   QUOTE (SebastianG @ Nov 27 2009, 03:26) J...   Nov 27 2009, 03:44
|- - SebastianG   QUOTE (vincefalks @ Nov 27 2009, 03:44) T...   Nov 27 2009, 04:14
||- - vincefalks   QUOTE (SebastianG @ Nov 27 2009, 04:14) S...   Nov 27 2009, 05:11
||- - Kees de Visser   There seems to be a growing (niche) market for onl...   Nov 27 2009, 09:02
||- - 2Bdecided   QUOTE (vincefalks @ Nov 27 2009, 04:11) N...   Nov 27 2009, 10:59
||- - rpp3po   QUOTE (vincefalks @ Nov 27 2009, 05:11) N...   Nov 27 2009, 12:55
|||- - 2Bdecided   QUOTE (rpp3po @ Nov 27 2009, 11:55) An an...   Nov 27 2009, 13:00
||- - krabapple   QUOTE (vincefalks @ Nov 26 2009, 23:11) T...   Nov 29 2009, 03:56
|- - rpp3po   QUOTE (vincefalks @ Nov 27 2009, 03:44) H...   Nov 27 2009, 04:16
- - LukeS   QUOTE (SebastianG @ Nov 26 2009, 21:26) J...   Nov 27 2009, 07:33
|- - smack   QUOTE (LukeS @ Nov 27 2009, 07:33) Window...   Nov 27 2009, 11:00
- - .halverhahn   DXD is PCM - just with a bunch of noise above 48kH...   Nov 27 2009, 15:34
|- - rpp3po   Wow! The DXD track is certainly nothing Bruce ...   Nov 27 2009, 17:47
- - spoon   As the noise is constant this shows the levels qui...   Nov 29 2009, 20:54
- - spoon   QUOTE The final amusing aspect to all this is that...   Nov 29 2009, 22:51
|- - krabapple   QUOTE (spoon @ Nov 29 2009, 16:51) QUOTE ...   Nov 30 2009, 06:33
- - spoon   Based on Sebastians good work I have wrapped the d...   Dec 1 2009, 17:49
- - kode54   @spoon: I presume you modified the stage 1 filter ...   Dec 1 2009, 19:55
- - spoon   I thought it was a command line option on dsd2pcm?   Dec 1 2009, 20:15
|- - kode54   QUOTE (spoon @ Dec 1 2009, 11:15) I thoug...   Dec 7 2009, 15:32
- - krabapple   This is all peachy for those recording DSD files o...   Dec 2 2009, 06:56
|- - BOBCHEWIE   QUOTE (krabapple @ Dec 1 2009, 23:56) Thi...   Jan 3 2010, 13:33
- - spoon   I might be wrong, but I do not think there are any...   Dec 2 2009, 09:55
|- - krabapple   QUOTE (spoon @ Dec 2 2009, 03:55) I might...   Dec 2 2009, 17:23
- - Martel   QUOTE There are three types of SACDs[9]: * Hy...   Dec 2 2009, 10:35
- - .halverhahn   Just for your information: Wheatus is offering The...   Dec 2 2009, 11:38
|- - 2Bdecided   QUOTE (.halverhahn @ Dec 2 2009, 10:38) J...   Dec 2 2009, 15:11
- - vincefalks   Ok finally my warning was lifted after a little si...   Dec 7 2009, 17:55
|- - krabapple   QUOTE (vincefalks @ Dec 7 2009, 11:55) QU...   Dec 7 2009, 18:26
|- - 2Bdecided   QUOTE (vincefalks @ Dec 7 2009, 16:55) I...   Dec 7 2009, 18:33
|- - spoon   Did anyone manage to decode a .dsf file? (such as ...   Dec 8 2009, 10:21
- - Martel   A (square analog) pulse has an infinitely wide spe...   Dec 7 2009, 18:26
- - udauda   I wonder, how come Pro-DSD never comes up with a s...   Jan 4 2010, 13:39
- - rpp3po   Excellent paper, thanks!   Jan 4 2010, 14:31
- - krabapple   I remember this one from a few years back....I for...   Jan 8 2010, 22:05
- - ElfeJoyeux   Hello, I just discovered this awesome topic durin...   Mar 11 2010, 22:34
|- - Hobbit13   QUOTE (ElfeJoyeux @ Mar 11 2010, 22:34) T...   Jul 19 2010, 10:48
- - Sik_Lescinovid   Has anyone so far noticed that when creating a 24 ...   Nov 27 2011, 18:28
2 Pages V   1 2 >


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

 



RSS Lo-Fi Version Time is now: 2nd September 2014 - 13:43