I made a program that connected to the microphone and captured wave_format_ieee_float data from it. I noticed that if I made a really loud noise the data seems to fluctuate between -1 and 1 (when I cast the buffer pointer into float*). What is the significance of this? How do I connect this to deciBel Sound Pressure Level, Pascals from ambient pressure or the voltage being sent through the microphone cable? I know the microphone has -38dB sensitivity. Any explanation or further reading tips that casts light on what the numbers inside the wave represents in real life are welcome.
Asked
Active
Viewed 1,240 times
3
-
This seems to be more a physics or audio engineering question. Basically it should be Pulse Code Modulation where the value represents the amplitude of the waveform at a given point in time (depending on detail settings like sampling rate). – thorsten müller Jun 15 '16 at 20:48
-
Amplitude of which waveform? The closest I have found this far is an answer saying normalized voltage, where +1 means the highest voltage on the "line driver" or something. – Emil Jun 15 '16 at 20:54
1 Answers
4
As you have probably already surmised, the data points in a WAVE_FORMAT_IEEE_FLOAT are 32 bit or 64 bit floating-point numbers that vary between 1 and -1.
The values 1 and -1 simply represent the largest possible positive and negative amplitude values. These values don't map to any particular voltage or sound pressure level, for the simple reason that everything has a volume control and/or a manufacturer-specified sensitivity.

Robert Harvey
- 199,517