About This Application Note
The Bringing Algorithms into Audio Weaver Application Note describes different approaches to adding new processing algorithms to Audio Weaver.
Modules
In Audio Weaver, a module is a fundamental software object that performs a specific algorithmic process, and a wire is a fundamental software object that transfers data between modules. Signal processing layouts are constructed in AWE Designer by placing module blocks on the canvas and connecting their inputs and outputs with wires. Important module tuning parameters can be controlled in real-time using a module’s inspector window. The AWE Designer Pro Edition and Module Creator licenses enable users to create new modules which call upon their preferred processing algorithm source code or compiled libraries.
...
For more details on creating custom modules, please refer to Creating Custom Modules and MATLAB Scripting API. To reference module pack source code, please see The Examples Module Library and the local files contained in the following directory:
C:\DSP Concepts\<AudioWeaver>\AWEModules\Source\Examples.
Subsystems
A subsystem encapsulates a collection of modules and wires inside a single block without affecting the overall layout’s processing performance or resource requirements. Implementing an algorithm inside a subsystem using modules developed by DSP Concepts allows Audio Weaver users to take advantage of DSP Concepts’ processor-optimized code while maintaining visual organization of their overall layout’s distinct sections.
...
For more details on subsystems and user inspectors, please refer to Subsystems.
Compiled Subsystems
A compiled subsystem is a subsystem that has been turned into a new module class. Like a regular module, it takes substantially less time to instantiate a compiled subsystem than a regular subsystem since only a single module class name is communicated to AWE Server for a compiled subsystem. The modules inside a compiled subsystem and their respective parameters cannot be directly viewed or accessed by users.
...
For more details on compiled subsystems, please refer to the Compiled Subsystems Application Note.
Reusable Subsystems
A Reusable Subsystem is a subsystem that has been saved for ease of reuse across any layout. Whereas reusing a regular subsystem requires copying it from one layout and pasting it to a new destination, Reusable Subsystems appear in the AWE Designer module browser alongside regular modules. The process of converting a regular subsystem to a Reusable Subsystem is accomplished in AWE Designer and requires minimal user configuration and no coding.
...
For more details on Reusable Subsystems, please refer to https://dspconcepts.atlassian.net/wiki/spaces/DOCHUB/pages/2748810681/Subsystems#Reusable-Subsystems.
Compiled Reusable Subsystems
A Compiled Reusable Subsystem is a Reusable Subsystem that is represented by an encrypted AWB file. Any controllable module variables within a Compiled Reusable Subsystem are represented in a supplementary META file. Any user with a local copy of the Compiled Reusable Subsystem’s root directory can add a Compiled Reusable Subsystem to their layout once they specify the location of the root directory in AWE Designer.
...
For more details on Compiled Reusable Subsystems, please refer to https://dspconcepts.atlassian.net/wiki/spaces/DOCHUB/pages/2748810681/Subsystems#CompiledReusableSubsystems.
Summary of Approaches
| Module | Subsystem | Compiled Subsystem | Reusable Subsystem | Compiled Reusable Subsystem |
Required Tools and Licenses for Creation | AWE Designer Pro Edition and Module Creator; MATLAB; Visual Studio; IDE for target processor | AWE Designer Standard Edition | AWE Designer Pro Edition and Module Creator; MATLAB; Visual Studio; IDE for target processor | AWE Designer Standard Edition | AWE Designer Standard Edition |
Required Code for Creation | Algorithm source code or compiled library; MATLAB function | None | MATLAB function | None | None |
Inspector | Coded in MATLAB | Created in AWE Designer | Coded in MATLAB | Created in AWE Designer | Created in AWE Designer |
Processor Optimization | Dependent on utilized algorithm | Handled by utilized modules | Handles by utilized modules | Handled by utilized modules | Handled by utilized modules |
Single Command for Instantiation? | Yes | No | Yes | No | Yes |
Exists in the Module Browser? | Yes | No | Yes | Yes | Yes |
Required Files for Distribution to Users | Module pack; DLL; library for target processor | None; user must copy and paste between layouts | Module pack and DLL | Reusable Subsystem root directory | Compiled Reusable Subsystem root directory |
User Access to Implementation Details | None | Optional navigation password; JSON file | None | JSON file; revertible to a regular subsystem | None |
...