3

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.

Emil
  • 133
  • 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 Answers1

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