Re: iPhone kAudioQueueProperty_CurrentLevelMeter > 1.0
Re: iPhone kAudioQueueProperty_CurrentLevelMeter > 1.0
- Subject: Re: iPhone kAudioQueueProperty_CurrentLevelMeter > 1.0
- From: Brian Willoughby <email@hidden>
- Date: Sun, 5 Oct 2008 15:53:58 -0700
Mark,
Based on the overall concepts of CoreAudio, if you are seeing
'levels' above 1.0, then that means they would clip if sent to an
output device or saved in a file without further processing.
Normally, however, CoreAudio allows levels to exceed 1.0 without
clipping, because of the floating point nature of the native /
canonical format, so long as the values are not converted to a fixed
point format before the level is brought down by some means.
I believe what is really meant by the property documentation is that
the values of the audio data itself should be between 0.0 and 1.0,
but it is understood that the meter will reflect the actual values
even when they exceed that expected range. Perhaps the documentation
could be improved to clarify the distinction between the input data
and the level meter values. A value of 1.0 represents 0 dBFS, but
that is only the standard reference level, not a hard limit (as would
happen with a fixed-point format).
You have a few choices here. If you are developing your own GUI for
metering, then you could implement some sort of 'OVER' indication to
alert users when they have gone beyond the expected range with their
audio data. Or, you could build in a few dB of headroom between 0
dBFS. Logic, for example, shows 6 dB of headroom in part of their
meter UI, and only beyond that does the meter stop indicating the
actual value.
Alternatively, you could make sure there is a limiter or some other
form of level control ahead of your meters to insure that 0 dBFS is
not exceeded before the Level Meter.
All of the above comments refer to general CoreAudio situations. I
see that you're dealing with recording, and I assume this is from an
input device. Perhaps there is an input gain which is causing the
samples to exceed the normal range. I know that many of the built-in
microphones have as much as 12 dB of gain, which I usually manually
set to 0 dB to avoid clipping. If you're exceeding 1.0 levels when
recording, there is probably something that needs to be adjusted
ahead of the meters.
Brian Willoughby
Sound Consulting
On Oct 5, 2008, at 15:26, Mark Kieling wrote:
I am seeing values > 1.0 returned from AudioQueueGetProperty for the
property kAudioQueueProperty_CurrentLevelMeter while recording with
AudioQueue. The documentation says that results for this property
should be between 0 and 1.0. What am I missing here and how should I
interpret the values?
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden