Document toolboxDocument toolbox

(8.D.2.3) SineSmoothedGen

Overview

Smoothly varying sine wave generator

Discussion

Sine wave generator, with parameters for controling frequency and start phase. This is a source module and requires that you specify the properties of the output pin (number of channels, blockSize, and sample rate) at construction time. The smoothing coefficient allows for changes to the frequency parameter to be exponentially smoothed (first order IIR) at the sample rate.

Internally, this modules uses the sin() function from the C math library. The instantaneous frequency (which is the phase increment between samples) is smoothed on a sample by sample basis. If you do not need smoothed behavior, use the more efficient sine_gen_module.m instead.

Type Definition

typedef struct _ModuleSineSmoothedGen { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure FLOAT32 freq; // Frequency of the sine wave, in Hz. FLOAT32 smoothingTime; // Time constant of the frequency adjustment operation, in msec. FLOAT32 startPhase; // Starting phase of the sine wave, in degrees. FLOAT32 smoothingCoeff; // Smoothing coefficient. FLOAT32 phase; // Instantanteous phase and also starting phase. FLOAT32 phaseIncTarget; // Target for the sample to sample phase increment. Essentially the target frequency. FLOAT32 phaseInc; // Instantaneous sample to sample phase increment. } ModuleSineSmoothedGenClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

freq

float

parameter

0

1000

0.01:24000

Hz

smoothingTime

float

parameter

0

10

0:1000

msec

startPhase

float

parameter

0

0

0:360

degrees

smoothingCoeff

float

derived

1

0.002081

Unrestricted

 

phase

float

parameter

1

0

Unrestricted

radians

phaseIncTarget

float

derived

1

0.1309

Unrestricted

radians/sample

phaseInc

float

derived

1

0.1309

Unrestricted

radians/sample

Pins

Output Pins

Name: out

Description: audio output

Data type: float

MATLAB Usage

File Name: sine_smoothed_gen_module.m

M=sine_smoothed_gen_module(NAME, SR, BLOCKSIZE) Creates a sine wave generator for use in the Audio Weaver environment. This module has a single channel output pin with controllable frequency and built in frequency smoothing. Arguments: NAME - name of the module. SR - sample rate. BLOCKSIZE - number of samples per output channel.

Â