Details here, I guess
https://www.processing-leedh.com/copie-de-presentation
@mansr that doesn't totally look like BS to me
Take a look at the input signal:
...and the output signal. Notice what? The spikes are doubled. How can this be "distortion-free"?
The fallacy is the use of non-dithered 16-bit input signal. A dithered input signal doesn't have these harmonics. Since mansr is here so let's do this with SoX. Save the text below as a .CMD file, put it in the SoX directory then double click it:
Code:
@echo off
sox -V -n -b 16 input.wav synth 22 sin 1500 gain -.0004
sox -V input.wav -b 24 output.wav gain -20 dither -p 20 stats
pause
The first line generates a 1500Hz tone in SoX's native bit-depth (32) at -0.0004dBFS, then dithers to 16-bit and saves as "input.wav".
The second line takes "input.wav" as input, reduces 20dB and dithers to 20-bit (-p 20), then saves as "output.wav". WAV file does not allow 20-bit so the 20-bit data need to be padded to 24-bit.
If there is no error, then you will see an output like this:
Code:
sox: SoX v14.4.2
sox INFO nulfile: sample rate not specified; using 48000
Input File : '' (null)
Channels : 1
Sample Rate : 48000
Precision : 32-bit
Output File : 'input.wav'
Channels : 1
Sample Rate : 48000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no
Comment : 'Processed by SoX'
sox INFO sox: effects chain: input 48000Hz 1 channels
sox INFO sox: effects chain: synth 48000Hz 1 channels
sox INFO sox: effects chain: gain 48000Hz 1 channels
sox INFO sox: effects chain: dither 48000Hz 1 channels
sox INFO sox: effects chain: output 48000Hz 1 channels
sox: SoX v14.4.2
sox INFO formats: detected file format type `wav'
Input File : 'input.wav'
Channels : 1
Sample Rate : 48000
Precision : 16-bit
Duration : 00:00:22.00 = 1056000 samples ~ 1650 CDDA sectors
File Size : 2.11M
Bit Rate : 768k
Sample Encoding: 16-bit Signed Integer PCM
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no
Output File : 'output.wav'
Channels : 1
Sample Rate : 48000
Precision : 24-bit
Duration : 00:00:22.00 = 1056000 samples ~ 1650 CDDA sectors
Sample Encoding: 24-bit Signed Integer PCM
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no
Comment : 'Processed by SoX'
sox INFO sox: effects chain: input 48000Hz 1 channels
sox INFO sox: effects chain: gain 48000Hz 1 channels
sox INFO sox: effects chain: dither 48000Hz 1 channels
sox INFO sox: effects chain: stats 48000Hz 1 channels
sox INFO sox: effects chain: output 48000Hz 1 channels
DC offset 0.000000
Min level -0.099998
Max level 0.099998
Pk lev dB -20.00
RMS lev dB -23.01
RMS Pk dB -23.01
RMS Tr dB -23.04
Crest factor 1.41
Flat factor 0.00
Pk count 7.96k
Bit-depth 17/20
Num samples 1.06M
Length s 22.000
Scale max 1.000000
Window s 0.050
Press any key to continue . . .
Notice near the end of the console output shows "Bit-depth 17/20", indicates the effect of 20-bit dithering, with 20dB reduction there are 17 bits of integer precision. Now put these two files in DeltaWave:
Obviously the blue one is the original file, the white one is 20dB reduced. No spikes whatsoever. Also the use of 20-bit output in that article is completely silly, why don't just use 24-bit?