Document toolboxDocument toolbox

(8.D.2.3) MuteLinearFade

Overview

Smoothly mutes and unmutes with Linear Fade

Discussion

Smoothly mutes (fades out) all input channels. FadeOut/FadeIn is controlled by the fadeOut parameter. The fadeOut parameter is automatically converted to a value for the internal gain variable: fadeOut = 1 --> gain = 0 or fadeOut = 0 --> gain = 1. The variable gain serves as a target gain for the module. Changes made to the gain variable are smoothed by the linear fade with the time constant determined by the fadeOutTime and fadeInTime parameters. The internal variable currentGain represents the instantaneous smoothed gain that is applied to the data stream. currentGain approaches to gain with a time constant equal to fadeOutTime or fadeInTime. The module has separate time parameters for fadeOut and fadeIn. When the fadeOut is requested, the module outputs 0 on control output pin and once the currentGain == gain then the module outputs 1 on the control output pin.

The module outputs the processed audio on the first output pin, and also outputs the current faderState value as an integer on the second output pin, called FS. An output of 0 from the FS pin means that fading in or out is ongoing. An output of 1 means that fading in or out is completed.

The parameter currentGain also serves as the starting gain of the module. If currentGain = gain, then the module starts up in a converged state. If currentGain != gain, then the module will smoothly vary the gain at startup.

Type Definition

typedef struct _ModuleMuteLinearFade { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure INT32 fadeOut; // Boolean that controls muting/unmuting. FLOAT32 fadeOutTime; // Time constant of the fade out (mute) process. FLOAT32 fadeInTime; // Time constant of the fade in (unmute) process. INT32 faderState; // State of the fader ramp. 0 - fader in/out is in progress and 1 - fading is done. FLOAT32 currentGain; // Instantaneous gain applied by the module. This is also the starting gain of the module. FLOAT32 fadeOutCoeff; // Fade out coefficient. FLOAT32 fadeInCoeff; // Fade in coefficient. FLOAT32 gain; // Target gain. } ModuleMuteLinearFadeClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

fadeOut

int

parameter

0

0

0:1

 

fadeOutTime

float

parameter

0

10

0:1000

msec

fadeInTime

float

parameter

0

10

0:1000

msec

faderState

int

state

0

0

Unrestricted

 

currentGain

float

state

1

1

0:1

linear

fadeOutCoeff

float

derived

1

0.002081

Unrestricted

 

fadeInCoeff

float

derived

1

0.002081

Unrestricted

 

gain

float

derived

1

1

0:1

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

Output Pins

Name: out

Description: audio output

Data type: float

 

Name: FS

Description: boolean fader state

Data type: int

MATLAB Usage

File Name: mute_linear_fade_module.m

M=mute_linear_fade_module(NAME) Creates a module which smoothly mutes and unmutes with different fade out and fade in time parameters. Arguments: NAME - name of the module.

Â