Plans for free software to measure low-level audio noise, especially according to CCIR 468-4


Robin Whittle rw@firstpr.com.au   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 environment.

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.


Purpose

The program will be useful for measuring low-level background noise in a .WAV file according to:
  1. CCIR 468-4's weighting filter and quasi-peak metering system.

  2. 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.

  3. "A" weighting with RMS metering.

  4. 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 this technique.

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:
  1. Pre-amp and ADC noise.

  2. Microphone noise, as equivalent input weighted SPL noise.

  3. 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.


Outputs

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.


Subsidiary programs

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.


Other goals

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.