Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Code Block
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

...

Code Block
 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'.
    EXECUTIONORDER - Determines when the ParamSet module executes relative
                     to the module it is controlling.  Allowable values are:
                     'undefined' - the default.  The execution order is set
                                   by the routing algorithm and can occur before
                                   or after the module it is controlling.
                     'before' - forces ParamSet to execute before the module it
                                is controlling.
                     'after' - forces ParamSet to execute after the module it
                                is controlling.
                     When using 'before' and 'after' you could get a build error
                     indicating that no more modules can execute or there is a 
                     circular dependency.