MeterFract32
Overview
Peak and RMS meter module
Discussion
The MeterFract32 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 |
| 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 |
In meterTypes 0 to 3, the peak attack and release are performed on a sample-by-sample basis in the envelope follower. In meterTypes 16 to 19, 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 = 157
Type Definition
typedef struct _ModuleMeterFract32
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
INT32 meterType; // Operating module 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
fract32 attackCoeffFract32; // Internal coefficient that realizes the attack time
fract32 releaseCoeffFract32; // Internal coefficient that realizes the release time
fract32* value; // Array of meter output values, one per channel
} ModuleMeterFract32Class;
Variables
Properties
| Name | Type | Usage | isHidden | Default Value | Range | Units |
|---|---|---|---|---|---|---|
| meterType | int | parameter | 0 | 18 | 0:3, 16:19 | |
| attackTime | float | derived | 1 | 65 | 0:1000 | msec |
| releaseTime | float | derived | 1 | 65 | 0:10000 | msec |
| attackCoeffFract32 | fract32 | derived | 1 | 0.023355 | Unrestricted | |
| releaseCoeffFract32 | fract32 | derived | 1 | 0.023355 | Unrestricted | |
| value | fract32* | state | 0 | [1 x 1] | -60:10 | db20 |
Pins
Input Pins
| Name | in |
| Description | audio input |
| Data type | fract32 |
| 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_fract32_module.m
M=meter_fract32_module(NAME)
Creates a meter module for usein the Audio Weaver environment.
The module has a single multi-channel input pin. Arguments:
NAME - name of the module.
Copyright (c) 2026 DSP Concepts, Inc.