|
From: Cory N. <ph...@gm...> - 2012-03-05 19:42:06
|
On Mon, Mar 5, 2012 at 1:09 PM, Jan Stary <ha...@st...> wrote: > On Mar 05 17:04:04, robs wrote: >> >> >Perhaps I am missing something here, >> >but how would that make gains not clip? >> >> >> Because FP can represent very large numbers, clipping in the effects chain becomes very unlikely, and a (downwards) normalisation could be applied at the end of chain to bring things back in check. > > I still don't get it: on my system, sizeof(float) = 4. > How can four-byte floats represent larger dynamic range > than four-bytes integers (which, if I remember right, > is currently SoX's internal sample format)? > Float has less precision (only 24 bits, which is plenty for audio), but a much larger dynamic range. The point is that: 0.75 * 2 = 1.5 (can be normalized back to 1.0 range) 1610612735 * 2 = 2147483647 (clipped unrecoverably by 1/3rd) It is practically impossible to unrecoverably clip while using float. You'd need to have some pretty heroic and nonsensical filters. -- Cory Nelson http://int64.org |