Document toolboxDocument toolbox

(8.D.2.5) MuteSymmetric

Overview

Smoothly mutes with exponential symmetrical fading curves

Discussion

Smoothly mutes all input channels. Muting/unmuting is controlled by the isMuted parameter. It takes equal time to mute and unmute (logarithmic ramp), hence the name: symmetric. The isMuted parameter together with muteThreshold is automatically converted to a value for the internal targetGain variable.

This module works similarly as the existing ScalerSymmetric module. Current gain though can be updated per sample (blockOrSample=0) or per block (blockOrSample=1). It exponentially and sample exact approaches its target gain with the set timeToMute parameter.

When full mute, the module will output zeros. Unmuted the input samples are simply copied one by one

Optional argument isMutedPin can be used to output fully muted/unmuted state.

If timeToMute=0 then no smoothing is being performed.

Type Definition

typedef struct _ModuleMuteSymmetric {     ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure     INT32 isMuted;                                // Boolean that controls muting/unmuting.     INT32 timeToMute;                             // Time to fully mute/unmute in msec.     INT32 blockOrSample;                          // Gain computed per block [checked] or per sample [unchecked]     FLOAT32 targetGain;                           // Computed target gains in linear units     FLOAT32 muteThreshold;                        // Level (lin) considered to be fully muted     FLOAT32 gradient;                             // Precalculated delta or gradient.     FLOAT32 currentGain;                          // Instantaneous gain applied by the module. This is also the starting gain of the module.     INT32 numSamples;                             // Number of samples over which muting has to be applied     FLOAT32 muteThreshold_dB;                     // Level (dB) considered to be fully muted     UINT32 pinID;                                 // Specifies which control pins are available.

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

isMuted

int

parameter

0

0

0:1

 

timeToMute

int

parameter

0

10

0:1000

msec

blockOrSample

int

const

0

0

Unrestricted

 

targetGain

float

derived

1

1

0:1

linear

muteThreshold

float

derived

1

1e-10

Unrestricted

 

gradient

float

derived

1

1

Unrestricted

 

currentGain

float

state

1

1

0:1

linear

numSamples

int

state

1

480

Unrestricted

 

muteThreshold_dB

float

const

1

-200

Unrestricted

 

pinID

uint

const

1

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 and Complex

Output Pins

Name: out

Description: audio output

Data type: float

Name: isMuted

Description: mute state

Data type: int

Scratch Pins

Channel count: 1

Block size: 32

Sample rate: 48000

MATLAB Usage

File Name: mute_symmetric_module.m

M=mute_symmetric_module(NAME) Creates a module which smoothly mutes and unmutes using symmetric ramps, meaning it takes equal time for fadeIn and fadeOut. Arguments: NAME - name of the module. MUTETHRESHOLD - level in dB considered to be fully muted BLOCKORSAMPLE - gain computed per block or per sample. ISMUTEDPIN - boolean control signal that tells when the muting occurred