Running Debug Session

The AWX Starter Kit facilitates remote debugging of custom Audio object code on the hardware with VS Code using a VS Code workspace and debug configurations that are included in the GTT installation.

Running a remote debug session requires some essential Linux packages to be present on the Raspberry Pi, which are pre-installed in the custom Raspberry PI image <download link>. When using the official Raspbian OS, these packages can be installed using the SKUtility tool by running the command.

python3 SKUtility.py dev -stp

The Raspberry Pi must be connected to the internet to install the required packages.

Running a Debug Session for the Custom AWX External Object

The below steps illustrate how to start a remote debug session and step-through the source code of the custom AWX External Object in an SFD on the Starter Kit hardware.

  1. First, set the Starter Kit to developer mode using the interactive configuration as explained in Starter Kit Utility Tool.
  2. Build the AWX Amp application in “debug” mode, flash it on to the Starter Kit, and start the AWX Amp application on the Starter Kit hardware by running the following commands.
    python3 SKUtility.py dev -pr rpiVirtualAmp -b -d
    python3 SKUtility.py dev -pr rpiVirtualAmp -f -d
    python3 SKUtility.py dev -r
  3. Now, in the GTT window, include the AWX External Object from the toolbox into the SFD, save the SFD and click “Send Device Config” from the “Device Designer” tab of GTT to flash the SFD on to the Starter Kit.
  4. Open a new window of VS Code, go to File > Open Workspace from File, and select the VS Code workspace file named “StartKitDebug.code-workspace” in “StarterKit” directory of the installation directory.
    A screenshot of a computer Description automatically generated
  5. Open the AWX External Object source file “external\src\AwxAudioObjExt\generic\AwxAudioObjExt.cpp” from the file tree.
    A screenshot of a computer Description automatically generated
  6. Place breakpoints in the source code by clicking to the left of the line number intended as shown below (line 42):
    A screenshot of a computer Description automatically generated
  7. Press the “F5” key to start the debug session. This step makes use of the following files to first start a “gdbserver” on the Starter Kit hardware, and thstarts a debug session on VS Code that attaches to the remote gdbserver.

StarterKit\StarterKitUtility\.vscode\launch.json
StarterKit\StarterKitUtility\.vscode\tasks.json

Once the debug session has started, the code will stop at the placed breakpoints as shown below.
A screenshot of a computer

Reporting Issues

For reporting issues related to the AWX Starter Kit, write to AudioworXSupport@harman.com with the following information:

  1. Subject line — “AWX Starter Kit – short description of the issue faced”
  2. Detailed description of the issue.
  3. Attach the following files (if any).
    1. The GTT project file (.gttd) used, which can be exported from GTT (File > Export Project).
    2. Snapshot of the flash files on the Starter Kit hardware which can be generated using the command python3 SKUtility.py rmt -snp. The snapshot will be downloaded to “C:ProgramDataHarmanStarterKit”.
  4. Steps for reproducing the issue.

Overview

The AudioworX Starter Kit apart from being a tool for quick onboarding and integration, also caters to audio algorithm developers enabling building and testing custom audio objects for AudioworX. The software package of the Starter Kit includes the source code for an example external audio object, which can be used as boilerplate code to implement custom audio algorithms, and VS Code workspace files for debugging the source code, along with additional options in the Starter Kit Utility to streamline development and testing.

This document provides instructions on setting up the developer environment for building and testing custom audio algorithms, starting with the installation of the toolchain, building the custom audio object in the DSP Library to be used in GTT, building the custom executable to be run on the Starter Kit hardware, and finally running a remote debug session to step-through code on the Starter Kit.

Related Topics

 

Setting Up the Developer Environment

Following is a list of software applications to be installed on a Windows PC to develop, build and debug custom audio objects (AOs) on the Starter Kit:

Download and install the above-mentioned pre-requisites on a Windows 10 or 11 PC.

For steps on how to install GTT and its pre-requisites, Refer to Installing AudioworX Setup.

The Raspberry Pi Toolchain

The main audio processing component of the AWX Starter Kit is the Raspberry Pi 5, which has ARM v8a (64-bit) cores. To cross-compile source code for this architecture, the GCC 10.2.1 toolchain is recommended and can be downloaded from Windows Toolchain for Raspberry Pi.

A screenshot of a computer Description automatically generated
Tool chain Installation

Install the toolchain in the default location (C:\SysGCC\raspberry64).

Python Dependencies

The GTT installation includes the Starter Kit Utility tool (SKUtility), a Python command-line application that provides the ability to remotely operate the Starter Kit hardware over the network. This tool is installed in the following directory (default GTT installation folder):

C:\Program Files\Harman\HarmanAudioworX\StarterKit\StarterKitUtility

For more information on Starter Kit installation and setup, refer to the “Required Software Applications” section of Starter Kit Requirements.

Details on New AWX Features

Signal Flow Designer 

This feature enables users to design an audio post-processing pipeline using the basic audio objects.

