SweepGen
Overview
Sweep generator
Discussion
Creates a sweep signal generator for use in the Audio Weaver environment. This module has a single channel output pin and generates sweep sine signals with definable start and stop frequencies and sweep times. Sweep generators are commonly used to test the frequency response of electronic filter circuits or speakers.
Trigger parameter allows controlling start and stop of the sweep. This will initially be 0 (waiting), set to 1 to start the sweep. After sweep is completed and the time of the padding samples elapsed the trigger is set to 0 by the module.
If the trigger is used as input pin, it overrides the trigger parameter functionality and directly controls start (1) and stop (0) of the sweep.
Module Pack
Advanced
ClassID
classID = 1434
Type Definition
typedef struct _ModuleSweepGen
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
INT32 trigger; // State variable/parameter to trigger sweep on/off.
INT32 sweepType; // Specifies a Linear or a Logarithmic sweep.
FLOAT32 startFreq; // Frequency at which the sweep starts.
FLOAT32 stopFreq; // Frequency at which the sweep ends.
INT32 sweepTime; // The time interval in samples of the sweep between the start frequency and the stop frequency
FLOAT32 amplitude; // Amplitude in linear units.
INT32 padding; // Number of zero samples before repeating the sweep cycle.
INT32 duration; // Sweep time in samples.
FLOAT32 startIncr; // Increment start value.
FLOAT32 endIncr; // Increment target vallue.
FLOAT32 dIncr; // Delta increment.
FLOAT32 momentaryIncr; // Momentary increment.
FLOAT32 phase; // The stored phase of the sweep function.
INT32 sampleCnt; // Momentary sample counter.
INT32 paddingCnt; // Momentary padding counter.
UINT32 pinID; // Specifies which control pins are available.
} ModuleSweepGenClass;
Variables
Properties
| Name | Type | Usage | isHidden | Default Value | Range | Units |
|---|---|---|---|---|---|---|
| trigger | int | state | 0 | 0 | 0:1 | |
| sweepType | int | parameter | 0 | 0 | 0:1 | |
| startFreq | float | parameter | 0 | 20 | 1:24000 | Hz |
| stopFreq | float | parameter | 0 | 24000 | 1:24000 | Hz |
| sweepTime | int | parameter | 0 | 48000 | 1:2880000 | samples |
| amplitude | float | parameter | 0 | 1 | 0:1 | linear |
| padding | int | parameter | 0 | 0 | 0:32767 | samples |
| duration | int | derived | 1 | 48000 | Unrestricted | |
| startIncr | float | derived | 1 | 0.0004167 | Unrestricted | |
| endIncr | float | derived | 1 | 0.5 | Unrestricted | |
| dIncr | float | derived | 1 | 1.041e-05 | Unrestricted | |
| momentaryIncr | float | state | 1 | 0.0004167 | Unrestricted | |
| phase | float | state | 1 | 0 | Unrestricted | |
| sampleCnt | int | state | 1 | 0 | Unrestricted | |
| paddingCnt | int | state | 1 | 0 | Unrestricted | |
| pinID | uint | const | 1 | 1 | Unrestricted |
Pins
Input Pins
| Name | trigger |
| Description | Flag to trigger sweep on/off |
| Data type | int |
| Channel range | 1 |
| Block size range | 1 |
| Sample rate range | Unrestricted |
| Complex support | Real |
Output Pins
| Name | out |
| Description | audio output |
| Data Type | float |
Matlab Usage
File Name: sweep_gen_module.m
M=sweep_gen_module(NAME, SAMPLERATE, BLOCKSIZE, TRIGGERPIN)
Creates a sweep signal generator for use in the Audio Weaver
environment. This module has a single channel output pin and generates
sweep sine signals with definable start and stop frequencies and duration
times.
Arguments:
NAME - name of the module.
BLOCKSIZE - number of samples per output channel.
By default, BLOCKSIZE = 256.
SAMPLERATE - sample rate of the output signal, in Hz.
By default, SAMPLERATE = 48000.
TRIGGERPIN - boolean that determines whether the module exposes an
input pin that allows en/disabling during run-time
Copyright (c) 2026 DSP Concepts, Inc.