Overview
Sets scalar and array values in other modules
Discussion
The Param Set Table V2 module writes the values of one column of a statically defined table to an internal array of another module. A common use case is to update the coefficients of an FIR module based on changing conditions in the system.
The numDim variable determines the dimensions of the table to be stored. The numCols variable determines the number of vectors that can be stored in the internal table. The numRows variable determines the length of each vector.
It is the responsibility of the user to ensure that the numRows variable matches the size of the target module's array. The integer value of the input pin is used to select which column to copy to the target module's array.
The array values are stored in a non-interleaved way, e.g. numDims=2,numRows=3,numCols=4 aaabbb aaabbb aaabbb aaabbb.
If numDim and numRows are all = 1 then the module will assume a scalar value to write.
See the Param Set module documentation for more detail on how to specify the target module's array, and the meaning of each setBehavior type.
For AWE gurus: Functionality in Param Set Table V2 can also be achieved with combining the Array Set and Table Source V2 modules for multi-dim tables or Param Set modules for scalar variables. But Param Set Table V2 adds more convenience, e.g. it supports writing into scalar values (not arrays only), Array Set by itself does not support "OnChangeSet" behavior, hence fewer number of modules in total will be required.
The argument executionOrder determines when the param set table v2 will actually execute in relation to the module it is controlling:
Undefined = Let the build process decide
Before = Set the parameter before the target module executes
After = Set the parameter after the target module executes
This can be confirmed by generating a .AWS file and looking at the order which the modules are added to the layout, which set the execution order.
Type Definition
typedef struct _ModuleParamSetTableV2 { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure INT32 index; // Current index to table array INT32 setBehavior; // Controls the behavior of the module INT32 numDim; // The number of dimensions of the array INT32 numRows; // The size of each vector INT32 numCols; // The number of vectors FLOAT32* table; // Array table (numDim*numRows, numCols) void * modPtr; // Points to the module to set void * varPtr; // Points to the variable to set within the module instance structure } ModuleParamSetTableV2Class;
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
index | int | parameter | 0 | -1 | Unrestricted | |
setBehavior | int | parameter | 0 | 3 | Unrestricted | |
numDim | int | const | 0 | 1 | Unrestricted | |
numRows | int | const | 0 | 2 | Unrestricted | |
numCols | int | const | 0 | 5 | Unrestricted | |
table | float* | parameter | 0 | [2 x 5] | Unrestricted | |
modPtr | void * | parameter | 1 | Unrestricted | ||
varPtr | void * | parameter | 1 | Unrestricted |
Pins
Input Pins
Name: in
Description: array index
Data type: int
Channel range: 1
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Real
MATLAB Usage
File Name: param_set_table_v2_module.m
M=param_set_table_v2_module(NAME, DATATYPE, NUMDIM, NUMROWS, NUMCOLS, MODVAR) Param table set module. This module can reach into the instance structure of other modules and set array values. Arguments: NAME - name of the module. DATATYPE - string specifying the data type of the variable and this is also used for the data type of the input pin. Allowable values are'int'. NUMDIM - number of table dimensions NUMROWS - size of one (1-d) table NUMCOLS - number of presets MODVAR - specifies the module and variable name using the form: 'MOD.VAR' where MOD is the module name and VAR is the variable name. You can also specify internal subsystems using 'SUBSYS.MOD.VAR'.