Plans for free software to measure low-level audio noise, especially according to CCIR 468-4
Robin Whittle firstname.lastname@example.org 2009-09-18
<<< To the parent directory, with the
history of CCIR 468-4 and other techniques for measuring low-level
noise according to how humans would perceive it in a listening
I plan to write some software, by the middle of 2010, and ideally a lot earlier.
Please suggest anything you like - I am open to suggestion.
I plan to write a command-line program to read a .WAV file and to
generate output as text on the console and/or to a file. I will
either make it open-source or public-domain.
The program will be useful for measuring low-level background noise in a .WAV file according to:
- CCIR 468-4's weighting filter and quasi-peak metering system.
- The Dolby variant of this, so-called "CCIR-AMS", which uses the
same weighting filter, with a different reference level and with
average metering, rather than RMS or quasi-peak metering.
- "A" weighting with RMS metering.
- A broadband (audio range) filter with quasi-peak metering.
The first three approaches are intended to quantify the noise in a
manner which represents how humans would perceive it. Of these
approaches, the CCIR - 468-4 is the most widely respected by
specialists in the field. However, it is not the most widely
used. One purpose of this software is to encourage the use of
I may also provide a full matrix of the weighting filters and metering systems.
The program will be useful for applications including reliable measurement of:
- Pre-amp and ADC noise.
- Microphone noise, as equivalent input weighted SPL noise.
- Background noise in any electronic device.
The input file
The input file will be a mono, 16 bit or 32 bit integer .WAV file.
The sample rate must be 44.1 kHz, 48 kHz or 96 kHz. I will
probably also support 88.2kHz. Folks who run at 192 kHz will need
to downsample their file.
The file should be at least 12 seconds long. Shorter than this will cause the program to produce no results.
The program will use the audio starting at 1.0 seconds up to 11.0
seconds. The file should contain a consistent level of noise, all
from the system under test, but the program won't check for this.
The main purpose will be to report
noise levels according to the four techniques, as dB relative to some
reference level (so the values will generally or always be
negative). The results will be based on averaging the entire 10
seconds of audio.
They will be presented at the standard output of the program and will optionally be written to a text file.
I may have an option to dump the readings to a text file on a second-by-second or faster basis.
There will be an option to dump, as a 24 bit .WAV file in the original
sample rate, three different versions of the input file (all 0 to 12
seconds) as it has been passed through the weighting filters: CCIR
486-4, Dolby's version of this filter and the "A" weighting filter.
I will also provide a program to
generate a bunch of .WAV files which will exercise the weighting
filters and detectors, so it will be possible to look at these test
files, feed them to the main program, read the results and verify that
the results match the technical standards for the various techniques.
I may make a Windows GUI
front-end for the main program. Hopefully interested people can
do this for Windows, Linux and the Mac.
People may use parts of the source code to integrate these functions
into their own programs, or to produce a DLL (Windows) which other
programs can link to.
I will decide on a name for my program, and allow other people to say their software is based on this program.