Re: Getting Levels While Recording
Re: Getting Levels While Recording
- Subject: Re: Getting Levels While Recording
- From: Matt Connolly <email@hidden>
- Date: Mon, 21 Aug 2006 09:48:52 +1000
Hi Mike,
"Peak" refers to the absolute maximum (or minimum) of a signal. This
is important with most forms of audio media, for example to prevent
distortion (clipping) at analog to digital converters. It is easily
measured from any instantaneous sample in the signal. However, it has
very poor correlation to perceived loudness - what we hear with our
ears is RMS (roughly - there's some complex psychoacoustics involved
too, that I won't get in to.)
"RMS" is short for root-mean-square of a signal. It measures the
"average" level, or "power" in a signal, and the IEC/ISO attack and
release times correspond to the human ear's response to loudness,
resulting in a much more natural indicator of loudness.
Here's some interesting links on the subject (I had a quick look for
some real tech documents - more difficult to find):
http://en.wikipedia.org/wiki/VU_Meter
http://en.wikipedia.org/wiki/Peak_programme_meter
http://www.digido.com/portal/pmodule_id=11/pmdmode=fullscreen/
pageadder_page_id=36/
IEC 60268-17 - for VU meters
IEC 60268-17 - for Peak Programme Meters (PPM)
Regards,
Matt
On 20/08/2006, at 12:07 PM, Mike Hanna wrote:
Hi, if you don't mind me interjecting here... what are Peak and RMS
levels and what are they used for?
Mike
On 17-Aug-06, at 1:59 PM, Matt Connolly wrote:
Hi Dan,
I had a similar problem. It seems that there is no need to Endian
swap float32's, but unless you specify by hand that you don't need
to, CoreAudio will swap them and your numbers turn into
meaningless NaN and Inf, etc....
In the header file "CoreAudioTypes.h", below the normal Audio
Format Flags, is this one:
kAudioFormatFlagsNativeFloatPacked
That might be useful to tell coreAudio that the Float32's do not
need to be endian swapped.
Also, I have a C++ class which easily measures both Peak and RMS
levels, with the appropriate IEC/ISO attack and release time
ballistics. Quite simple code, but you are welcome to use it if
you are interested. The attack and release ballistics are
implemented using first order butterworth filters, which are
implemented based on some maths I read in a book that was written
before I was born.
All the best,
Matt Connolly
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40gmail.com
This email sent to email@hidden
_______________________________________________
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