Rand
Overview
Random number generator using a LCG algorithm
Discussion
Generates uniformly distributed random values using a linear congruential generator. The module outputs 32-bit integer values which can be interpretted as int or fract32 values. The random values occupy the entire numerical range. Integer values are in the range of [-2^31 +2^31) and fract32 values are in the range of [-1 +1).
The seed variable specifies the starting seed of the random process. After the module processes a block of data, the seed value equals the last output sample. When the module is instantiated, the seed value is randomly set by MATLAB.
Module Pack
Standard
ClassID
classID = 123
Type Definition
typedef struct _ModuleRand
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
UINT32 seed; // Initial seed value for the random number generator.
} ModuleRandClass;
Variables
Properties
| Name | Type | Usage | isHidden | Default Value | Range | Units |
|---|---|---|---|---|---|---|
| seed | uint | parameter | 0 | random value | Unrestricted |
Pins
Output Pins
| Name | out1 |
| Description | audio output |
| Data Type | fract32 |
Matlab Usage
File Name: rand_module.m
M=rand_module(NAME, NUMPINS, NUMCHANNELS, BLOCKSIZE, SR, DATATYPE, ISCOMPLEX)
Random number generator module supporting integer and fract32 signal
types. The output signal is uncorrelated random data lying within the
full range of the allowable signal values. Integer values are in the
range of [-2^31 +2^31) and fract32 values are in the range of [-1 +1).
The module supports multiple output pins in which all of the data is
uncorrelated.
Arguments:
NAME - name of the module.
NUMPINS - number of output pins.
NUMCHANNELS - number of interleaved channels in each output pin.
BLOCKSIZE - number of samples per output channel.
SR - sample rate of the output.
DATATYPE - string specifying either, 'int' or 'fract32'.
ISCOMPLEX - boolean that indicates complex data.
Copyright (c) 2026 DSP Concepts, Inc.