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.

  • 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). 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

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.