Skip to content

PeriodicFunctionGen

Overview

General purpose periodic function generator

Discussion

General purpose function generator, with parameters for controlling frequency, amplitude and start phase. The module can generate Sine wave, Square wave, Triangle wave, Sawtooth wave and Impulse with the control parameter, functionType. If functionType = 0 generates Sine wave, functionType = 1 generates Square wave, functionType = 2 generates Triangle wave, functionType = 3 generates Sawtooth wave, . and functionType = 4 generates Impulse wave.

Module Pack

Standard

ClassID

classID = 118

Type Definition

typedef struct _ModulePeriodicFunctionGen
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
INT32 functionType;                           // Type of the wave form to be generated on output
FLOAT32 freq;                                 // Frequency of the function generator output wave.
FLOAT32 amplitude;                            // Amplitude in linear units.
FLOAT32 offset;                               // Starting phase of the function generator output wave.
FLOAT32 offsetRad;                            // Offset in radiuns.
FLOAT32 phase;                                // Instantanteous phase and also starting phase.
FLOAT32 phaseInc;                             // Instantaneous sample to sample phase increment.
INT32 impPeriod;                              // Period or rate of the impulse generator.
INT32 impSampleIndex;                         // Specifies the index of the next non-zero value.
FLOAT32 triPhase;                             // Instantanteous phase and also starting phase.
FLOAT32 triPhaseInc;                          // Instantaneous sample to sample phase increment.
FLOAT32 sawPhase;                             // The stored phase of the sawtooth function.
FLOAT32 sawPhaseIncrement;                    // The amount that the oscillator phase is incremented for each output sample.
} ModulePeriodicFunctionGenClass;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
functionType int parameter 0 0 0:4
freq float parameter 0 1000 0.01:24000 Hz
amplitude float parameter 0 1 0:2 linear
offset float parameter 0 0 0:360 degrees
offsetRad float derived 1 0 Unrestricted
phase float state 1 0 Unrestricted radians
phaseInc float derived 1 0.1309 Unrestricted radians/sample
impPeriod int derived 1 48 Unrestricted samples
impSampleIndex int state 1 0 Unrestricted
triPhase float state 1 0 Unrestricted
triPhaseInc float derived 1 0.08333 Unrestricted
sawPhase float state 1 0 Unrestricted
sawPhaseIncrement float derived 1 0.04167 Unrestricted

Pins

Output Pins

Name out
Description audio output
Data Type float

Matlab Usage

File Name: periodic_function_gen_module.m 
 M=periodic_function_gen_module(NAME, SR, BLOCKSIZE) 
 Creates a general purpose function generator for use in the Audio Weaver  
 environment. This module has a single channel output pin with controllable  
 frequency. The output of the module changes instantly when the frequency  
 is updated. This module can generate sine wave, square wave, trinagular 
 wave, sawtooth wave and impulse with control variable. 

 Arguments: 
    NAME - name of the module. 
    SR - sample rate. 
    BLOCKSIZE - number of samples per output channel. 

Copyright (c) 2026 DSP Concepts, Inc.