Skip to content

RandiFract32

Overview

Low frequency noise generator

Discussion

Generates slowly varying random noise using by linearly interpolating between random values. The underlying random noise lies in the range [-1 +1). The module computes a new random value at the rate specified by .freq. If isSmoothed = 1, then linear interpolation is used between values. If isSmoothed = 0, then the output changes instantly effectively generating a square wave with constant period but random amplitudes.

Internally, the module uses a 32-bit linear congruential generator to generate random values. The initial seed of the random number generator is specified by .seed. If .fixCurrentSeed is 1, then the seed is fixed. This means that the prebuild function will not generate a new seed. By default, .fixCurrentSeed equals 0, and thus instances of the generator will produce different outputs.

Module Pack

Advanced

ClassID

classID = 1305

Type Definition

typedef struct _ModuleRandiFract32
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
FLOAT32 freq;                                 // Rate at which random values are generated.
INT32 isSmoothed;                             // Determines whether the random signal interpolates between random values (isSmoothed=1) or steps between random values (isSmoothed=0).
fract32 slope;                                // Slope value for linear interpolation between random values.
fract32 level;                                // The current value of the random signal.
INT32 rate;                                   // Starting value for counter, dependent on freq.
UINT32 seed;                                  // State of the random number generator.
INT32 fixCurrentSeed;                         // Whether the prebuild function resets the seed or not. 0 = reset, 1 = no reset.
INT32 counter;                                // Counter value is used in slewing between random values.
fract32 oneOverRate;                          // Used in calculating the slope value.
} ModuleRandiFract32Class;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
freq float parameter 0 1000 0.01:24000 Hz
isSmoothed int parameter 0 1 0:1
slope fract32 state 0 random value Unrestricted
level fract32 state 0 0 Unrestricted
rate int state 0 48 Unrestricted
seed uint state 0 random value Unrestricted
fixCurrentSeed int parameter 0 0 0:1
counter int state 1 48 Unrestricted
oneOverRate fract32 derived 1 0.020833 Unrestricted

Pins

Output Pins

Name out
Description audio output
Data Type fract32

Matlab Usage

File Name: randi_fract32_module.m 
 M=randi_fract32_module(NAME, SR, BLOCKSIZE) 
 Creates a slowly varying random generator based on linear interpolation. 
 This module has a single 1 channel output pin with controllable  
 frequency. The output of the module changes instantly when the  
 frequency is updated.  Fract32 version 

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

Copyright (c) 2026 DSP Concepts, Inc.