Key features

    • Enables user to create audio post-processing pipeline.
    • Enables user to send the flow to the embedded device using “Send To Device”.
    • Enables user to add level meters to get RMS and Peak values of individual audio channels and control signals.
    • Enables user to measure MIPS and Memory on the given embedded platform.
    • Enables platform engineer to place the audio objects memory in specified.
    • Each individual object comes with a UI panel for an acoustic engineer to tune the audio post-processing pipeline.

For more details about Signal Flow Designer, refer to the Signal Flow Designer

Granular Audio objects 

AudioworX contains 39 basic audio objects where each object can operate in multiple modes of operations, thereby keeping lesser objects and more functionality.  AudioworX contains many advanced audio features which can be licensed by the customer. Contact support email for advanced audio features and audio objects.

For more details on available audio objects, refer to the Audio Object Description Overview

Parameter Sets /Master Preset Controller

This feature enables the acoustic engineers to create presets that can be changed depending on the run time mode of the system.

Key Features

    • Enables users to create presets and sub-presets by choosing audio object parameters from Multiple instances or core.
    • Enables users to create a slot from multiple presets. (Slot is a collection of presets).
    • Enables users to switch between slots by choosing multiple ramping methodologies to achieve desired audio performance.

For more details about Parameter Sets, refer to the below topics.

Panel Designer 

Panel Designer provides an ability to quickly design the Customized Panel for desired Audio Objects or group of Audio Objects. Refer to Example Project: Panel Designer tab “ExampleProject” for an example of a Custom Panel.

Key Features

    • Panels View provides an ability to view, create, and import /export designed panels.
    • Ability to customize the appearance by providing background color/image, layout, font, etc.
    • Provides a tool for designing and editing the custom panel.
    • Choice of advanced controls such as panels, graphs, controls, and images to design customized panels.
    • Inbuilt user control which can be configured with specific audio object state variables and helps in tuning.

For more details  about Panel Designer, refer to the  Panel Designer

Measurement Module 

Measurement Module in Global Tuning Tool (GTT) is a powerful feature designed for performing both synchronous and asynchronous impulse response measurements and recordings. It simplifies the process of acoustic analysis and system tuning by integrating seamlessly into GTT’s signal flow.

Key Features

    • Impulse Response Measurements allow users to measure impulse responses, which are crucial for analyzing room acoustics, speaker performance, and system behavior.
    • Automatic Speaker Control – Integrated with GTT’s gain channels, the Measurement Module can automatically mute and unmute speakers during measurements, ensuring precise and interference-free acquisition.
    • Sweep Signal Generation with customizable inputs like length, stimulus placement (before/after), and other parameters. This provides flexibility in measurement setups.
    • Predefined Signal Injection -Ability to inject predefined signals such as Uncorrelated Pink Noise, Correlated Pink Noise, and Left Pink Noise These signals allow for detailed testing and analysis in asynchronous measurement scenarios.
    • Data Management – acquired measurements are stored within the project and can be exported or imported. This makes it easy to save, share, or reuse measurement data across different sessions or projects.

For more details about the Measurement Module, refer to the Measurement Module

Central Viewer

This feature can be used for inspecting and post-processing measurements obtained using the Measurement Module. It provides advanced visualization and analysis capabilities to help users interpret the captured data effectively.

Key Features 

    • Intuitive measurement data browsing by selecting elements directly on the scene which simplifies navigation, enabling quick access to relevant measurements.
    • Support for multiple Data Visualization formats.
      •  Time Domain: Displays the raw waveform to analyze temporal characteristics.
      • Magnitude: Shows the signal’s amplitude spectrum.
      • Phase: Provides phase information for detailed signal analysis.
    • Offers flexibility in Magnitude Data Processing and displayed.
      • Raw Data: Direct representation of measured values.
      • Smoothed Data: Reduces noise for clearer trends.
      • Octave Bands: Displays frequency data in standardized bands for acoustic analysis.
    • Waterfall Graph in 3D View, Central Viewer includes a 3D visualization option for frequency analysis.
      • The Waterfall Graph is a 3D representation that maps frequency content over time.
      • It allows users to identify patterns, anomalies, and trends that are not apparent in traditional 2D plots.
      • This is especially useful for analyzing complex signals, transient behavior, and time-varying frequency content.
    • Support for mathematical operations on the measurement data, such as addition, subtraction, and averaging, enabling comparative and combinational analyses.

For more details about Central Viewer, refer to the Central Viewer

  • RTA/IVP

    Real Time Analyzer (RTA) in GTT is a versatile multi-channel tool designed for analyzing audio signals in both the time and frequency domains. It is an essential component for real-time signal analysis and offers advanced features for measurement and visualization.
    In Addition to Real Time Analysis, it also comes with Virtual Processing through which user can simulate his signal flow on Personal Computer.

