Skip to content

Meter

Overview

Peak and RMS meter module

Discussion

The Meter module provides a flexible level meter that can operate in several modes. The module has a single multichannel input and separately meters each channel. The meter can be configured to conform to IEC 60280-10 (peak meters) and IEC 60280-17 (VU Meter) specifications. The meterType parameter is used to configure the module as follows.

meterType Description Attack Time (msec) Release Time (msec) Comments
0 FastPeakSample 5 1087 Peak meter: IEC 60280-10 "fast mode"
1 SlowPeakSample 10 1450 Peak meter: IEC 60280-10 "slow mode"
2 VUMeterSample 65 65 IEC 60280-17 standard "VU meter"
3 CustomSample user user Set the attackTime and releaseTime from a Matlab script
4 InstantSample 0 0 Instantaneous (attack and release times of 0 msec). The meter value equals the last value in each block.
16 FastPeakBlock 5 1087 Computationally efficient peak meter: IEC 60280-10 "fast mode"
17 SlowPeakBlock 10 1450 Computationally efficient peak meter: IEC 60280-10 "slow mode"
18 VUMeterBlock 65 65 Computationally efficient IEC 60280-17 standard "VU meter"
19 CustomBlock user user Computationally efficient custom meter. Set the attackTime and releaseTime from a Matlab script
20 InstantBlock 0 0 Computationally efficient instantaneous meter (attack and release times of 0 msec). The max abs value of each block is returned without time constants.

In meterTypes 0 to 4, the peak attack and release are performed on a sample-by-sample basis in the envelope follower. In meterTypes 16 to 20, the peak absolute value for the entire input block is found and this one value is passed through the envelope follower.

Module Pack

Standard

ClassID

classID = 107

Type Definition

typedef struct _ModuleMeter
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
INT32 meterType;                              // Operating mode of the meter. Selects between peak and RMS calculations. See the discussion section for more details.
FLOAT32 attackTime;                           // Attack time of the meter. Specifies how quickly the meter value rises.
FLOAT32 releaseTime;                          // Release time of the meter. Specifies how quickly the meter decays.
FLOAT32 attackCoeff;                          // Internal coefficient that realizes the attack time.
FLOAT32 releaseCoeff;                         // Internal coefficient that realizes the release time.
FLOAT32* value;                               // Array of meter output values, one per channel.
} ModuleMeterClass;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
meterType int parameter 0 18 Unrestricted
attackTime float derived 1 65 0:1000 msec
releaseTime float derived 1 65 0:10000 msec
attackCoeff float derived 1 0.02336 Unrestricted
releaseCoeff float derived 1 0.02336 Unrestricted
value float* state 0 [1 x 1] -60:10 linear

Pins

Input Pins

Name in
Description audio input
Data type float
Channel range Unrestricted
Block size range Unrestricted
Sample rate range Unrestricted
Complex support Real

Scratch Pins

Channel Count 1
Block size 32
Sample rate 48000

Matlab Usage

File Name: meter_module.m 
 M=meter_module(NAME) 
 Creates a meter module for use in the Audio Weaver environment. 
 The module has a single multichannel input pin.   

 Arguments: 
    NAME - name of the module. 

Copyright (c) 2026 DSP Concepts, Inc.