Re: Dithering...should we dither about it?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/02/2014 04:38 AM, Harry van Haaren wrote:
On Sun, Mar 2, 2014 at 2:43 AM, david <gnome@xxxxxxxxxxxxx
<mailto:gnome@xxxxxxxxxxxxx>> wrote:
 > On 03/01/2014 08:51 AM, Harry van Haaren wrote:
 >> I generally export to 32bit float .flac... so no dithering (or burning
 >> to CD's :)
 > Hmm, I thought FLAC only did 24-bit???
I think the FLAC spec says it will handle anything from 4-32 bit-depth:
https://xiph.org/flac/faq.html#general__samples
That said, Audacity only has FLAC export options of 16 & 24 bit depths.
Ardour supports 8, 16 and 24. Still no 32 bit float support (at
application level).

24bit integer is equivalent to 32bit float in terms of resolution, and pretty much identical as long as the float samples are clamped between -1.0f and 1.0f.

I should correct my previous statement though: I *thought* I exported
32bit float: but it turns out they're 24bits (from Ardour3), dithering
set to None. And cropping the resulting output in Audacity and exporting
was to 16-bit PCM, so I was actually doing this all wrong (no dithering,
32 -> 24 -> 16).

A better workflow would be to:
A) Ardour export 32 bit float -> 16bit (with dither) -> Audacity 16bit
in, crop, 16bit out
B) Ardour export 32 bit -> 24 bit (no dither) -> Audacity 24bit in,
crop, export 16bit (with dither).

The important part being to not dither twice, since then you'll be
adding noise to the signal twice!

actually, you *must* dither at every truncation step - if you don't, you will lose information _and_ introduce signal-dependent requantisation noise, which can never be removed again. so the best approach is to only reduce the wordlength once, at the very end of the chain, before going to CD.

some mastering people (bob katz among them) even go as far as demanding dither at every level control in the chain.

however, if you are exporting from JACK's native 32bit float to 24bit int _and_ you make sure that there is no sample larger than full-scale (floats are funny :), then there is no actual loss of information, and no dithering is required. all you do is map the 23 mantissa bits and the sign bit of the float to the 24 bits of the integer.




--
Jörn Nettingsmeier
Lortzingstr. 11, 45128 Essen, Tel. +49 177 7937487

Meister für Veranstaltungstechnik (Bühne/Studio)
Tonmeister VDT

http://stackingdwarves.net

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
http://lists.linuxaudio.org/listinfo/linux-audio-user





[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux