On Fri, 6 Nov 2020 15:07:43 +0100 Fons Adriaensen <fons@linuxaudio.org> wrote:On Fri, Nov 06, 2020 at 01:22:42PM +0000, John Murphy wrote:Then sox stat shows min/max amplitude +/- 0.5 for the wav capture and +/- 0.9 for the wav converted from w64. The converted file looks good in my editor too.Still doesn't explain the difference, unless I'm missing something...There's a loss of precision in the conversion process. Both the original recordings show 25 bit precision and the file sizes are the same (3.8MB). The converted file is only 16 bit and is 1.9MB. It sounds (and looks) louder. I doubt I could tell any loss of quality. Not explaining it. Just providing some facts. :)
Maybe this is relevant?
According to my package manager, sox depends on libsndfile.
On the libsndfile website: http://www.mega-nerd.com/libsndfile/api.html#note1
it talks about normalization:
"When converting between integer data and floating point data, different rules apply.
The default behaviour when reading floating point data (sf_read_float() or sf_read_double ())
from a file with integer data is normalisation. Regardless of whether data in the file
is 8, 16, 24 or 32 bit wide, the data will be read as floating point data in the range [-1.0, 1.0].
Similarly, data in the range [-1.0, 1.0] will be written to an integer PCM file so that
a data value of 1.0 will be the largest allowable integer for the given bit width.
This normalisation can be turned on or off
using the sf_command
interface"
I recall observing that this normalization does tend to make the result 'louder'.
Could this be what is being observed?
Tim.