The GTT installation includes the source code for an example audio object called the “AWXAudioObjExt” in the following directory:
C:\Program Files\Harman\HarmanAudioworX\ext-reference-algorithms\external
It is accompanied by an audio object specification document named “AwxAudioObjExt.pdf” in the “docs” directory, explaining how the AO interacts with Extendable Audio Framework (xAF) API to implement a simple gain object.
The files “inc\AwxAudioObjExt\AwxAudioObjExt.h” and “src\AwxAudioObjExt\generic\AwxAudioObjExt.cpp” implement a class named “CAwxAudioObjExt”, which contain the functions that are called by the audio framework during initialization, tuning and run-time:
- init(): Called during initialization of the SFD. Assigns memory records and sets up initial states for the AO.
- calc(): Called at runtime with input and output stream buffers. Receives audio input frames from the framework and returns processed output audio frames in real-time.
- tuneXTP(): Called by a parallel tuning thread to change tuning states of the AO.
These functions can be modified as required to implement a custom audio processing algorithm.
Further information can be found APIs
C:\Program Files\Harman\HarmanAudioworX\ext‑reference‑algorithms\external\docs\AwxAudioObjExt\AwxAudioObjExt.pdf
The custom AO source code must then be compiled and built into the DSP library for GTT and the AWX Amp application for the Starter Kit hardware, both of which can be executed using the SKUtility tool. The following sections provide instructions on building the custom dll and executable for using the custom AWX External Object.
Building DSP Library with Custom Audio Object
The “ext-reference-algorithms” directory in the installation folder contains build configuration files to build the AWX External Object. Since the modifications are assumed to be made within the existing source code, the custom DSP library for GTT file can be built directly without any updates to the build configuration files by running the following commands in the “StarterKitUtility” directory of the installation folder:
python3 SKUtility.py dev -pr virtualAmp -c # clean the build directory
python3 SKUtility.py dev -pr virtualAmp -b # build the VirtualAmp.dll file
Upon successful compilation of the code, the output DSP library dll can be found in the following location in the installation folder.
xAF\public\lib\win64\Release\VirtualAmpExternal.dll
However, if there are additional files to be compiled along with the AWX External Object source files, they must be included in the below CMake file.
ext-reference-algorithms\external\src\AwxAudioObjExt\CMakeLists.txt

Loading the Custom DSP Library in GTT
The DSP library provides a toolbox of AOs for use in a signal flow, with information on configurations and tuning parameters and their memory requirements on different core types. To be able to use the custom AO in an SFD, the custom-built DSP library must be imported into GTT.
- First, start a new instance of GTT in “administrator” mode from the start menu, by right-clicking GTT and clicking Run As Administrator.
- In the home screen of GTT, go to the “Audio Library Manager’ and click the Load Audio Library button.

- Select the newly built “VirtualAmpExternal.dll” and click Open.

GTT may show a warning if the imported DSP library has the same version number as an existing one in the library manager. It is recommended that a backup of any previously loaded DSP library is taken for safety. The default DSP library can still be found in the “AudioFrameworkDLLs” of the installation directory.
- Once the new DSP library is loaded, the custom AWX External Object can be accessed from the “Toolbox” panel under “External” tab in the signal flow designer view.

Building AWX Amp Application with the Custom Audio Object
The GTT installation also includes the necessary files to build the AWX Amp application along with the custom AO in “StarterKitrpiamp” directory of the installation folder.
To build the custom AWX Amp application, run the following commands from the “StarterKitUtility” folder.
python3 SKUtility.py dev -pr rpiVirtualAmp -c
python3 SKUtility.py dev -pr rpiVirtualAmp -b

On successful completion, the “rpiVirtualAmp” executable can be found in the below location.
StarterKit\public\bin\arm64‑v8a\Release\rpiVirtualAmp
Flash the custom AWX Amp application on to the Starter Kit hardware by running the command:
python3 SKUtility.py dev -f
To start the AWX Amp application in the Starter Kit, run the command:
python3 SKUtility.py dev -r