Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: audio2
On Tue, May 28, 2019 at 20:25:33 +0300, Andreas Gustafsson wrote:
> On May 23, Valery Ushakov wrote:
> > This feels inverted. The mathematically correct operation required
> > here is symmetric division (that rounds towards zero).
>
> Rounding towards zero is absolutely the wrong thing to do for audio,
> because it introduces a discontinuity, which in turn causes
> unnecessary distortion of the audio.
>
> For example, if your original signal is a linear ramp
>
> ... -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 ...
>
> and you divide it by two rounding towards zero, you get
>
> ... -2, -2, -1, -1, 0, 0, 0, 1, 1, 2, 2 ...
>
> where every value is repeated twice, except that the value zero occurs
> three times, so the ramp is no longer linear - it now has a visible
> and audible kink in the middle. And this kink is in the worst
> possible place of the amplitude scale, at zero where it will affect
> even the weakest signals, distorting every zero crossing.
>
> The proper way to do audio scaling is using dither, but failing that,
> at least the values should be consistently rounded either up or down,
> which will at worst introduce a small DC offset which you can't hear,
> but no crossover distortion.
Thanks a lot for the explanation!
Now, you omit the most critical bit: what would you name the thing? :)
From "the proper way to do audio scaling" I infer that AUDIO_SCALEDOWN
(or however that was spelled) should be ok, shouldn't it?
-uwe
Home |
Main Index |
Thread Index |
Old Index