Update of /cvsroot/audacity/audacity-src/src
In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv8039/src

Modified Files:
        SampleFormat.cpp 
Log Message:
Updating comments

Index: SampleFormat.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/SampleFormat.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- SampleFormat.cpp    22 Sep 2006 07:03:54 -0000      1.13
+++ SampleFormat.cpp    1 Oct 2006 23:53:10 -0000       1.14
@@ -19,30 +19,15 @@
   Floating-point samples use the range -1.0...1.0, inclusive.
   Integer formats use the full signed range of their data type,
   for example 16-bit samples use the range -32768...32767.
-  This presents a problem, because either the conversion to
-  or from a float would have to be asymmetric, or zero would
-  have to be mapped to something other than zero.  (A third
-  option is to use a symmetric, zero-preserving mapping that
-  might clip, and check for clipping...but this option is
-  both uncompelling and slow.)
-
-
-  Audacity chooses to use a symmetric mapping that doesn't
-  preserve 0:
-
-\verbatim
-  16-bit    float        16-bit
-  -32768 -> -1.000000 -> -32768
-
-       0 ->  0.000015 ->      0
-             0.000000 ->      0
-
-   32767 ->  1.000000 ->  32767
-\endverbatim
+  This means that reading in a wav file and writing it out again
+  ('round tripping'), via floats, is lossless; -32768 equates to -1.0f 
+  and 32767 equates to +1.0f - (a little bit).
+  It also means (unfortunatly) that writing out +1.0f leads to
+  clipping by 1 LSB.  This creates some distortion, but I (MJS) have
+  not been able to measure it, it's so small.  Zero is preserved.
 
-   Note that 0.0 (float) still maps to 0 (int), so it is nearly
-   an ideal mapping.  An analogous mapping is used between
-   24-bit ints and floats.
+  http://limpet.net/audacity/bugzilla/show_bug.cgi?id=200
+  leads to some of the discussions that were held about this.
 
    Note: These things are now handled by the Dither class, which
          also replaces the CopySamples() method (msmeyer)


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Audacity-cvs mailing list
Audacity-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/audacity-cvs

Reply via email to