dbFS/dB for system gain - difference from 94dB calibrated recording?


I am working on a project using audio data (collected using Songmeter wildlife acoustic recorders) to track aircraft events. We use Audacity for most of the audio/data processing, to visualize spectrograms and pick out events, but I’d also like “loudness” information. Songmeters aren’t SPL meters, but it’s possible to post-process the data to extract SPL, if the instrument parameters/configurations are known.

I’ve used “end-to-end calibration” that inputs the mic sensitivity, instrument gain, and pre-amp gain to generate likely SPLs from the audio files (not in Audacity, but in R). However, these are all basically generic parameters based on Songmeter model (I have a couple different models with varying mic age and quality), and apparently it’s better to just use a calibrated recording to determine the overall system gain, and use that in post-processing.

So I borrowed a 94dB @ at 1 kHz calibrator, and made test recordings for all my Songmeters, with the settings (preamp on, gain at 16dB) at the same levels used for my actual audio data files.

But now I need to figure the “digital audio level” of the calibrated recording files and gain/negative gain from 94dB. I’ve used Plot Spectrum (see screenshot), and the peak at 1 kHz is clear, but I get a dB of 1.9, and I don’t know what to make of that. What does 1.9 mean on dBFS scale? I know Audacity uses 32-bit floating, is that why I’m getting positive dB values?

Just trying to figure out what my relationship of dBFS is to my calibrated recording…any help is greatly appreciated!

It means 1.9 dB above the full-scale reference.

Integer formats (such as “signed 8-bit”, “unsigned 8-bit”, “signed 16-bit”, “signed 24-bit”) have an absolute limit of 0 dB. This is the point at which the format runs out of bits.

Example, for unsigned 8-bit, the most negative the signal can go is binary 0000 0000 and the most positive is 1111 1111. The signal cannot go higher than 1111 1111 because one more would be 1 0000 0000, but there are only 8 bits, so counting above 1111 1111 “overflows” and becomes (negative) 0000 0000.

“Floating point” formats (such as “32-bit float”) do not have this limitation. The 0 dB (full scale) reference is the floating point value (decimal) 1.0.
The maximum possible value for a 32-bit floating point number is greater than 1.0 (it’s 2,147,483,647), so floating point formats can represent values greater than 0 dB.

A side note: For best accuracy on peak information in Plot Spectrum, try the “Gaussian (a=3.5)” window. I find that this gives most accurate figures for peaks (at the expense of less accuracy between peaks).

Thank you for the explanation - I think I’ve got it. So if dBFS is 0-96 dB, a reading of 1.9 above FS on a 94dB calibrated tone would mean my overall system gain is 3.9 dB?