AudioWeighting
Overview
Standard audio weighting filters
Discussion
Implements standard weighting filters used in audio. The module operates on multiple channels and internally uses a BiquadCascade modoule. The .weightingType variable specifies what type of filter is implemented. Allowable values are:
0 = Flat
1 = A weighting
2 = B weighting
3 = C weighting
4 = D weighting
5 = ITU468
6 = LeqM
7 = ITU1770
When changing filter types, the audio output is muted, the filter's state variables are set to zero and then the coefficients are updated. Once the coefficients are changed, the audio is unmuted.
Type Definition
typedef struct _ModuleAudioWeighting
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
INT32 weightingType; // Selects weighting type
INT32 numStages; // Number of stages in the IIR filter
FLOAT32* coeffs; // Array of precomputed filter coefficients for the specified sampling rate
awe_modBiquadCascadeInstance *filt; // Cascade of second order Biquad filters
awe_modMuteUnmuteInstance *mute; // Mutes and unmutes to hide artifacts
} ModuleAudioWeightingClass;
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
weightingType | int | parameter | 0 | 0 | 0:7 | |
numStages | int | parameter | 1 | 4 | Unrestricted | |
coeffs | float* | parameter | 1 | [160 x 1] | Unrestricted |
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
Output Pins
Name: out
Description: audio output
Data type: float
Scratch Pins
Channel count: 1
Block size: 32
Sample rate: 48000
Channel count: 1
Block size: 32
Sample rate: 48000
MATLAB Usage
File Name: weighting_module.m
SYS = weighting_module(NAME)
Creates a module which implements standard audio frequency weightings:
A, B, C, D, ITU 468, and Leq M. Arguments:
NAME - name of the module.
The module stores all of the various filter coefficients in an internal
array and you can switch between filter types at run-time. Internally,
the module uses a Biquad cascade together with a mute/unmute module to
hide switching transients.