Skip to content

StatusSetV2

Overview

Sets runtime status in other modules

Discussion

This module sets the status of other modules. This module differs from the original StatusSet in its use of backslash to indicate the relative hierarchy of the module to control. The usage here is consistent with the usage in the ParamSet module. See below for more details. Arguments: MOD specifies the module/subsystem to be controlled. If a subsystem is specified, then this module will recursively act on all modules and subsystem within that subsystem. The name specified is relative to the level of the status_set_module. The specified MOD name can either be an absolute or relative path from the status_set_module. The backslash character '\' before a module is used to denote a module one level up in hierarchy. Multiple backslashes can be used to represent multiple levels of hierarchy. status_set_module is 'levelA.levelB.ss'

if MOD = 'foo'

then this denotes a relative path at current hierarchy. So this will attempt to locate a module with hierarchy name 'levelA.levelB.foo' if MOD = '\bar' then a module with hierarchy name 'levelA.bar' will try to be located.

if MOD = 'levelC.bar'

then a module with hierachy name 'levalA.levelB.levelC.bar' will try to be located

If MOD is empty, then this module will not do anything and will simply return. If MOD is invalid syntax or is not found in the system, this module will error out during prebuild.

The MOD argument can also be resolved using objectAlias instead of relative path. See here for further discussion: Advanced Module Features | ObjectAlias

Depending on the input pin value, set the given module to: bypass=1, mute=2, inactive=3, active=all else Although there are no limitations to the number of channels or block size, only the 1st value of the 1st channel will be used for the status.

The setBehavior parameter specifies when other module's status should be set.

  • If setBehavior == 0, then the other module's status will be updated in the Set() function only when the status change detected.
  • If setBehavior == 1, then the other module's status will be updated instantly in the Process() function only if there is a change detected.
  • If setBehavior == 2, then the other module's status will be updated always in the Set() function.
  • If setBehavior == 3, then the other module's status will be updated always in the Process() function.

The argument executionOrder determines when the status set 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.

Module Pack

Advanced

ClassID

classID = 1392

Type Definition

typedef struct _ModuleStatusSetV2
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
INT32 setBehavior;                            // Controls the behavior of setting status
INT32 prevStatus;                             // Previous status
INT32 nextStatus;                             // Status value from the input wire.
INT32 numModules;                             // Total number of modules this module controls
INT32* modIds;                                // Array to hold the object IDs of modules to set
ModuleInstanceDescriptor ** modPtr;           // Points to the module to set
INT32 modStat;                                // Current statusSet transition state (update active or not)
void * pOwnerPtr;                             // Pointer to hold owner AWEInstance pointer
} ModuleStatusSetV2Class;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
setBehavior int parameter 0 0 0:3
prevStatus int state 1 -1 Unrestricted
nextStatus int state 1 0 Unrestricted
numModules int state 1 1 Unrestricted
modIds int* state 1 [1 x 1] Unrestricted
modPtr ModuleInstanceDescriptor ** state 1 Unrestricted
modStat int state 1 Unrestricted
pOwnerPtr void * state 1 Unrestricted

Pins

Input Pins

Name in
Description status value
Data type int
Channel range Unrestricted
Block size range Unrestricted
Sample rate range Unrestricted
Complex support Real

Matlab Usage

File Name: status_set_v2_module.m 
 M=status_set_v2_module(NAME, MOD) 
 Status Set Module. This module sets the status of other modules. 
 Arguments: 
    NAME - name of the module. 
    MOD - specifies the module to be controlled. If a subsystem is 
    specified, then this module will recursively act on all modules and 
    subsystem within that subsystem. The name specified is relative to the 
    level of the status_set_module. 
   The specified MOD name can either be an absolute or relative path from 
   the status_set_module. The backslash character ''\'' before a module 
    is used to denote a module one level up in hierachy. Multiple backslashes 
    can be used to represent multiple levels of hierarchy. 
    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. 
 Example: 
      status_set_module is 'levelA.levelB.ss' 
      if MOD = 'foo' 
      then this denotes a relative path at current hierarchy. So this will 
      attempt to locate a module with hierarchy name 'levelA.levelB.foo' 
      if MOD = '\bar' 
      then a module with hierarchy name 'levelA.bar' will try to be 
      located. 
      if MOD = 'levelC.bar' 
      then a module with hierachy name 'LevelA.levelB.levelC.bar' will try 
       to be located 
    If MOD is empty, then this module will not do anything and will simply 
    return. 
    If MOD is invalid syntax or is not found in the system, this module  
    will error out during prebuild. 

    Depending on the input, set the given module to  
    bypass=1, mute=2, inactive=3, active=all else 
    Although there is no limitations to the number of channels or block 
    size, only the 1st value of the 1st channel will be used for the 
    status. 

Copyright (c) 2026 DSP Concepts, Inc.