DSD-2-PCM -- proof of concept, test sample and source code here |
- 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 |
Oct 8 2005, 23:55
Post
#1
|
|
![]() Group: Developer Posts: 1317 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)
|
|
|
|
![]() |
Nov 24 2009, 21:39
Post
#2
|
|
|
Group: Members Posts: 12 Joined: 7-September 09 Member No.: 72985 |
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. 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. 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 |
|
|
|
Nov 25 2009, 03:00
Post
#3
|
|
|
Group: Developer Posts: 1126 Joined: 11-February 03 From: Germany Member No.: 4961 |
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? |
|
|
|
Nov 25 2009, 04:20
Post
#4
|
|
|
Group: Members Posts: 12 Joined: 7-September 09 Member No.: 72985 |
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 |
|
|
|
Nov 25 2009, 05:25
Post
#5
|
|
|
Group: Members Posts: 4132 Joined: 2-September 02 Member No.: 3264 |
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 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 |
|
|
|
Nov 25 2009, 05:29
Post
#6
|
|
|
Group: Members Posts: 12 Joined: 7-September 09 Member No.: 72985 |
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 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 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 |
|
|
|
Nov 25 2009, 05:55
Post
#7
|
|
|
Group: Members Posts: 4132 Joined: 2-September 02 Member No.: 3264 |
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 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. |
|
|
|
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
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![]() ![]() |
|
Lo-Fi Version | Time is now: 21st May 2013 - 22:20 |