Skip to content

SineSmoothedGenFract32

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.

Module Pack

Standard

ClassID

classID = 196

Type Definition

typedef struct _ModuleSineSmoothedGenFract32
{
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.
fract32 smoothingCoeff;                       // Smoothing coefficient
fract32 phase;                                // Instantanteous phase and also starting phase
fract32 phaseIncTarget;                       // Target for the sample to sample phase increment.  Essentially the target frequency
fract32 phaseInc;                             // Instantaneous sample to sample phase increment
} ModuleSineSmoothedGenFract32Class;

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 fract32 derived 1 0.0020811 Unrestricted
phase fract32 derived 1 0 Unrestricted radians
phaseIncTarget fract32 derived 1 0.016362 Unrestricted radians/sample
phaseInc fract32 derived 1 0.016362 Unrestricted radians/sample

Pins

Output Pins

Name out
Description audio output
Data Type fract32

Matlab Usage

File Name: sine_smoothed_gen_fract32_module.m 
 M=sine_smoothed_gen_fract32_module(NAME, SR, BLOCKSIZE) 
 Creates a sine wave generator for use in the Audio Weaver.  This 
 module has a single 1 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. 

Copyright (c) 2026 DSP Concepts, Inc.