AWE_ProcessFile is a tool designed to perform offline processing of wav files. It loads an Audio Weaver (AWE) design and input wav file, processes the data and generates an output wav file. The initial release is for PC (Win32) and is a simple command line application that can be called from a script to allow automated file processing. Application control is via a configuration file or by command line arguments.
The application may be controlled by a configuration file aweConfig.txt which should be located in the same folder as the executable. The configuration file will be used if the application is called with insufficient arguments to run. The file specifies the AWE binary (.awb) to be loaded, the input and output wav files, the encryption flag and the logging level. Optionally, parameters may also be included. An example is shown below:
C:\tmp\AWEProcess\designfiles\AWE_Test.awb C:\tmp\AWEProcess\data\audio_in.wav C:\tmp\AWEProcess\data\audio_out.wav En1 // Encryption Flag En0: non-encrypted awb, En1: encrypted awb (currently Not Supported) 3 // Logging Level 30000 // optional param module ID 8 // optional param offset 0.5 // optional param value < more param set values >
There are 4 Logging Levels:
0: Logging Off
All messages are written to the console window. Level 0 disables all logging while Level 3 includes all errors, warnings and other information.
Command Line Control
Rather than using a configuration file, users may prefer to pass command line arguments directly when calling the application. Arguments should be separated with a space.
AWE_ProcessFile C:\tmp\designfiles\aweProcess.awb C:\tmp\data\in_s32_stereo.wav C:\tmp\data\out_s32.wav En1 3 30000 8 2.5e-1
If required, module parameters that are exposed may be set. In order to do this, the Control Interface file must be available. It is generated from the AWE Designer GUI under Tools->Generate Target Files. The Control Interface checkbox should be selected. To expose a specific module’s parameters:
It must have an objectID allocated (right-click on the module, select objectIDs and select “Assign”). Alternatively the objectID can be manually assigned from under the Build tab.
It must have its isTunable flag set to true (click on the module and select the Build tab from the Module Properties window).
Generate new target files
The newly generated interface files (the file names will be <awd name>_ControlInterface.h and <awd name>_ControlInterface_AWE6.h) provide the exposed module IDs and associated parameter offset values.
Caution: The parameter values MUST BE in groups of 3: Module ID, Parameter Offset & Value (to be written).
Note: Pay attention to the data type of the Value to be written. These are noted as a comment just before each Offset #define in the Control Interface file. For example, gain values must be written as a float (with a decimal point): eg for +6dB, the value written should be 6.0 (not 6).
Use verbose logging (Level 3) to display the parameters and confirm how each value is being interpreted.
Typically awb’s provided by DSPC will be encrypted. In this case, set the Encryption Flag to En1. If the awb is not encrypted, use En0. Note that the current release does NOT support encrypted files. If an attempt is made to run with an encrypted awb, the program will terminate.
The tool supports 16 bit and 32 bit integer wav files. The output wav file format will match that of the input file. The number of channels in the output file is determined from the AWE layout being processed (.awb file).
The sampling rate of the input wav files must match that used in the awb file. If this is not the case, the program will terminate.
Input Channel Matching
If the input wav file has fewer channels than the AWE layout, the missing channels are zero filled. Conversely, if the wav file has more channels than the layout requires, the extra channels are ignored.
Running the Application
If using a configuration file, navigate to the folder where AWE_ProcessFile.exe is located. Edit aweConfig.txt (must be located in the same folder as .exe). Type AWE_ProcessFile in a command window, or double-click on AWE_ProcessFile.exe from File Explorer.
Alternatively, call the application with command line arguments as described earlier.
Multiple input files
It can be convenient to use multiple mono files, or generally just multiple files to get the input data you want into various channels. The syntax is to use a semicolon delimited list in place of a single file like this:
The restrictions on files noted earlier applies – only 16 or 32 bit PCM, and the sample rate must match that of the AWB you are testing.
When multiple input files are used, the channels from each file are concatenated in the order the files appear to the AWB input channels. The length of the test will be that of the longest of these files. Any file which ends early will have its channels replaced by zeros. Each file may have any number of channels.
As with single files, absolute or relative paths are supported. The same file may appear more than once if you want to repeat its data. If any of these file names or paths contains a space, the entire argument must be double-quoted on the command line like this:
Quotes must not be used in the configuration file even if one or more paths or names contain spaces.
Missing DLL Error
Several dll’s are required to run the utility. The following should be present in the same folder that the .exe is located: AWELibDll.dll, FrameDll.dll, DVUSB.dll, i2cbrdg.dll. If the awb design includes Advanced modules, ModulePackAweAdvancedDLL.dll will also be required. It is possible that older legacy designs may also need ModulePackAweDeprecatedDLL.dll.
If an error occurs regarding a missing dll such as “MSVCP100.dll” then it may be necessary to install the Microsoft Visual C++ 2010 Redistributable Package (x86) (https://www.microsoft.com/en-us/download/details.aspx?id=5555).
Calling the application with a single argument “help” will display the required arguments to run from the command line.