Document toolboxDocument toolbox

(8.D.2.5) Preferences and Layout

Global Preferences

To apply custom Audio Weaver Designer settings, use the Global Preferences menu at ‘File → Global Preferences’.

Minimize Target Reads and Writes

Minimize Target Reads and Writes is an optional feature of AWE Designer, and can be enabled/disabled with the “Minimize target reads and writes” checkbox in AWE Designer → Global Preferences. It is disabled by default.

When Minimize target reads and writes is disabled, AWE Designer uses the Tuning Interface to query a target for every module and its variables in the running layout, every time a change is made. This ensures that the canvas / target stay in sync throughout tuning, but also increases the traffic on the tuning interface.

With Minimize Target Reads and Writes enabled, AWE Designer will used cached module variable values on the canvas, as opposed to querying the target. This significantly reduces the number of commands sent by the Tuning Interface, but could cause the Canvas/target to be inaccurate and out of sync.

Minimize target reads and writes can be very useful on targets with limited communication/tuning capabilities.

Generate LST Files on Save

LST files provides a high level, human readable overview of a saved AWE layout. They are a good way to diff variables and arrays between different designs.

If enabled, a corresponding LST file is automatically generated/updated each time a layout is Saved in Designer. LST file generation is disabled by default, and can be enabled by selecting the “Generate LST file on save” checkbox in AWE Designer->Global Preferences.

Here is an example LST file generated from this passthrough layout.

---------------------------------------------------------------------- TopLevel,NewClass,active blockSize: 32 numInChannels: 2 numOutChannels: 2 sampleRate: 48000 ---------------------------------------------------------------------- SYS_deint,Deinterleave,active SYS_toFloat.out --> in            out1 --> SYS_inter.in1                                           out2 --> SYS_inter.in2         numOut: 2 ---------------------------------------------------------------------- SYS_inter,Interleave,active SYS_deint.out1 --> in1            out --> SYS_toFract.in         SYS_deint.out2 --> in2                                           numIn: 2 ---------------------------------------------------------------------- SYS_toFloat,TypeConversion,active .SYS_in --> in                    out --> SYS_deint.in           outType: 0 ---------------------------------------------------------------------- SYS_toFract,TypeConversion,active SYS_inter.out --> in              out --> .SYS_out               outType: 1

Validate AWJ on Load

When a layout is saved in the AWJ format, it is updated with the latest AWJ layout version in the JSON file. This version can be used by Audio Weaver when the layout is loaded to check for missing fields or format changes, as enforced by that version’s AWJ Schema definition. In addition to the latest AWJ Schema file, all previously released schemas are included in each release of Audio Weaver so that older AWJ layouts can still be verified against the appropriate schema.

This schema validation is turned off by default, but the user can enable this feature by checking the “Validate AWJ on Load” field in the Global Preferences menu. When this option is turned on, a warning message will appear in the MATLAB Console Output (in Designer Pro Edition only) when loading an AWJ layout that fails validation against its related schema.

If a user attempts to save an AWJ layout with an older version, a confirmation window will open (in all Designer Editions) to inform the user that their layout will be saved with the latest AWJ layout version, even if the “Validate AWJ on Load” checkbox is turned off.

Native Audio Settings

The AWE Server → File → “Native Audio Settings” menu allows a user to customize PC audio settings when running AWE in Native mode.

Using the dropdown menu, users can select between DirectX and ASIO drivers. All available Input and Output devices will be shown, and the user can check/uncheck the toggle boxes to enable or disable certain devices. The user can also set the default hardware sample rate for both DirectX and ASIO, as well as additional ASIO specific parameters (block size, ASIO device).

Note: If ASIO drivers are not installed on the PC, then the ASIO option will not appear in the dropdown selector.

AWE Server keeps a tally of how many channels are currently enabled on the input and output, displaying the total counts in the text field to the right of device selector boxes. The input channels will be interleaved at the input pin of an Audio Weaver layout, and then back out at the output pin.

 

 

 

Loop-Back

Audio loopback can be a useful tool to route audio between different applications on the same PC. For instance, the audio output from a layout created in Designer and running on the Native target can be used as the input for a Digital Audio Workstation (DAW) such as Audacity. In Windows, a 3rd party application that implements audio loopbacks is required. In the example below, Virtual Audio Cable (VAC) is used, but there are many other options available. 

Note: Loopback devices are only supported when connected to the Native target

To use audio loopback devices, select the loopback input and/or output devices in the Native Audio Settings menu (Line 1 (Virtual Audio Cable)) in the image below. In this example, the output from Designer will be routed to Audacity, so only the output VAC is selected. Click Save to apply the selection.

In Designer, open a new canvas and implement a layout similar to the one below, with generated stereo audio being output to the first two channels of the VAC.

Layout Properties Menu

The layout properties dialog provides information about your layout and along with some control over how the layout behaves.  To edit your layout’s properties, navigate to ‘Layout → Layout Properties’ from the top banner of Audio Weaver.

The top section includes information about the current layout. The next section allows the user to control whether the input data source and output data destination is a file or an audio device. The following section provides control of AWS file generation and some extra error checking on the output pin. The AWS file will be generated in the same folder as the current AWD file. If "Validate System Output pin" is checked, then the system checks if the inherited output pin properties fall within the specified ranges for the attached hardware output pin.

In Designer version 8.D.2.5 the “Bind Wires First” option was added to Layout Properties. Typically commands to create all the layout wires are placed at the beginning of the AWS/AWB file followed by the bind wire commands to bind to the HW pins. However, there is now an option to place the bind wire commands immediately following the commands to create the wire for the HW pins. This may be chosen if the user would like to allocate memory for the HW wires in fast memory which may be depleted if bind wire is issued at the end of the wire allocation commands.

The final section “Protect Layout” allows the entire layout to be locked from editing.

 

Managing the Canvas

The AWE Designer Canvas consists of pages. You can change your drawing space using the “Layout → Canvas Size” menu.

Note: The canvas size is limited to 10x5. The zoom and align toolbar icons can be used to change your view and to easily organize your modules.

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.

The reason to update a module search path would be if you have created your own custom module. To add additional Module Search Paths, select File-> Set Module Path.

Module Browser/Palette

The Module Browser allows filtering by a few different parameters. You can filter the Module Browser list via data type by selecting/deselecting the boxes above the browser and under the search bar. The browser will only show modules with datatypes that match the selected boxes. For instance, if a user is not interested in any fract32 modules, they could deselect the box and see only float/int modules.

The image below shows the “Gain” modules of all data types.

The next image shows the same “Gain” category but without fract32 modules. Notice that the list is significantly shorter.

If you know the name or a keyword of the desired module, you can also use the search bar to filter the available modules.

By default, the module browser will filter out deprecated modules and missing modules (not present on the connected target).  To toggle these filters, open the Designer File->Global Preferences dialog and toggle the “Show deprecated modules” checkbox. Beneath the checkbox, there is also a dropdown menu which provides the option to show all modules, filter by target, or filter by ModuleList.h (see below).  Deprecated modules will appear in the browser with a yellow exclamation mark overlay, and missing modules with a red x.

An advanced feature is the ability to specify a specific ModuleList.h file as module filter. Any modules not in the specified list will appear on the canvas outlined in red.