...
Note: The function classid_lookup.m
can be used to determine if a class name is already in use. Refer to Specifying Class IDs for more information.
After the module class is created, set the particular name of the module:
...
name — name of the module within the subsystem. This is specified when the module is instantiated and cannot be changed thereafter. Not user editable.
className — name of the underlying module class. This is specified when the module is instantiated and cannot be changed thereafter. Not user editable.
description — short comment indicating what the module does. User editable.
classID — unique integer which identifies the module class on the target. This value is set by the code generator and is normally blank. Not user editable.
constructorArgument — list of the arguments to the module. Module must be called with all arguments while generating the code. This field is important for AWE Designer to pass arguments to module.
defaultName — Fixed default name of the module.
moduleVersion — Version of the module.
classVersion — Version of the module class.
isDeprecated — Boolean indicates whether the module is deprecated in the current version of AWE Designer.
isInterpreted — Boolean indicates whether the module is Interpreted or not.
mfilePath — full path to the m-file which instantiated the module (the one containing the call to @awe_module). Used by the code generator. Not user editable.
mfileDirectory — the directory portion of mfilePath. Not user editable.
mfileName — the file name portion of mfilePath. Not user editable.
mode — string indicating the current module status. This can be either 'Active', 'Bypassed', 'Muted', or 'Inactive'. Used internally and is not user editable. Use the functions awe_setstatus.m and awe_getstatus.m to manipulate the module status.
clockDivider — integer indicating how often the module will be run within the layout. This is currently always set to 1 (meaning run every time). This is reserved for new Audio Weaver functionality planned in the future. Not user editable.
inputPin — cell array of input pin information. This information is set by the add_pin.m function and should not be changed. You'll frequently access this to determine the properties of the input pins. Each cell value contains a data structure such as:
Code Block SYS.agc.core.inputPin{1} ans = type: [1x1 struct] usage: 'input' name: 'in' description: 'Audio input' referenceCount: 0 isFeedback: 0 drawInfo: [1x1 struct] wireIndex: 1
outputPin — similar to inputPin. It is a cell array describing the output pins.
scratchPin - similar to inputPin. It is a cell array describing the scratch pins.
variable — a cell array of @awe_variable objects corresponding to the variables in this module. This array is updated by the add_variable.m function. Not user editable.
variableName — a cell array of strings, one for each variable in the module. This cell array is used to speed up variable accesses. This array is updated by the add_variable.m command. Not user editable.
control — holds internal information related to the inspector. Not user editable.
wireAllocation — a string specifying how wires should be allocated for the module. Possibilites are 'across' and 'distinct'.
getFunc — optional MATLAB function pointer specifying the module's get function. This function is called whenever a variable in the module is queried. Used very rarely. Normally this is set to the empty matrix.
setFunc — optional MATLAB function pointer specifying the module's set (or control) function.
processFunc — optional MATLAB function pointer specifying the module's processing function. The processing function is a MATLAB implementation of the audio processing performed by the module.
bypassFunc — optional MATLAB function pointer specifying the module's bypass behavior.
muteFunc — optional MATLAB function pointer specifying the module’s mute behavior.
preBuildFunc — optional MATLAB function pointer specifying the module's prebuild functionality. The prebuild function is called prior to building the module or generating code and resolves pin types and array sizes.
postBuildFunc — optional MATLAB function pointer specifying the module’s postbuild functionality. Generally most of the module will have this field as empty.
testHarnessFunc — optional MATLAB function pointer specifying the module’s test harness script.
profileFunc — optional MATLAB function pointer specifying the module’s profile function.
isHidden — Boolean specifying whether the module should be shown when part of a subsystem. Similar to the .isHidden field of @awe_variable objects. User editable.
isPreset — Boolean that indicates whether the module will be included in generated presets. By default, this is set to 1. User editable.
isMeta — Boolean specifying whether this is a meta-module which switches out at build time.
metaFuncName — optional string specifying the name of the underlying module to instantiate if this is a meta module.
requiredClasses — This is the list of classes required for the current instantiation of the
module. For meta modules it could be a subset of requiredClassesBrowser.
consArgPatchFunc — Custom function to matchup older version of system with new module.
moduleBrowser — This is the information for displaying the module in AWE Designer GUI. It includes the image of the module in the designer module tree, search tag, name of the module in browser etc. Look for .moduleBrowser for more information.
textLabelFunc — Function for generating a text lablel when drawn in the AWE Designer GUI. Look at the .textLablelFunc for more information.
textInfo — Text label properties information.
shapeInfo — Is a structure which holds shape information of the module in the AWE Designer GUI. It includes the name of the SVG image used to draw on the layout, size of the module, shape of the module etc. Look at .shapeInfo for more information. Default shape information is Rectangle box with Solid lines with Black color. This can be overwritten by initializing fields in this structure.
freqRespFunc — Optional MATLAB function pointer for computing the frequency response of the module.
bypassFreqRespFunc — Frequency response function of the module in bypass mode.
prepareToSaveFunc — Function for clearing out internal pointers or other state that is not needed when the module is saved.
copyVarFunc — optional MATLAB function pointer that is called when a module’s variables need to be copied. User can over right the default generic copy variables function.
inspectFunc — optional MATLAB function for drawing custom inspector.
inspectHandle — Figure handle of the custom inspector, internal to the Audio Weaver.
inspectPosition — Position, [x y], of the custom inspector in MATLAB coordinates used by the “inspect” function of the Audio Weaver.
inspectUserData — Custom inspector persisted information.
numericInspectHandle — Numeric inspector handle of the module for AWE Designer.
numericInspectPosition — Position, [x y], of the numeric inspector of the module in MATLAB coordinates for designer.
freqRespHandle — Module’s frequency response handle.
freqRespPosition — Position, [x y], of the frequency response to be drawn in MATLAB coordinates for designer.
isTunable — Boolean indicating whether the variables in the module are real time tunable or not in designer.
View — Structure of various fields internal to Audio Weaver holds the view settings in the designer.
isLive —Boolean indicating whether the module has been built and is running on the target. When a module is first instantiated, this is set to 0 and then changed to 1 by the build process. Not user editable.
hierarchyName — hierarchical name of the module within the subsystem. This is filled in during the build process. Not user editable.
hasFired — Boolean field that is used internally by the routing algorithm. Not user editable.
targetInfo — data structure holding target specific information. This is filled in by the build process and is used internally for tuning. Not user editable.
codeMarker — a cell array holding all of the code markers. Code markers are used for module generation and described in Section 5.2. Not user editable.
isTopLevel — Boolean set by the buid process. A value of 1 indicates that a module is the highest level item in a system. All modules have .isTopLevel=0; only the top-level subsystem has .isTopLevel=1. Not user editable.
guiInfo — data structure used for drawing inspectors. Some fields are user editable. See Overriding Default GUI Settings for information about creating custom inspector interfaces.
drawInfo — data structure used internally when creating drawings of subsystems and modules. Not user editable.
docInfo — data structure containing documentation information. This is set in the module's m-file and is used by the automated documentation generator. Some user editable fields. Refer to the Section 6.
isLocked — internal field used to accelerate references. Not user editable.
class — string specifying the underlying object class. This is always 'awe_module'. Not user editable.
fieldNames — internal cell array of field names (actually the names of the fields in this data structure). It is used to accelerate references. Not user editable.
...
add_pin.m — adds an input, output, or scratch pin to an audio module object.
add_codemarker.m — adds information related to code generation.
add_control.m — exposes a single control on the inspector.
...
Consider the look ahead limiter subsystem introduced in Specifying Module Constructor Arguments in Subsystems. It can be connected to mono, stereo, or 5.1 channel signals and all of the wiring and buffer allocation will be automatically handled. This generality allows you to design algorithms which operate on an arbitrary number of channels with little added complexity.
...
Note that after a variable is added to a module, it appears as a field within the module’s structure and the name of the field equals the name of the variable. Attributes of an individual variable are referenced using the “.” structure notation. Refer to Audio Module Instance Structure to see the correspondence between variables in the MATLAB object and variables in the C type definition.
...