What is the smallest adjustment i could make to a sample point?

I noticed that when exporting sample data, i’m able to go the 100,000th’s decimal place.
Is that the limit of the 32bit float, or a choice of the audacity developers?

I assume that you mean the level (amplitude) of a sample point.

The smallest adjustment depends on the sample format.

• For a 16-bit track the smallest adjustment is +/- 0.000030518
• For a 24-bit track the smallest adjustment is +/- 0.000000119
• For a 32-bit float track, the smallest adjustment depends on the absolute value (see Single-precision floating-point format - Wikipedia). The smallest positive value is 1.17549e-38 (that’s 38 zeros).

Audacity’s vertical zoom has a limit that is generous for all practical purposes, but not sufficient to see the smallest 32-bit float increments.

1 Like

For a 32-bit float track, the smallest adjustment depends on the absolute value (see Single-precision floating-point format - Wikipedia). The smallest positive value is 1.17549e-38 (that’s 38 zeros).

So if I edited a text file of sample data, I could specify the precision of each sample to’ 1.17549e-38‘ decimal place then import that into Audacity?

The data would still be there but Audacity wouldn’t necessarily display that?

No, you can’t change the precision or resolution of what Audacity is importing/exporting as text.

But something like MATLAB (or a custom program) could make the smallest possible change. Or Nyquist can probably do it.

It’s also possible with a hex editor but not really practical because you’re seeing one byte at time and you have to know what sample you’re looking at and how each set of 4-bytes is represents floating-point.

Right. If you make a very-small change to the raw data Audacity might round what you see.

You misunderstood what I was trying to say - You can make a small change to a floating-point WAV file or to the data with a 3rd party tool/program (or probably with Nyquist) but Audacity may not show you the changes.

What are you really trying to accomplish?

Do you mean with “Sample Data Import”? Yes that should work.

Alternatively you could generate a series of very small sample values using this code in the Nyquist Prompt:

``````;type generate
(setf ar (make-array 1000))
(setf delta 1e-39)
(dotimes (i (length ar))
(setf (aref ar i) (* i delta)))

(snd-from-array 0 *sound-srate* ar)
``````

It will appear to be flat zero, but if you normalize it you can see that it is ramp (from 0 to 9.99e-37 over 1000 samples).

This topic was automatically closed after 30 days. New replies are no longer allowed.