Key Features

    • Comprehensive Signal Analysis – Ability to measure RMS or peak levels, frequencies, THD (Total Harmonic Distortion), delays, magnitude, and phase responses. Supports both time-domain and frequency-domain analysis for in-depth signal evaluation.
    • Built-in Signal Generator – Generates various test signals, including Sine tones, Sweeps Pulses, and Noise signals (e.g., pink noise, white noise)
    • File Player- Analyzes pre-recorded signals for detailed static analysis.
    • Graph Configuration Options – Provides the ability to configure the graph areas to tailor the analysis using these options:
        • Cursor Measurement: Precisely measure values at specific points on the graph.
        • Add Marker: Mark specific points for analysis or reference.
        • Add Delta Marker: Measure the difference between two points.
        • Refresh Spectrum: Update the graph to display the latest real-time data.
        • Capture Graph Image: Save the graph as an image for documentation or sharing.
        • Change Graph Theme: Customize the visual appearance of the graph for better clarity.
        • Zoom to Gates: Focus on specific frequency or time ranges for detailed inspection.
    • Capture Traces FunctionProvides flexibility in saving data for static analysis.
    • Enable user to create a Virtual Device similar to the actual embedded device.
    • IVP enables users to perform virtual tuning and verify the audio post-processing pipeline/algorithm.

For more details about Real Time Analyzer, refer to the Real Time Analyzer.

FAQ

Q. What is the range supported for BlockID?

A. For audio objects with extended block id support, block id should be in the range – 33024 to 65280 in multiples of 256. (Reference: AWXNG-7418)

Q. Not able to load the audio library (VirtualAmp.dll or Toolbox dll)

A. If VirtualAmp.dll depends on another dll which is not part of GTT, GTT will fail to load the dll. In this case user needs to copy the dependent dlls to C:Program FilesHarmanHarmanAudioworXtoolsGTT folder. For more details Refer https://jira.harman.com/jira/browse/AWXNG-4099

Q. GTT stops the audio from other application when launched?

A.  GTT doesn’t stops audio from other application, However If user face any such difficulty.

Change the properties of the sound settings in your laptop/ PC. Uncheck the check box which says, “Allow application to take exclusive control of device.”

Compatibility/Sub-Versioning

This release requires the following software to be installed for SW developers:

  • Microsoft Visual Studio  2017 and 2022
    • For customers using VST3 : Microsoft Visual Studio 2017 or 2022
  • CMake 3.24 and above
  • Python 2.7

Description

This package contains the DSP framework (xAF), Audio Algorithm Toolbox (AAT), Global Tuning Tool suite (GTT) with embedded Signal Flow Designer (SFD) and AmpSrv2.

  • xAF (Extendable Audio Framework) is created to consolidate numerous existing frameworks within Harman into a single vision that provides a single workflow and structure for audio processing development and usage. It is also designed to provide a richer feature set required by internal and external stakeholders.
  • GTT (Global Tuning Tool) is a branch of the Audio Architect from Harman’s Professional Division. It focuses on integration of HALO sonic and Audio/Acoustics Measurement, Analysis and Tuning GUIs into one consolidated & comprehensive tool to increase tuning efficiency, performance and quality. It has common interface panels for systems, algorithm designers and developers to ensure seamless and focused development of new algorithms right from the beginning.
  • SFD (Signal Flow Designer) is a software component of GTT to create signal flows based on the available audio objects of Harman’s audio algorithm tool-box.
  • AmpSrv2 is a software to connect the tuning tool to either to a physical target device or a virtual amplifier.

For support on AudioworX, please contact our technical support team at AudioworXSupport@harman.com.

Release Identification

This release is part of a AudioworX release and is delivered as windows installer.

Release Details Version  Date
Release Name 24.0.0.2452 24 – Dec – 2024

Overview

This document describes the procedure to use the VST3.X AudioworX Plugin. VST3.x AudioworX Plugin is generated by linking the plugin source code, VST3 SDK, with Win64 xAF Libraries.

References

Folder Structure

To work out of the box, the VST3 AudioworX needs to be organized according to a specific folder structure. Therefore, extract the zip file into an arbitrary workspace folder (e.g. C:AWX_dev) and make sure it matches the structure below and that there are no spaces in the names.

extendable-audio-framework

external

  • inc: Folder to place the included files for the External AudioObject.
  • src: Folder to place the source files to build the External AudioObject.
  • vst3: VST3 wrapper files
  • vstProject: Satisfies interface dependencies
  • Build.bat: Script to build VirtualAmp.dll, required for GTT Toolbox.
  • Build_VST3.bat: Script to build VST3 plugin.
  • clean.bat: Script to clean the VST2 build artifacts.

Public

  • include:  xAF HeaderFiles
  • lib:  AudioworX libraries for Win32 and Win64.

Steinbergsdk

The Steinberg sdk is not part of the AWX package and needs to be downloaded manually. Please refer to option 1 or option 2 mentioned below.

VST3    (all files and folders inside this folder are part of the Steinberg SDK)

 vst3sdk: VST3 sdk files and build scripts

There are two options to get the VST3 sdk.

  • Option 1 (External): Download directly from the Steinberg official page [1]:

With the download, you are accepting the license agreement from Steinberg.

Extract the zip file according to above mentioned folder names

  • Option 2 (Harman internal only): git clone ssh://git@bitbucket-munich.harman.com:7999/bitbucket/lsacca/steinbergsdk.git

Make sure the branch: “master” is checked out. No need to adjust any folder names.