Versions Compared

Key

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

...

Many modules contain variables that can potentially be tuned at runtime. When a variable can cause undesirable side effects, it can be locked out from tuning. To do this, right click on the module and select the ‘Permissions’ context menu. There, as pictured below, variable tuning can be can be allowed or disallowed for a module.

...

Setting Search Paths
Anchor
SettingSearchPaths
SettingSearchPaths
Setting Search Paths

Audio Weaver Designer comes with a few default search paths for Audio and Modules. You can add additional search paths for both modules and files (audio files, etc) via Designer.

...

  1. Start by creating a Traditional Module to get the required files and folder structure of an Audio Weaver Module.

    1. The Custom Module Pack Wizard in Designer is a great starting point for getting started with the required module files and folder structure.

  2. As you edit the module’s MATLAB (.m) file, add the following line of code in the function:

    1. M.isInterpreted = 1;

    2. Switching this flag to 0 will force the module to be executed as a typical MATLAB module. While this makes the module inaccessible for Standard Designer users, the Module Author may do this in order to use the MATLAB debugging infrastructure to help resolve issues with their module.

  3. Follow the Module Creation steps as stated to get a properly functioning module, including the Module Generation MATLAB script e.g., make_module_pack(1) in Designer Pro Edition.

  4. Open the Interpreted Module’s Visual Studio solution and build the project. Make sure the built DLL is successfully created and in the Interpreted Module’s folder.

  5. Share the entire folder of the Interpreted Module (including the DLL) with other Designer users.

    1. Once shared, any user must copy the Interpreted Module’s DLL to the same directory as their AWE_Server.exe
      (for example, C:\DSP Concepts\AWE Designer 8.C.2.4 Standard\Bin\win32-vc142-rel\)

  6. Once Designer and Server are running, install the Interpreted Module to the Module Path using the Setting Search Paths functionality.

  7. The Interpreted Module can now be dragged out from the Module Palette to Designer’s canvas, with all the same capabilities as other Audio Weaver modules.

...

    1. The default location for a new Custom Module is in the “Third Party” folder. This can be changed in the MATLAB script by updating the M.moduleBrowser.path value.

Known Limitations

To make this feature compatible with both Pro and Standard Designer, there are several limitations that the module author will need to consider if this feature is right for their use case. All these limitations aim to address technical limitations without compromising the important functionality for most users.

The module must not make any references to any MATLAB functions not provided by Designer builds already. This primarily applies to functions that are not on the MATLAB path, function pointers to non-compiled MATLAB files, and external library functions not provided in Designer’s required toolboxes. An exception is made for certain custom module functions that extend the Interpreted Module’s functionality past default module behavior. The supported custom module functions for Interpreted Modules are:

  • copyVarFunc

  • preBuildFunc

  • prepareToSaveFunc

  • propagateChannelNamesFunc

  • postBuildFunc

  • setFunc

  • textLabelFunc

Any additional custom module functions available for Audio Weaver modules are not supported for Interpreted Modules at this time. Thus, they must not be defined in the Interpreted Module’s MATLAB file as it will make the whole module unusable in Designer. If you do have unsupported custom module functions in your Interpreted Module (for example, testHarnessFunc), make sure to comment the function assignment before using the module.

Because of internal technical dependencies, an Interpreted Module cannot contain any local, nested, or anonymous functions. This means that the custom module functions mentioned above must be defined in their own file, in the same directory of the module’s main MATLAB file.

Interpreted Module cannot have any variables that start with IMODAWE_. This is to avoid a potential variable namespace collision when interpreting the module’s MATLAB code.

An Interpreted Module’s module definition file or any of its custom function files cannot use variable input arguments with MATLAB’s varargin keyword. Variable argument inputs to Interpreted Modules are not currently supported.