I'm very sorry that the link I showed has been withdrawn by the author because of some complicated issues.
On his blog page Sunacchi released again his WAV to DSDIFF Converter that supports a direct conversion from 44.1 kHz/16 bit PCM WAV to DSD256 wav2dff.zip. The version is 1.5.
Moreover, YUKI-SAN, prepared an associated GUI program for the converter.
Wav2DffGui_015_010001.zip. The GUI program requires .NET 4.0 frame work installed in your PC.
The new version of WAV2DFF.exe enables a multi-thread processing and the use of 65536 taps in FIR calculation.
You need to put the WAV2DFF.exe, vcomp90.dll and Wav2DffGui.exe in the same folder.
Moreover, YUKI-SAN, prepared an associated GUI program for the converter.
Wav2DffGui_015_010001.zip. The GUI program requires .NET 4.0 frame work installed in your PC.
The new version of WAV2DFF.exe enables a multi-thread processing and the use of 65536 taps in FIR calculation.
You need to put the WAV2DFF.exe, vcomp90.dll and Wav2DffGui.exe in the same folder.
Bunpei,
I downloaded the zipped files, extracted them and placed WAV2DFF.exe, vcomp90.dll and Wav2DffGui.exe in a new folder.
Running the programmes results in nothing but two "i" messages in what must be Japanese (I do not have Japanese character text installed in my system).
Any ideas what my mistakes are?
Cheers
David
I downloaded the zipped files, extracted them and placed WAV2DFF.exe, vcomp90.dll and Wav2DffGui.exe in a new folder.
Running the programmes results in nothing but two "i" messages in what must be Japanese (I do not have Japanese character text installed in my system).
Any ideas what my mistakes are?
Cheers
David
Oh, the GUI program shows an initial confirmation dialog in Japanese!
Its meaning is "Start a conversion process? [YES] [NO]"
Please click [YES] button to proceed.
Its meaning is "Start a conversion process? [YES] [NO]"
Please click [YES] button to proceed.
The software with GUI works perfectly here. A 44k1 50MB WAV file is - after a few minutes on my 4 core computer - converted into a 760MB DSD256 file 🙂
There are a few options, and I do not understand most fo them:
normalise offset
Kaiser window alpha value
tap count
7th noise shaper pattern number
I used the default values.
Bunpei, thank you for sharing us the link to the software!
/S
There are a few options, and I do not understand most fo them:
normalise offset
Kaiser window alpha value
tap count
7th noise shaper pattern number
I used the default values.
Bunpei, thank you for sharing us the link to the software!
/S
The software with GUI works perfectly here. A 44k1 50MB WAV file is - after a few minutes on my 4 core computer - converted into a 760MB DSD256 file 🙂
There are a few options, and I do not understand most fo them:
normalise offset
Kaiser window alpha value
tap count
7th noise shaper pattern number
I used the default values.
Bunpei, thank you for sharing us the link to the software!
/S
+1 finally can use it, many thanks Bunpei & KOON3876🙂
There are a few options, and I do not understand most fo them:
normalise offset
Kaiser window alpha value
tap count
7th noise shaper pattern number
These options are associated with internal parameters.
PCM to DSD conversion consists from two major steps.
1. Upsampling from 44.1kHz to 11.2896MHz (x 256)
Zero insertion and low pass filtering by a FIR digital filter
2. Delta-Sigma modulation
A. Tap counts
The number of taps used in the FIR digital filter
In general, the bigger number brings the better sounds. However, the longer processing time.
B. Kaiser window alpha value
The digital LPF uses a "window" function (the same term that appears in DFT(Discrete Fourier Transform))
Kaiser type window has a characteristic parameter "alpha" which determines a shape of window.
C. Normalization offset
In the FIR calculation for x 256 upsampling, a default normalization factor is 256. However, when an input sound data has a "clipping", it causes abnormality in the calculation. In order to avoid the error, an "offset" value for adjustment was introduced by Sunacchi as a work-around.
If your source contains clippings, you need to set a certain negative value, for example, -5 for this option. In this example, the effective normalization factor is 256+(-5)=251.
D. Pattern number for control parameter set
A noise shaper is a digital control circuit with a feedback. A z-transform notation is used for defining its transfer function. The noise shaper employed in the program is of 7th order. In general, the stability of the function can be estimated by the positions of "poles" and "zeros" in a Z-plane.
In this program, values of parameter zero are predefined in several sets. The pattern number is used to select one of the set.
To Koon,
If you find anything incorrect in the explanation above, please don't hesitate to point-out them.
Bunpei
Hi Bunpei
Yes, 'Clipping' Wave signal + LPF = more than 1.0 = inverted, and cause noise.
Good example will be, square wave + LPF = ringing or overshoot.
Some compression or normalization are required.
Yes, 'Clipping' Wave signal + LPF = more than 1.0 = inverted, and cause noise.
Good example will be, square wave + LPF = ringing or overshoot.
Some compression or normalization are required.
By the way.. this is compression function I'm using now.
attached plot shows input range 0.80 to 1.30 is compressed below 1.0 from value 0.90, very smooth
Compression: no effect for small signal, total dynamic range is compressed.
normalization: no effect for total dynamic range but all signal reduced
Code:
#include <math.h>
float sigmoid2(float input, float limit)
{
//sigmoid function to compress input signal.
//input signal = any range
// 0 < limit < 1.0, compression starts from this value
// 4.0 at gain comes from derivative of sigmoid function (at x=0 delta=gain/4.0 )
// output is compressed between -1.0 to 1.0
// convert_param is to convert sigmoid output(0.50 to 1.0) to (limit to 1.0)
double convert_param = (1.0/(1.0 - limit))/2.0;
double gain = 4.0 * convert_param;
double sigmoid;
double ret;
if (input > limit)
{
sigmoid = 1.0 / (1.0 + exp(-1.0 * gain * (input - limit)));
ret = limit + (sigmoid - 0.50) / convert_param;
return (float)ret;
}
if (input < -1.0 * limit)
{
sigmoid = 1.0 / (1.0 + exp(-1.0 * gain * (input + limit)));
ret = -1.0 * limit + (sigmoid - 0.50) / convert_param;
return (float)ret;
}
return (float)input;
}
Compression: no effect for small signal, total dynamic range is compressed.
normalization: no effect for total dynamic range but all signal reduced
Attachments
By the way.. this is compression function I'm using now.
Dear Koon,
Thank you very much for showing your compressor code. I told this to Sunacchi.
As for applying your CUDA and AVX or SSE FIR converter techniques to WAV to DSDIFF converter, we are not ready for adopting them. None of us have any NVIDIA graphic cards on our PC.
Best regards,
Bunpei
Thank you, Bunpei-san, for the explanation of the parameters!
Rather advanced software conversion algorithms must be used. I want, of course, the best sonical quality possible, and long conversion times do not scare me, but even after reading your explanations a few times, I cannot decide what gives the best sonical conversion quality except that Tap Cpunt should be as large as possible.
BTW, porting the time consuming code into CUDA code, would be great. I mostly use NVIDIA graphics cards 🙂 Aimersoft´s video conversion software that I use, can use NVIDIA graphic cards for around 5X faster conversion for certain type of files.
Best regards,
S.
Rather advanced software conversion algorithms must be used. I want, of course, the best sonical quality possible, and long conversion times do not scare me, but even after reading your explanations a few times, I cannot decide what gives the best sonical conversion quality except that Tap Cpunt should be as large as possible.
BTW, porting the time consuming code into CUDA code, would be great. I mostly use NVIDIA graphics cards 🙂 Aimersoft´s video conversion software that I use, can use NVIDIA graphic cards for around 5X faster conversion for certain type of files.
Best regards,
S.
These options are associated with internal parameters.
PCM to DSD conversion consists from two major steps.
1. Upsampling from 44.1kHz to 11.2896MHz (x 256)
Zero insertion and low pass filtering by a FIR digital filter
2. Delta-Sigma modulation
A. Tap counts
The number of taps used in the FIR digital filter
In general, the bigger number brings the better sounds. However, the longer processing time.
B. Kaiser window alpha value
The digital LPF uses a "window" function (the same term that appears in DFT(Discrete Fourier Transform))
Kaiser type window has a characteristic parameter "alpha" which determines a shape of window.
C. Normalization offset
In the FIR calculation for x 256 upsampling, a default normalization factor is 256. However, when an input sound data has a "clipping", it causes abnormality in the calculation. In order to avoid the error, an "offset" value for adjustment was introduced by Sunacchi as a work-around.
If your source contains clippings, you need to set a certain negative value, for example, -5 for this option. In this example, the effective normalization factor is 256+(-5)=251.
D. Pattern number for control parameter set
A noise shaper is a digital control circuit with a feedback. A z-transform notation is used for defining its transfer function. The noise shaper employed in the program is of 7th order. In general, the stability of the function can be estimated by the positions of "poles" and "zeros" in a Z-plane.
In this program, values of parameter zero are predefined in several sets. The pattern number is used to select one of the set.
To Koon,
If you find anything incorrect in the explanation above, please don't hesitate to point-out them.
Bunpei
I have problems converting files, converter shows attached pic, coul you help me please?
The message is issued by GUI program. It says "Output file folder is invalid."
Please click "Options" button on the GUI program screen and select proper folder for your output file at the bottom line of the "Options" screen.
Hi Bunpei, I'd like to ask you a question about DSD to DSD upsampling. I've sent you a PM but your mailbox is full, any way to contact you? could you PM me an email address?
Cheers
Cheers
Hi, Jackal29a,
Would you please send me a usual Internet e-mail?
bunpei<at>ta2<dot>so-net<dot>ne<dot>jp
Korg AudioGate provides DSD64 to DSD128 conversion. For DSD64 to DSD256, you need to follow more complicated procedures.
Would you please send me a usual Internet e-mail?
bunpei<at>ta2<dot>so-net<dot>ne<dot>jp
Korg AudioGate provides DSD64 to DSD128 conversion. For DSD64 to DSD256, you need to follow more complicated procedures.
The first message:
Is it OK to start conversion?
The second message:
Completed!
Both indicate nothing abnormal.
Is it OK to start conversion?
The second message:
Completed!
Both indicate nothing abnormal.
Resurrecting this old tread,
is it worth to this route,
what schema of DSD amplifier is good to test?
is it worth to this route,
what schema of DSD amplifier is good to test?
- Status
- Not open for further replies.
- Home
- Source & Line
- Digital Source
- DSD Playback system, DSF Player + USB DDC + DSD Amplifier